|
1 | | -import { setError, superValidate, defaultData } from '$lib/server'; |
| 1 | +import { |
| 2 | + setError, |
| 3 | + superValidate, |
| 4 | + defaultData, |
| 5 | + setMessage |
| 6 | +} from '$lib/server'; |
2 | 7 | import { assert, expect, test, describe } from 'vitest'; |
3 | 8 | import { z, type AnyZodObject } from 'zod'; |
4 | 9 | import _slugify from 'slugify'; |
@@ -160,12 +165,14 @@ test('FormData array data', async () => { |
160 | 165 | }); |
161 | 166 |
|
162 | 167 | test('Nullable values', async () => { |
163 | | - const refinedSchema = z.object({ |
164 | | - scopeId: z.number().int().min(1), |
165 | | - name: z.string().nullable() |
166 | | - }).refine(data => data); |
| 168 | + const refinedSchema = z |
| 169 | + .object({ |
| 170 | + scopeId: z.number().int().min(1), |
| 171 | + name: z.string().nullable() |
| 172 | + }) |
| 173 | + .refine((data) => data); |
167 | 174 |
|
168 | | - const schema = refinedSchema._def.schema |
| 175 | + const schema = refinedSchema._def.schema; |
169 | 176 |
|
170 | 177 | const output = defaultData(schema); |
171 | 178 | expect(output.scopeId).equals(0); |
@@ -842,3 +849,27 @@ test('ZodObject defaults', async () => { |
842 | 849 | } |
843 | 850 | }); |
844 | 851 | }); |
| 852 | + |
| 853 | +test('setMessage and setError with refined schema', async () => { |
| 854 | + const schema = z |
| 855 | + .object({ |
| 856 | + name: z.string(), |
| 857 | + id: z.number() |
| 858 | + }) |
| 859 | + .refine((data) => data) |
| 860 | + .refine((data) => data); |
| 861 | + |
| 862 | + const form = await superValidate({ name: '', id: 0 }, schema); |
| 863 | + assert(form.valid); |
| 864 | + expect(form.message).toBeUndefined(); |
| 865 | + |
| 866 | + setMessage(form, 'A message'); |
| 867 | + expect(form.message).toEqual('A message'); |
| 868 | + |
| 869 | + expect(form.errors).toEqual({}); |
| 870 | + setError(form, 'id', 'Id error'); |
| 871 | + |
| 872 | + expect(form.errors).toEqual({ |
| 873 | + id: ['Id error'] |
| 874 | + }); |
| 875 | +}); |
0 commit comments