github.com/secoba/wails/v2@v2.6.4/internal/binding/binding_test/binding_test.go (about)

     1  package binding_test
     2  
     3  import (
     4  	"reflect"
     5  	"strings"
     6  	"testing"
     7  
     8  	"github.com/secoba/wails/v2/internal/binding"
     9  	"github.com/secoba/wails/v2/internal/logger"
    10  	"github.com/stretchr/testify/require"
    11  )
    12  
    13  type BindingTest struct {
    14  	name        string
    15  	structs     []interface{}
    16  	exemptions  []interface{}
    17  	want        string
    18  	shouldError bool
    19  	TsGenerationOptionsTest
    20  }
    21  
    22  type TsGenerationOptionsTest struct {
    23  	TsPrefix string
    24  	TsSuffix string
    25  }
    26  
    27  func TestBindings_GenerateModels(t *testing.T) {
    28  
    29  	tests := []BindingTest{
    30  		EscapedNameTest,
    31  		ImportedStructTest,
    32  		ImportedSliceTest,
    33  		ImportedMapTest,
    34  		NestedFieldTest,
    35  		NonStringMapKeyTest,
    36  		SingleFieldTest,
    37  		MultistructTest,
    38  		EmptyStructTest,
    39  		GeneratedJsEntityTest,
    40  		AnonymousSubStructTest,
    41  		AnonymousSubStructMultiLevelTest,
    42  		GeneratedJsEntityWithNestedStructTest,
    43  		EntityWithDiffNamespaces,
    44  	}
    45  
    46  	testLogger := &logger.Logger{}
    47  	for _, tt := range tests {
    48  		t.Run(tt.name, func(t *testing.T) {
    49  			b := binding.NewBindings(testLogger, tt.structs, tt.exemptions, false)
    50  			for _, s := range tt.structs {
    51  				err := b.Add(s)
    52  				require.NoError(t, err)
    53  			}
    54  			b.SetTsPrefix(tt.TsPrefix)
    55  			b.SetTsSuffix(tt.TsSuffix)
    56  			got, err := b.GenerateModels()
    57  			if (err != nil) != tt.shouldError {
    58  				t.Errorf("GenerateModels() error = %v, shouldError %v", err, tt.shouldError)
    59  				return
    60  			}
    61  			if !reflect.DeepEqual(strings.Fields(string(got)), strings.Fields(tt.want)) {
    62  				t.Errorf("GenerateModels() got = %v, want %v", string(got), tt.want)
    63  			}
    64  		})
    65  	}
    66  }