File tree 3 files changed +96
-0
lines changed
3 files changed +96
-0
lines changed Original file line number Diff line number Diff line change 1
1
import { buildSchema } from 'graphql' ;
2
+ import dedent from 'ts-dedent' ;
2
3
3
4
import { plugin } from '../src/index' ;
4
5
@@ -297,6 +298,37 @@ describe('myzod', () => {
297
298
}
298
299
} ) ;
299
300
301
+ it ( 'with notAllowEmptyString issue #386' , async ( ) => {
302
+ const schema = buildSchema ( /* GraphQL */ `
303
+ input InputOne {
304
+ field: InputNested!
305
+ }
306
+
307
+ input InputNested {
308
+ field: String!
309
+ }
310
+ ` ) ;
311
+ const result = await plugin (
312
+ schema ,
313
+ [ ] ,
314
+ {
315
+ schema : 'myzod' ,
316
+ notAllowEmptyString : true ,
317
+ scalars : {
318
+ ID : 'string' ,
319
+ } ,
320
+ } ,
321
+ { }
322
+ ) ;
323
+ const wantContain = dedent `
324
+ export function InputNestedSchema(): myzod.Type<InputNested> {
325
+ return myzod.object({
326
+ field: myzod.string().min(1)
327
+ })
328
+ }` ;
329
+ expect ( result . content ) . toContain ( wantContain ) ;
330
+ } ) ;
331
+
300
332
it ( 'with scalarSchemas' , async ( ) => {
301
333
const schema = buildSchema ( /* GraphQL */ `
302
334
input ScalarsInput {
Original file line number Diff line number Diff line change 1
1
import { buildSchema } from 'graphql' ;
2
+ import dedent from 'ts-dedent' ;
2
3
3
4
import { plugin } from '../src/index' ;
4
5
@@ -294,6 +295,37 @@ describe('yup', () => {
294
295
}
295
296
} ) ;
296
297
298
+ it ( 'with notAllowEmptyString issue #386' , async ( ) => {
299
+ const schema = buildSchema ( /* GraphQL */ `
300
+ input InputOne {
301
+ field: InputNested!
302
+ }
303
+
304
+ input InputNested {
305
+ field: String!
306
+ }
307
+ ` ) ;
308
+ const result = await plugin (
309
+ schema ,
310
+ [ ] ,
311
+ {
312
+ schema : 'yup' ,
313
+ notAllowEmptyString : true ,
314
+ scalars : {
315
+ ID : 'string' ,
316
+ } ,
317
+ } ,
318
+ { }
319
+ ) ;
320
+ const wantContain = dedent `
321
+ export function InputNestedSchema(): yup.ObjectSchema<InputNested> {
322
+ return yup.object({
323
+ field: yup.string().defined().required()
324
+ })
325
+ }` ;
326
+ expect ( result . content ) . toContain ( wantContain ) ;
327
+ } ) ;
328
+
297
329
it ( 'with scalarSchemas' , async ( ) => {
298
330
const schema = buildSchema ( /* GraphQL */ `
299
331
input ScalarsInput {
Original file line number Diff line number Diff line change 1
1
import { buildSchema } from 'graphql' ;
2
+ import { dedent } from 'ts-dedent' ;
2
3
3
4
import { plugin } from '../src/index' ;
4
5
@@ -297,6 +298,37 @@ describe('zod', () => {
297
298
}
298
299
} ) ;
299
300
301
+ it ( 'with notAllowEmptyString issue #386' , async ( ) => {
302
+ const schema = buildSchema ( /* GraphQL */ `
303
+ input InputOne {
304
+ field: InputNested!
305
+ }
306
+
307
+ input InputNested {
308
+ field: String!
309
+ }
310
+ ` ) ;
311
+ const result = await plugin (
312
+ schema ,
313
+ [ ] ,
314
+ {
315
+ schema : 'zod' ,
316
+ notAllowEmptyString : true ,
317
+ scalars : {
318
+ ID : 'string' ,
319
+ } ,
320
+ } ,
321
+ { }
322
+ ) ;
323
+ const wantContain = dedent `
324
+ export function InputNestedSchema(): z.ZodObject<Properties<InputNested>> {
325
+ return z.object({
326
+ field: z.string().min(1)
327
+ })
328
+ }` ;
329
+ expect ( result . content ) . toContain ( wantContain ) ;
330
+ } ) ;
331
+
300
332
it ( 'with scalarSchemas' , async ( ) => {
301
333
const schema = buildSchema ( /* GraphQL */ `
302
334
input ScalarsInput {
You can’t perform that action at this time.
0 commit comments