Skip to content

Commit 6b2acc1

Browse files
authored
Fix zod parsing for pos in workflow (#142)
* Fix zod parsing for pos in workflow * Add test * Fix test
1 parent edb1349 commit 6b2acc1

File tree

2 files changed

+16
-1
lines changed

2 files changed

+16
-1
lines changed

src/types/comfyWorkflow.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ const zComfyNode = z
5353
.object({
5454
id: z.number(),
5555
type: z.string(),
56-
pos: z.tuple([z.number(), z.number()]),
56+
pos: zVector2,
5757
size: zVector2,
5858
flags: zFlags,
5959
order: z.number(),

tests-ui/tests/comfyWorkflow.test.ts

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,4 +52,19 @@ describe("parseComfyWorkflow", () => {
5252
workflow.extra = { foo: "bar" }; // Should accept extra fields.
5353
await expect(parseComfyWorkflow(JSON.stringify(workflow))).resolves.not.toThrow();
5454
});
55+
56+
it("workflow.nodes.pos", async () => {
57+
const workflow = JSON.parse(JSON.stringify(defaultGraph));
58+
workflow.nodes[0].pos = [1, 2, 3];
59+
await expect(parseComfyWorkflow(JSON.stringify(workflow))).rejects.toBeTruthy();
60+
61+
workflow.nodes[0].pos = [1, 2];
62+
await expect(parseComfyWorkflow(JSON.stringify(workflow))).resolves.not.toThrow();
63+
64+
workflow.nodes[0].pos = {"0": 3, "1": 4};
65+
await expect(parseComfyWorkflow(JSON.stringify(workflow))).resolves.not.toThrow();
66+
67+
workflow.nodes[0].pos = {0: 3, 1: 4};
68+
await expect(parseComfyWorkflow(JSON.stringify(workflow))).resolves.not.toThrow();
69+
});
5570
});

0 commit comments

Comments
 (0)