@sundaeswap/sprinkles 0.1.1 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -127,5 +127,34 @@ _bunTest.mock.module("@inquirer/prompts", () => ({
127
127
  // Second call should have the first input as default
128
128
  (0, _bunTest.expect)(mockInput.mock.calls[1][0].default).toBe("first-input");
129
129
  });
130
+ (0, _bunTest.test)("fills a tuple with same-type elements", async () => {
131
+ const schema = _index.Type.Tuple([_index.Type.String(), _index.Type.String()]);
132
+ mockInput.mockResolvedValueOnce("policyId").mockResolvedValueOnce("assetName");
133
+ const result = await sprinkle.FillInStruct(schema);
134
+ (0, _bunTest.expect)(result).toEqual(["policyId", "assetName"]);
135
+ });
136
+ (0, _bunTest.test)("fills a tuple with mixed types", async () => {
137
+ const schema = _index.Type.Tuple([_index.Type.String(), _index.Type.BigInt()]);
138
+ mockInput.mockResolvedValueOnce("label").mockResolvedValueOnce("42");
139
+ const result = await sprinkle.FillInStruct(schema);
140
+ (0, _bunTest.expect)(result).toEqual(["label", 42n]);
141
+ });
142
+ (0, _bunTest.test)("fills a tuple with default values", async () => {
143
+ const schema = _index.Type.Tuple([_index.Type.String(), _index.Type.BigInt()]);
144
+ mockInput.mockResolvedValueOnce("new-label").mockResolvedValueOnce("99");
145
+ await sprinkle.FillInStruct(schema, ["default-label", 50n]);
146
+ (0, _bunTest.expect)(mockInput.mock.calls[0][0].default).toBe("default-label");
147
+ (0, _bunTest.expect)(mockInput.mock.calls[1][0].default).toBe("50");
148
+ });
149
+ (0, _bunTest.test)("fills a tuple nested in an object", async () => {
150
+ const schema = _index.Type.Object({
151
+ asset: _index.Type.Tuple([_index.Type.String(), _index.Type.String()])
152
+ });
153
+ mockInput.mockResolvedValueOnce("policy123").mockResolvedValueOnce("token456");
154
+ const result = await sprinkle.FillInStruct(schema);
155
+ (0, _bunTest.expect)(result).toEqual({
156
+ asset: ["policy123", "token456"]
157
+ });
158
+ });
130
159
  });
131
160
  //# sourceMappingURL=fill-in-struct.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"fill-in-struct.test.js","names":["_bunTest","require","_index","mockSelect","mock","mockInput","module","select","input","describe","sprinkle","beforeEach","schema","Type","Object","placeholder","String","Sprinkle","mockClear","test","mockResolvedValueOnce","result","FillInStruct","expect","toBe","title","calls","message","BigInt","Literal","not","toHaveBeenCalled","name","age","toEqual","Union","type","value","count","mockImplementationOnce","opts","choices","Array","default","Boolean","rejects","toThrow","outer","inner","defaults"],"sources":["../../../../src/Sprinkle/__tests__/fill-in-struct.test.ts"],"sourcesContent":["import { describe, expect, test, mock, beforeEach } from \"bun:test\";\nimport { Sprinkle, Type } from \"../index.js\";\n\n// Mock @inquirer/prompts\nconst mockSelect = mock();\nconst mockInput = mock();\n\nmock.module(\"@inquirer/prompts\", () => ({\n select: mockSelect,\n input: mockInput,\n}));\n\ndescribe(\"FillInStruct\", () => {\n let sprinkle: Sprinkle<any>;\n\n beforeEach(() => {\n const schema = Type.Object({ placeholder: Type.String() });\n sprinkle = new Sprinkle(schema, \"/tmp/test\");\n mockSelect.mockClear();\n mockInput.mockClear();\n });\n\n test(\"fills a simple string field\", async () => {\n mockInput.mockResolvedValueOnce(\"hello\");\n\n const result = await sprinkle.FillInStruct(Type.String());\n expect(result).toBe(\"hello\");\n });\n\n test(\"fills a string with title as prompt\", async () => {\n mockInput.mockResolvedValueOnce(\"world\");\n\n await sprinkle.FillInStruct(Type.String({ title: \"Enter name\" }));\n expect(mockInput.mock.calls[0][0].message).toBe(\"Enter name\");\n });\n\n test(\"fills a bigint field\", async () => {\n mockInput.mockResolvedValueOnce(\"42\");\n\n const result = await sprinkle.FillInStruct(Type.BigInt());\n expect(result).toBe(42n);\n });\n\n test(\"fills a literal field without prompting\", async () => {\n const result = await sprinkle.FillInStruct(Type.Literal(\"fixed\"));\n expect(result).toBe(\"fixed\");\n expect(mockInput).not.toHaveBeenCalled();\n expect(mockSelect).not.toHaveBeenCalled();\n });\n\n test(\"fills an object with multiple fields\", async () => {\n const schema = Type.Object({\n name: Type.String(),\n age: Type.BigInt(),\n });\n\n mockInput\n .mockResolvedValueOnce(\"Alice\")\n .mockResolvedValueOnce(\"30\");\n\n const result = await sprinkle.FillInStruct(schema);\n expect(result).toEqual({ name: \"Alice\", age: 30n });\n });\n\n test(\"fills a union type by selecting variant then filling\", async () => {\n const schema = Type.Union([\n Type.Object({\n type: Type.Literal(\"a\"),\n value: Type.String(),\n }),\n Type.Object({\n type: Type.Literal(\"b\"),\n count: Type.BigInt(),\n }),\n ]);\n\n // Select first variant (the Object with type \"a\")\n mockSelect.mockImplementationOnce(async (opts: any) => {\n return opts.choices[0].value;\n });\n mockInput.mockResolvedValueOnce(\"test-value\");\n\n const result = await sprinkle.FillInStruct(schema);\n expect(result).toEqual({ type: \"a\", value: \"test-value\" });\n });\n\n test(\"fills an array with items\", async () => {\n const schema = Type.Array(Type.String());\n\n mockInput.mockResolvedValueOnce(\"first\");\n mockSelect.mockResolvedValueOnce(true); // add another\n mockInput.mockResolvedValueOnce(\"second\");\n mockSelect.mockResolvedValueOnce(false); // stop\n\n const result = await sprinkle.FillInStruct(schema);\n expect(result).toEqual([\"first\", \"second\"]);\n });\n\n test(\"fills an array with single item\", async () => {\n const schema = Type.Array(Type.String());\n\n mockInput.mockResolvedValueOnce(\"only\");\n mockSelect.mockResolvedValueOnce(false); // stop\n\n const result = await sprinkle.FillInStruct(schema);\n expect(result).toEqual([\"only\"]);\n });\n\n test(\"uses default value for string\", async () => {\n mockInput.mockResolvedValueOnce(\"used-default\");\n\n await sprinkle.FillInStruct(\n Type.String(),\n \"my-default\" as any,\n );\n\n expect(mockInput.mock.calls[0][0].default).toBe(\"my-default\");\n });\n\n test(\"uses default value for bigint\", async () => {\n mockInput.mockResolvedValueOnce(\"99\");\n\n await sprinkle.FillInStruct(Type.BigInt(), 99n as any);\n\n expect(mockInput.mock.calls[0][0].default).toBe(\"99\");\n });\n\n test(\"throws for unsupported types\", async () => {\n expect(\n sprinkle.FillInStruct(Type.Boolean() as any),\n ).rejects.toThrow(\"Unable to fill in struct\");\n });\n\n test(\"fills nested objects\", async () => {\n const schema = Type.Object({\n outer: Type.Object({\n inner: Type.String(),\n }),\n });\n\n mockInput.mockResolvedValueOnce(\"deep-value\");\n\n const result = await sprinkle.FillInStruct(schema);\n expect(result).toEqual({ outer: { inner: \"deep-value\" } });\n });\n\n test(\"remembers last string input as default\", async () => {\n mockInput\n .mockResolvedValueOnce(\"first-input\")\n .mockResolvedValueOnce(\"second-input\");\n\n await sprinkle.FillInStruct(Type.String());\n expect(sprinkle.defaults[\"string\"]).toBe(\"first-input\");\n\n await sprinkle.FillInStruct(Type.String());\n // Second call should have the first input as default\n expect(mockInput.mock.calls[1][0].default).toBe(\"first-input\");\n });\n});\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"fill-in-struct.test.js","names":["_bunTest","require","_index","mockSelect","mock","mockInput","module","select","input","describe","sprinkle","beforeEach","schema","Type","Object","placeholder","String","Sprinkle","mockClear","test","mockResolvedValueOnce","result","FillInStruct","expect","toBe","title","calls","message","BigInt","Literal","not","toHaveBeenCalled","name","age","toEqual","Union","type","value","count","mockImplementationOnce","opts","choices","Array","default","Boolean","rejects","toThrow","outer","inner","defaults","Tuple","asset"],"sources":["../../../../src/Sprinkle/__tests__/fill-in-struct.test.ts"],"sourcesContent":["import { describe, expect, test, mock, beforeEach } from \"bun:test\";\nimport { Sprinkle, Type } from \"../index.js\";\n\n// Mock @inquirer/prompts\nconst mockSelect = mock();\nconst mockInput = mock();\n\nmock.module(\"@inquirer/prompts\", () => ({\n select: mockSelect,\n input: mockInput,\n}));\n\ndescribe(\"FillInStruct\", () => {\n let sprinkle: Sprinkle<any>;\n\n beforeEach(() => {\n const schema = Type.Object({ placeholder: Type.String() });\n sprinkle = new Sprinkle(schema, \"/tmp/test\");\n mockSelect.mockClear();\n mockInput.mockClear();\n });\n\n test(\"fills a simple string field\", async () => {\n mockInput.mockResolvedValueOnce(\"hello\");\n\n const result = await sprinkle.FillInStruct(Type.String());\n expect(result).toBe(\"hello\");\n });\n\n test(\"fills a string with title as prompt\", async () => {\n mockInput.mockResolvedValueOnce(\"world\");\n\n await sprinkle.FillInStruct(Type.String({ title: \"Enter name\" }));\n expect(mockInput.mock.calls[0][0].message).toBe(\"Enter name\");\n });\n\n test(\"fills a bigint field\", async () => {\n mockInput.mockResolvedValueOnce(\"42\");\n\n const result = await sprinkle.FillInStruct(Type.BigInt());\n expect(result).toBe(42n);\n });\n\n test(\"fills a literal field without prompting\", async () => {\n const result = await sprinkle.FillInStruct(Type.Literal(\"fixed\"));\n expect(result).toBe(\"fixed\");\n expect(mockInput).not.toHaveBeenCalled();\n expect(mockSelect).not.toHaveBeenCalled();\n });\n\n test(\"fills an object with multiple fields\", async () => {\n const schema = Type.Object({\n name: Type.String(),\n age: Type.BigInt(),\n });\n\n mockInput\n .mockResolvedValueOnce(\"Alice\")\n .mockResolvedValueOnce(\"30\");\n\n const result = await sprinkle.FillInStruct(schema);\n expect(result).toEqual({ name: \"Alice\", age: 30n });\n });\n\n test(\"fills a union type by selecting variant then filling\", async () => {\n const schema = Type.Union([\n Type.Object({\n type: Type.Literal(\"a\"),\n value: Type.String(),\n }),\n Type.Object({\n type: Type.Literal(\"b\"),\n count: Type.BigInt(),\n }),\n ]);\n\n // Select first variant (the Object with type \"a\")\n mockSelect.mockImplementationOnce(async (opts: any) => {\n return opts.choices[0].value;\n });\n mockInput.mockResolvedValueOnce(\"test-value\");\n\n const result = await sprinkle.FillInStruct(schema);\n expect(result).toEqual({ type: \"a\", value: \"test-value\" });\n });\n\n test(\"fills an array with items\", async () => {\n const schema = Type.Array(Type.String());\n\n mockInput.mockResolvedValueOnce(\"first\");\n mockSelect.mockResolvedValueOnce(true); // add another\n mockInput.mockResolvedValueOnce(\"second\");\n mockSelect.mockResolvedValueOnce(false); // stop\n\n const result = await sprinkle.FillInStruct(schema);\n expect(result).toEqual([\"first\", \"second\"]);\n });\n\n test(\"fills an array with single item\", async () => {\n const schema = Type.Array(Type.String());\n\n mockInput.mockResolvedValueOnce(\"only\");\n mockSelect.mockResolvedValueOnce(false); // stop\n\n const result = await sprinkle.FillInStruct(schema);\n expect(result).toEqual([\"only\"]);\n });\n\n test(\"uses default value for string\", async () => {\n mockInput.mockResolvedValueOnce(\"used-default\");\n\n await sprinkle.FillInStruct(\n Type.String(),\n \"my-default\" as any,\n );\n\n expect(mockInput.mock.calls[0][0].default).toBe(\"my-default\");\n });\n\n test(\"uses default value for bigint\", async () => {\n mockInput.mockResolvedValueOnce(\"99\");\n\n await sprinkle.FillInStruct(Type.BigInt(), 99n as any);\n\n expect(mockInput.mock.calls[0][0].default).toBe(\"99\");\n });\n\n test(\"throws for unsupported types\", async () => {\n expect(\n sprinkle.FillInStruct(Type.Boolean() as any),\n ).rejects.toThrow(\"Unable to fill in struct\");\n });\n\n test(\"fills nested objects\", async () => {\n const schema = Type.Object({\n outer: Type.Object({\n inner: Type.String(),\n }),\n });\n\n mockInput.mockResolvedValueOnce(\"deep-value\");\n\n const result = await sprinkle.FillInStruct(schema);\n expect(result).toEqual({ outer: { inner: \"deep-value\" } });\n });\n\n test(\"remembers last string input as default\", async () => {\n mockInput\n .mockResolvedValueOnce(\"first-input\")\n .mockResolvedValueOnce(\"second-input\");\n\n await sprinkle.FillInStruct(Type.String());\n expect(sprinkle.defaults[\"string\"]).toBe(\"first-input\");\n\n await sprinkle.FillInStruct(Type.String());\n // Second call should have the first input as default\n expect(mockInput.mock.calls[1][0].default).toBe(\"first-input\");\n });\n\n test(\"fills a tuple with same-type elements\", async () => {\n const schema = Type.Tuple([Type.String(), Type.String()]);\n\n mockInput\n .mockResolvedValueOnce(\"policyId\")\n .mockResolvedValueOnce(\"assetName\");\n\n const result = await sprinkle.FillInStruct(schema);\n expect(result).toEqual([\"policyId\", \"assetName\"]);\n });\n\n test(\"fills a tuple with mixed types\", async () => {\n const schema = Type.Tuple([Type.String(), Type.BigInt()]);\n\n mockInput\n .mockResolvedValueOnce(\"label\")\n .mockResolvedValueOnce(\"42\");\n\n const result = await sprinkle.FillInStruct(schema);\n expect(result).toEqual([\"label\", 42n]);\n });\n\n test(\"fills a tuple with default values\", async () => {\n const schema = Type.Tuple([Type.String(), Type.BigInt()]);\n\n mockInput\n .mockResolvedValueOnce(\"new-label\")\n .mockResolvedValueOnce(\"99\");\n\n await sprinkle.FillInStruct(schema, [\"default-label\", 50n] as any);\n\n expect(mockInput.mock.calls[0][0].default).toBe(\"default-label\");\n expect(mockInput.mock.calls[1][0].default).toBe(\"50\");\n });\n\n test(\"fills a tuple nested in an object\", async () => {\n const schema = Type.Object({\n asset: Type.Tuple([Type.String(), Type.String()]),\n });\n\n mockInput\n .mockResolvedValueOnce(\"policy123\")\n .mockResolvedValueOnce(\"token456\");\n\n const result = await sprinkle.FillInStruct(schema);\n expect(result).toEqual({ asset: [\"policy123\", \"token456\"] });\n });\n});\n"],"mappings":"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","ignoreList":[]}