diff --git a/src/js/package.json b/src/js/package.json index 450c9118..d03a7ef3 100644 --- a/src/js/package.json +++ b/src/js/package.json @@ -6,11 +6,11 @@ "build": "sh scripts/build.sh" }, "devDependencies": { - "typescript": "^5.3.3", - "@types/node": "^20.11.5", + "typescript": "^5.4.2", + "@types/node": "^20.11.25", "@types/ws": "^8.5.10", - "vitest": "^1.2.1", - "@vitest/coverage-v8": "^1.2.1", + "vitest": "^1.3.1", + "@vitest/coverage-v8": "^1.3.1", "ws": "^8.16.0" } } diff --git a/src/js/test/cs/Test.Types/Vehicle/Registry.cs b/src/js/test/cs/Test.Types/Vehicle/Registry.cs index 43275629..f90098d7 100644 --- a/src/js/test/cs/Test.Types/Vehicle/Registry.cs +++ b/src/js/test/cs/Test.Types/Vehicle/Registry.cs @@ -43,4 +43,7 @@ public static async Task> MapRegistriesAsy [JSFunction] public static partial IReadOnlyDictionary GetRegistryMap (); + + [JSInvokable] + public static Vehicle GetWithEmptyId () => new() { Id = "" }; } diff --git a/src/js/test/spec/interop.spec.ts b/src/js/test/spec/interop.spec.ts index fb5fd778..a9f0f358 100644 --- a/src/js/test/spec/interop.spec.ts +++ b/src/js/test/spec/interop.spec.ts @@ -169,4 +169,10 @@ describe("while bootsharp is booted", () => { expect(result1).toStrictEqual("foobar"); expect(result2).toStrictEqual("baznya"); }); + it("empty string of a struct is transferred correctly", () => { + const id = Test.Types.Registry.getWithEmptyId().id; + expect(id).not.toBeNull(); + expect(id).not.toBeUndefined(); + expect(id).toStrictEqual(""); + }); });