Skip to content

Commit e4b920d

Browse files
committed
Added failing test for Zod 4
1 parent 6dadc14 commit e4b920d

File tree

1 file changed

+45
-0
lines changed

1 file changed

+45
-0
lines changed

src/tests/superValidate.test.ts

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1299,6 +1299,51 @@ describe('Zod 4', () => {
12991299
expect(form.data).toEqual({ id: BigInt('123456789123456789') });
13001300
});
13011301

1302+
it('should work with date and an array of objects', async () => {
1303+
const data = {
1304+
date: new Date('2023-10-01T00:00:00Z'),
1305+
items: [
1306+
{ id: 1, product: 'Product A' },
1307+
{ id: 2, product: 'Product B' },
1308+
{ id: 'bad' } as unknown as { id: number; product: string }
1309+
]
1310+
};
1311+
1312+
// -------------------------------
1313+
const schema4 = z4.object({
1314+
date: z4.date(),
1315+
items: z4.array(
1316+
z4.object({
1317+
id: z4.number(),
1318+
product: z4.string()
1319+
})
1320+
)
1321+
});
1322+
1323+
const form4 = await superValidate(data, zod4(schema4), {
1324+
errors: false
1325+
});
1326+
1327+
const z3 = z;
1328+
1329+
// -------------------------------
1330+
const schema3 = z3.object({
1331+
date: z3.date(),
1332+
items: z3.array(
1333+
z3.object({
1334+
id: z3.number(),
1335+
product: z3.string()
1336+
})
1337+
)
1338+
});
1339+
const form3 = await superValidate(data, zod(schema3), {
1340+
errors: false
1341+
});
1342+
1343+
expect(form4.data.date).toEqual(data.date);
1344+
expect(form3.data).toEqual(form4.data);
1345+
});
1346+
13021347
schemaTest(zod4(schema), undefined, undefined, undefined, 'zod4');
13031348
});
13041349

0 commit comments

Comments
 (0)