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 }