@@ -5,12 +5,16 @@ import { stringify } from 'devalue';
5
5
import { describe , expect , test } from 'vitest' ;
6
6
import { z } from 'zod' ;
7
7
8
- async function validate ( data : unknown , schema : ValidationAdapter < Record < string , unknown > > ) {
8
+ async function validate (
9
+ data : unknown ,
10
+ schema : ValidationAdapter < Record < string , unknown > > ,
11
+ strict = false
12
+ ) {
9
13
const formInput = new FormData ( ) ;
10
14
11
15
formInput . set ( '__superform_json' , stringify ( data ) ) ;
12
16
try {
13
- return await superValidate ( formInput , schema ) ;
17
+ return await superValidate ( formInput , schema , { strict } ) ;
14
18
} catch ( err ) {
15
19
console . error ( err ) ;
16
20
//
@@ -24,8 +28,15 @@ describe('Default discriminated union values 1', () => {
24
28
z . object ( { type : z . literal ( 'extra' ) , options : z . string ( ) . array ( ) } )
25
29
] ) ;
26
30
27
- test ( 'Union with schema' , async ( ) => {
28
- const form = await validate ( { type : 'extra' } , zod ( schema ) ) ;
31
+ test ( 'Union with schema 1' , async ( ) => {
32
+ const form = await validate ( { type : 'empty' } , zod ( schema ) ) ;
33
+ expect ( form . valid ) . toBe ( true ) ;
34
+ expect ( form . data ) . toEqual ( { type : 'empty' } ) ;
35
+ } ) ;
36
+
37
+ test ( 'Union with schema 2' , async ( ) => {
38
+ const form = await validate ( { type : 'extra' } , zod ( schema ) , true ) ;
39
+ expect ( form . valid ) . toBe ( false ) ;
29
40
expect ( form . data ) . toEqual ( { type : 'extra' , options : [ ] } ) ;
30
41
} ) ;
31
42
} ) ;
0 commit comments