File tree Expand file tree Collapse file tree 6 files changed +115
-9
lines changed
tests/useImplementingTypesAndDefaultNullableToNull Expand file tree Collapse file tree 6 files changed +115
-9
lines changed Original file line number Diff line number Diff line change
1
+ # v4.3.1 (Wed Feb 26 2025)
2
+
3
+ #### 🐛 Bug Fix
4
+
5
+ - Fix: handling useImplementingTypes and defaultNullableToNull [ #181 ] ( https://github.com/ardeois/graphql-codegen-typescript-mock-data/pull/181 ) ([ @mateusz-slab ] ( https://github.com/mateusz-slab ) [ @ardeois ] ( https://github.com/ardeois ) )
6
+
7
+ #### Authors: 2
8
+
9
+ - Corentin Ardeois ([ @ardeois ] ( https://github.com/ardeois ) )
10
+ - Mateusz Zieliński ([ @mateusz-slab ] ( https://github.com/mateusz-slab ) )
11
+
12
+ ---
13
+
1
14
# v4.3.0 (Wed Feb 26 2025)
2
15
3
16
#### 🚀 Enhancement
Original file line number Diff line number Diff line change 1
1
{
2
2
"name" : " graphql-codegen-typescript-mock-data" ,
3
- "version" : " 4.3.0 " ,
3
+ "version" : " 4.3.1 " ,
4
4
"description" : " GraphQL Codegen plugin for building mock data" ,
5
5
"main" : " dist/commonjs/index.js" ,
6
6
"module" : " dist/esnext/index.js" ,
Original file line number Diff line number Diff line change @@ -364,14 +364,17 @@ const getNamedType = (opts: Options<NamedTypeNode | ObjectTypeDefinitionNode>):
364
364
)
365
365
break ;
366
366
367
- return foundTypes
368
- . map ( ( implementType : TypeItem ) =>
369
- getNamedImplementType ( {
370
- ...opts ,
371
- currentType : implementType . types ,
372
- } ) ,
373
- )
374
- . join ( ' || ' ) ;
367
+ return (
368
+ foundTypes
369
+ . map ( ( implementType : TypeItem ) =>
370
+ getNamedImplementType ( {
371
+ ...opts ,
372
+ currentType : implementType . types ,
373
+ } ) ,
374
+ )
375
+ . filter ( ( value ) => value !== null )
376
+ . join ( ' || ' ) || null
377
+ ) ;
375
378
default :
376
379
throw `foundType is unknown: ${ foundType . name } : ${ foundType . type } ` ;
377
380
}
Original file line number Diff line number Diff line change
1
+ // Jest Snapshot v1, https://goo.gl/fbAQLP
2
+
3
+ exports [` should support useImplementingTypes 1` ] = `
4
+ "
5
+ export const mockRoot = (overrides?: Partial<Root >): Root => {
6
+ return {
7
+ id: overrides && overrides .hasOwnProperty (' id' ) ? overrides .id ! : null ,
8
+ };
9
+ } ;
10
+
11
+ export const mockA = (overrides?: Partial<A >): A => {
12
+ return {
13
+ id: overrides && overrides .hasOwnProperty (' id' ) ? overrides .id ! : null ,
14
+ };
15
+ } ;
16
+
17
+ export const mockB = (overrides?: Partial<B >): B => {
18
+ return {
19
+ id: overrides && overrides .hasOwnProperty (' id' ) ? overrides .id ! : null ,
20
+ };
21
+ } ;
22
+
23
+ export const mockC = (overrides?: Partial<C >): C => {
24
+ return {
25
+ id: overrides && overrides .hasOwnProperty (' id' ) ? overrides .id ! : null ,
26
+ };
27
+ } ;
28
+
29
+ export const mockD = (overrides?: Partial<D >): D => {
30
+ return {
31
+ id: overrides && overrides .hasOwnProperty (' id' ) ? overrides .id ! : null ,
32
+ };
33
+ } ;
34
+
35
+ export const mockTest = (overrides?: Partial<Test >): Test => {
36
+ return {
37
+ field1: overrides && overrides .hasOwnProperty (' field1' ) ? overrides .field1 ! : mockA () || mockB () || mockC () || mockD (),
38
+ field2: overrides && overrides .hasOwnProperty (' field2' ) ? overrides .field2 ! : null ,
39
+ };
40
+ } ;
41
+ "
42
+ `;
Original file line number Diff line number Diff line change
1
+ import { buildSchema } from 'graphql' ;
2
+
3
+ export default buildSchema ( /* GraphQL */ `
4
+ interface Root {
5
+ id: ID
6
+ }
7
+
8
+ type A implements Root {
9
+ id: ID
10
+ }
11
+
12
+ type B implements Root {
13
+ id: ID
14
+ }
15
+
16
+ type C implements Root {
17
+ id: ID
18
+ }
19
+
20
+ type D implements Root {
21
+ id: ID
22
+ }
23
+
24
+ type Test {
25
+ field1: Root!
26
+ field2: Root
27
+ }
28
+ ` ) ;
Original file line number Diff line number Diff line change
1
+ import { plugin } from '../../src' ;
2
+ import testSchema from './schema' ;
3
+
4
+ it ( 'should support useImplementingTypes' , async ( ) => {
5
+ const result = await plugin ( testSchema , [ ] , {
6
+ prefix : 'mock' ,
7
+ useImplementingTypes : true ,
8
+ defaultNullableToNull : true ,
9
+ } ) ;
10
+
11
+ expect ( result ) . toBeDefined ( ) ;
12
+
13
+ expect ( result ) . toContain (
14
+ "field1: overrides && overrides.hasOwnProperty('field1') ? overrides.field1! : mockA() || mockB() || mockC() || mockD()," ,
15
+ ) ;
16
+
17
+ expect ( result ) . toContain ( "field2: overrides && overrides.hasOwnProperty('field2') ? overrides.field2! : null," ) ;
18
+
19
+ expect ( result ) . toMatchSnapshot ( ) ;
20
+ } ) ;
You can’t perform that action at this time.
0 commit comments