github.com/AlpineAIO/wails/v2@v2.0.0-beta.32.0.20240505041856-1047a8fa5fef/internal/binding/binding_test/binding_conflicting_package_name_test.go (about)

     1  package binding_test
     2  
     3  import (
     4  	"io/fs"
     5  	"os"
     6  	"testing"
     7  
     8  	"github.com/AlpineAIO/wails/v2/internal/binding"
     9  	"github.com/AlpineAIO/wails/v2/internal/binding/binding_test/binding_test_import/float_package"
    10  	"github.com/AlpineAIO/wails/v2/internal/binding/binding_test/binding_test_import/int_package"
    11  	"github.com/AlpineAIO/wails/v2/internal/binding/binding_test/binding_test_import/map_package"
    12  	"github.com/AlpineAIO/wails/v2/internal/binding/binding_test/binding_test_import/uint_package"
    13  	"github.com/AlpineAIO/wails/v2/internal/logger"
    14  )
    15  
    16  const expectedBindings = `// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL
    17  // This file is automatically generated. DO NOT EDIT
    18  import {float_package} from '../models';
    19  import {int_package} from '../models';
    20  import {map_package} from '../models';
    21  import {uint_package} from '../models';
    22  
    23  export function StartingWithFloat(arg1:float_package.SomeStruct):Promise<void>;
    24  
    25  export function StartingWithInt(arg1:int_package.SomeStruct):Promise<void>;
    26  
    27  export function StartingWithMap(arg1:map_package.SomeStruct):Promise<void>;
    28  
    29  export function StartingWithUint(arg1:uint_package.SomeStruct):Promise<void>;
    30  `
    31  
    32  type HandlerTest struct{}
    33  
    34  func (h *HandlerTest) StartingWithInt(_ int_package.SomeStruct)     {}
    35  func (h *HandlerTest) StartingWithFloat(_ float_package.SomeStruct) {}
    36  func (h *HandlerTest) StartingWithUint(_ uint_package.SomeStruct)   {}
    37  func (h *HandlerTest) StartingWithMap(_ map_package.SomeStruct)     {}
    38  
    39  func TestConflictingPackageName(t *testing.T) {
    40  	// given
    41  	generationDir := t.TempDir()
    42  
    43  	// setup
    44  	testLogger := &logger.Logger{}
    45  	b := binding.NewBindings(testLogger, []interface{}{&HandlerTest{}}, []interface{}{}, false, []interface{}{})
    46  
    47  	// then
    48  	err := b.GenerateGoBindings(generationDir)
    49  	if err != nil {
    50  		t.Fatalf("could not generate the Go bindings: %v", err)
    51  	}
    52  
    53  	// then
    54  	rawGeneratedBindings, err := fs.ReadFile(os.DirFS(generationDir), "binding_test/HandlerTest.d.ts")
    55  	if err != nil {
    56  		t.Fatalf("could not read the generated bindings: %v", err)
    57  	}
    58  
    59  	// then
    60  	generatedBindings := string(rawGeneratedBindings)
    61  	if generatedBindings != expectedBindings {
    62  		t.Fatalf("the generated bindings does not match the expected ones.\nWanted:\n%s\n\nGot:\n%s", expectedBindings, generatedBindings)
    63  	}
    64  }