5
0
mirror of https://github.com/wailsapp/wails.git synced 2025-05-02 19:50:15 +08:00
wails/v3/internal/parser/bindings_test.go
2023-03-03 19:54:12 +11:00

47 lines
1.0 KiB
Go

package parser
import (
"os"
"testing"
"github.com/google/go-cmp/cmp"
)
func TestGenerateBindings(t *testing.T) {
tests := []string{
"struct_literal_single",
}
for _, projectDir := range tests {
t.Run(projectDir, func(t *testing.T) {
projectDir = "testdata/" + projectDir
// Run parser on directory
project, err := ParseProject(projectDir)
if err != nil {
t.Errorf("ParseProject() error = %v", err)
return
}
// Generate Bindings
got := GenerateBindings(project.BoundMethods)
// Write file to project directory
err = os.WriteFile(projectDir+"/bindings.got.js", []byte(got), 0644)
if err != nil {
t.Errorf("os.WriteFile() error = %v", err)
return
}
// Load bindings.js from project directory
expected, err := os.ReadFile(projectDir + "/bindings.js")
if err != nil {
t.Errorf("os.ReadFile() error = %v", err)
return
}
// Compare
if diff := cmp.Diff(string(expected), got); diff != "" {
t.Fatalf("GenerateService() mismatch (-want +got):\n%s", diff)
}
})
}
}