From eba93bd1eef511d29d0b293a857028a79038f394 Mon Sep 17 00:00:00 2001 From: Lea Anthony Date: Sun, 14 Jan 2024 08:07:10 +1100 Subject: [PATCH] Create failing test --- v3/internal/parser/bindings_test.go | 11 ++++++ .../frontend/bindings/main/GreetService.js | 19 ++++++++++ .../bindings/main/GreetService.name.got.js | 20 ++++++++++ .../bindings/main/GreetService.name.js | 19 ++++++++++ .../bindings/main/GreetService.name.ts | 11 ++++++ .../frontend/bindings/main/GreetService.ts | 11 ++++++ .../bindings/services/models.interfaces.ts | 12 ++++++ .../frontend/bindings/services/models.js | 13 +++++++ .../frontend/bindings/services/models.ts | 12 ++++++ .../main.go | 38 +++++++++++++++++++ .../other/services/other.go | 16 ++++++++ .../services/other.go | 16 ++++++++ 12 files changed, 198 insertions(+) create mode 100644 v3/internal/parser/testdata/enum_from_imported_package_same_name/frontend/bindings/main/GreetService.js create mode 100644 v3/internal/parser/testdata/enum_from_imported_package_same_name/frontend/bindings/main/GreetService.name.got.js create mode 100644 v3/internal/parser/testdata/enum_from_imported_package_same_name/frontend/bindings/main/GreetService.name.js create mode 100644 v3/internal/parser/testdata/enum_from_imported_package_same_name/frontend/bindings/main/GreetService.name.ts create mode 100644 v3/internal/parser/testdata/enum_from_imported_package_same_name/frontend/bindings/main/GreetService.ts create mode 100644 v3/internal/parser/testdata/enum_from_imported_package_same_name/frontend/bindings/services/models.interfaces.ts create mode 100644 v3/internal/parser/testdata/enum_from_imported_package_same_name/frontend/bindings/services/models.js create mode 100644 v3/internal/parser/testdata/enum_from_imported_package_same_name/frontend/bindings/services/models.ts create mode 100644 v3/internal/parser/testdata/enum_from_imported_package_same_name/main.go create mode 100644 v3/internal/parser/testdata/enum_from_imported_package_same_name/other/services/other.go create mode 100644 v3/internal/parser/testdata/enum_from_imported_package_same_name/services/other.go diff --git a/v3/internal/parser/bindings_test.go b/v3/internal/parser/bindings_test.go index 6d91460b..dc1058ed 100644 --- a/v3/internal/parser/bindings_test.go +++ b/v3/internal/parser/bindings_test.go @@ -103,6 +103,17 @@ func TestGenerateBindings(t *testing.T) { useIDs: false, useTypescript: true, }, + { + name: "enum_from_imported_package_same_name - CallByName", + dir: "testdata/enum_from_imported_package_same_name", + want: map[string]map[string]string{ + "main": { + "GreetService": getFile("testdata/enum_from_imported_package_same_name/frontend/bindings/main/GreetService.name.ts"), + }, + }, + useIDs: false, + useTypescript: true, + }, { name: "function_single", dir: "testdata/function_single", diff --git a/v3/internal/parser/testdata/enum_from_imported_package_same_name/frontend/bindings/main/GreetService.js b/v3/internal/parser/testdata/enum_from_imported_package_same_name/frontend/bindings/main/GreetService.js new file mode 100644 index 00000000..c1574fa4 --- /dev/null +++ b/v3/internal/parser/testdata/enum_from_imported_package_same_name/frontend/bindings/main/GreetService.js @@ -0,0 +1,19 @@ +// @ts-check +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL +// This file is automatically generated. DO NOT EDIT + +import {Call} from '@wailsio/runtime'; +/** + * @typedef {import('../services/models').Title} servicesTitle + */ + +/** + * Greet does XYZ + * @function Greet + * @param name {string} + * @param title {servicesTitle} + * @returns {Promise} + **/ +export async function Greet(name, title) { + return Call.ByID(1411160069, ...Array.prototype.slice.call(arguments, 0)); +} diff --git a/v3/internal/parser/testdata/enum_from_imported_package_same_name/frontend/bindings/main/GreetService.name.got.js b/v3/internal/parser/testdata/enum_from_imported_package_same_name/frontend/bindings/main/GreetService.name.got.js new file mode 100644 index 00000000..07097868 --- /dev/null +++ b/v3/internal/parser/testdata/enum_from_imported_package_same_name/frontend/bindings/main/GreetService.name.got.js @@ -0,0 +1,20 @@ +// @ts-check +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL +// This file is automatically generated. DO NOT EDIT + +import {Call} from '@wailsio/runtime'; +/** + * @typedef {import('../../../models').Title2} services2Title2 + */ + +/** + * Greet does XYZ + * @function Greet + * @param name {string} + * @param title {Title} + * @param title2 {services2Title2} + * @returns {Promise} + **/ +export async function Greet(name, title, title2) { + return Call.ByName("main.GreetService.Greet", ...Array.prototype.slice.call(arguments, 0)); +} diff --git a/v3/internal/parser/testdata/enum_from_imported_package_same_name/frontend/bindings/main/GreetService.name.js b/v3/internal/parser/testdata/enum_from_imported_package_same_name/frontend/bindings/main/GreetService.name.js new file mode 100644 index 00000000..672f859e --- /dev/null +++ b/v3/internal/parser/testdata/enum_from_imported_package_same_name/frontend/bindings/main/GreetService.name.js @@ -0,0 +1,19 @@ +// @ts-check +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL +// This file is automatically generated. DO NOT EDIT + +import {Call} from '@wailsio/runtime'; +/** + * @typedef {import('../services/models').Title} servicesTitle + */ + +/** + * Greet does XYZ + * @function Greet + * @param name {string} + * @param title {servicesTitle} + * @returns {Promise} + **/ +export async function Greet(name, title) { + return Call.ByName("main.GreetService.Greet", ...Array.prototype.slice.call(arguments, 0)); +} diff --git a/v3/internal/parser/testdata/enum_from_imported_package_same_name/frontend/bindings/main/GreetService.name.ts b/v3/internal/parser/testdata/enum_from_imported_package_same_name/frontend/bindings/main/GreetService.name.ts new file mode 100644 index 00000000..71846bc5 --- /dev/null +++ b/v3/internal/parser/testdata/enum_from_imported_package_same_name/frontend/bindings/main/GreetService.name.ts @@ -0,0 +1,11 @@ +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL +// This file is automatically generated. DO NOT EDIT + +import {Call} from '@wailsio/runtime'; +import {Title as servicesTitle} from '../services/models'; + +// Greet does XYZ +export async function Greet(name: string, title: servicesTitle) : Promise { + return Call.ByName("main.GreetService.Greet", name, title); +} + diff --git a/v3/internal/parser/testdata/enum_from_imported_package_same_name/frontend/bindings/main/GreetService.ts b/v3/internal/parser/testdata/enum_from_imported_package_same_name/frontend/bindings/main/GreetService.ts new file mode 100644 index 00000000..a4e52e9e --- /dev/null +++ b/v3/internal/parser/testdata/enum_from_imported_package_same_name/frontend/bindings/main/GreetService.ts @@ -0,0 +1,11 @@ +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL +// This file is automatically generated. DO NOT EDIT + +import {Call} from '@wailsio/runtime'; +import {Title as servicesTitle} from '../services/models'; + +// Greet does XYZ +export async function Greet(name: string, title: servicesTitle) : Promise { + return Call.ByID(1411160069, name, title); +} + diff --git a/v3/internal/parser/testdata/enum_from_imported_package_same_name/frontend/bindings/services/models.interfaces.ts b/v3/internal/parser/testdata/enum_from_imported_package_same_name/frontend/bindings/services/models.interfaces.ts new file mode 100644 index 00000000..29320703 --- /dev/null +++ b/v3/internal/parser/testdata/enum_from_imported_package_same_name/frontend/bindings/services/models.interfaces.ts @@ -0,0 +1,12 @@ +// @ts-check +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL +// This file is automatically generated. DO NOT EDIT + +export enum Title { + // Mister is a title + Mister = "Mr", + Miss = "Miss", + Ms = "Ms", + Mrs = "Mrs", + Dr = "Dr", +} diff --git a/v3/internal/parser/testdata/enum_from_imported_package_same_name/frontend/bindings/services/models.js b/v3/internal/parser/testdata/enum_from_imported_package_same_name/frontend/bindings/services/models.js new file mode 100644 index 00000000..2ea24de7 --- /dev/null +++ b/v3/internal/parser/testdata/enum_from_imported_package_same_name/frontend/bindings/services/models.js @@ -0,0 +1,13 @@ +// @ts-check +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL +// This file is automatically generated. DO NOT EDIT + +export const Title = { + // Mister is a title + Mister: "Mr", + Miss: "Miss", + Ms: "Ms", + Mrs: "Mrs", + Dr: "Dr", +}; + diff --git a/v3/internal/parser/testdata/enum_from_imported_package_same_name/frontend/bindings/services/models.ts b/v3/internal/parser/testdata/enum_from_imported_package_same_name/frontend/bindings/services/models.ts new file mode 100644 index 00000000..29320703 --- /dev/null +++ b/v3/internal/parser/testdata/enum_from_imported_package_same_name/frontend/bindings/services/models.ts @@ -0,0 +1,12 @@ +// @ts-check +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL +// This file is automatically generated. DO NOT EDIT + +export enum Title { + // Mister is a title + Mister = "Mr", + Miss = "Miss", + Ms = "Ms", + Mrs = "Mrs", + Dr = "Dr", +} diff --git a/v3/internal/parser/testdata/enum_from_imported_package_same_name/main.go b/v3/internal/parser/testdata/enum_from_imported_package_same_name/main.go new file mode 100644 index 00000000..95435db9 --- /dev/null +++ b/v3/internal/parser/testdata/enum_from_imported_package_same_name/main.go @@ -0,0 +1,38 @@ +package main + +import ( + _ "embed" + services2 "github.com/wailsapp/wails/v3/internal/parser/testdata/enum_from_imported_package_same_name/other/services" + "github.com/wailsapp/wails/v3/internal/parser/testdata/enum_from_imported_package_same_name/services" + "log" + + "github.com/wailsapp/wails/v3/pkg/application" +) + +// GreetService is great +type GreetService struct { + SomeVariable int + lowerCase string +} + +// Greet does XYZ +func (*GreetService) Greet(name string, title services.Title, title2 services2.Title2) string { + return "Hello " + title.String() + " " + name + title2.String() +} + +func main() { + app := application.New(application.Options{ + Bind: []interface{}{ + &GreetService{}, + }, + }) + + app.NewWebviewWindow() + + err := app.Run() + + if err != nil { + log.Fatal(err) + } + +} diff --git a/v3/internal/parser/testdata/enum_from_imported_package_same_name/other/services/other.go b/v3/internal/parser/testdata/enum_from_imported_package_same_name/other/services/other.go new file mode 100644 index 00000000..8d7c6ca5 --- /dev/null +++ b/v3/internal/parser/testdata/enum_from_imported_package_same_name/other/services/other.go @@ -0,0 +1,16 @@ +package services + +type Title2 string + +func (t Title2) String() string { + return string(t) +} + +const ( + // Mister is a title + Mister Title2 = "Mr" + Miss Title2 = "Miss" + Ms Title2 = "Ms" + Mrs Title2 = "Mrs" + Dr Title2 = "Dr" +) diff --git a/v3/internal/parser/testdata/enum_from_imported_package_same_name/services/other.go b/v3/internal/parser/testdata/enum_from_imported_package_same_name/services/other.go new file mode 100644 index 00000000..5d15f239 --- /dev/null +++ b/v3/internal/parser/testdata/enum_from_imported_package_same_name/services/other.go @@ -0,0 +1,16 @@ +package services + +type Title string + +func (t Title) String() string { + return string(t) +} + +const ( + // Mister is a title + Mister Title = "Mr" + Miss Title = "Miss" + Ms Title = "Ms" + Mrs Title = "Mrs" + Dr Title = "Dr" +)