@@ -6,51 +6,64 @@ import {GraphQLCompilerContext, IRTransforms, transformASTSchema} from 'relay-co
6
6
7
7
import * as TypeScriptGenerator from '../src/TypeScriptGenerator'
8
8
9
+ function generate ( text , options ) {
10
+ const schema = transformASTSchema ( RelayTestSchema , [
11
+ IRTransforms . schemaExtensions [ 1 ] , // RelayRelayDirectiveTransform.SCHEMA_EXTENSION,
12
+ ] ) ;
13
+ const { definitions} = parseGraphQLText ( schema , text ) ;
14
+ return new GraphQLCompilerContext ( RelayTestSchema , schema )
15
+ . addAll ( definitions )
16
+ . applyTransforms ( TypeScriptGenerator . transforms )
17
+ . documents ( )
18
+ . map ( doc => TypeScriptGenerator . generate ( doc , options ) )
19
+ . join ( '\n\n' ) ;
20
+ }
21
+
9
22
describe ( 'TypeScriptGenerator with a single artifact directory' , ( ) => {
10
- generateTestsFromFixtures ( `${ __dirname } /fixtures/type-generator` , text => {
11
- const schema = transformASTSchema ( RelayTestSchema , [
12
- IRTransforms . schemaExtensions [ 1 ] , // RelayRelayDirectiveTransform.SCHEMA_EXTENSION,
13
- ] ) ;
14
- const { definitions} = parseGraphQLText ( schema , text ) ;
15
- return new GraphQLCompilerContext ( RelayTestSchema , schema )
16
- . addAll ( definitions )
17
- . applyTransforms ( TypeScriptGenerator . transforms )
18
- . documents ( )
19
- . map ( doc =>
20
- TypeScriptGenerator . generate ( doc , {
21
- customScalars : { } ,
22
- enumsHasteModule : null ,
23
- existingFragmentNames : new Set ( [ 'PhotoFragment' ] ) ,
24
- optionalInputFields : [ ] ,
25
- relayRuntimeModule : 'relay-runtime' ,
26
- useHaste : false ,
27
- useSingleArtifactDirectory : true ,
28
- } ) ,
29
- )
30
- . join ( '\n\n' ) ;
31
- } ) ;
23
+ generateTestsFromFixtures ( `${ __dirname } /fixtures/type-generator` , text =>
24
+ generate ( text , {
25
+ customScalars : { } ,
26
+ enumsHasteModule : null ,
27
+ existingFragmentNames : new Set ( [ 'PhotoFragment' ] ) ,
28
+ optionalInputFields : [ ] ,
29
+ relayRuntimeModule : 'relay-runtime' ,
30
+ useHaste : false ,
31
+ useSingleArtifactDirectory : true ,
32
+ } ) ,
33
+ ) ;
32
34
} ) ;
33
35
34
36
describe ( 'TypeScriptGenerator without a single artifact directory' , ( ) => {
35
- generateTestsFromFixtures ( `${ __dirname } /fixtures/type-generator` , text => {
36
- const schema = transformASTSchema ( RelayTestSchema , [
37
- IRTransforms . schemaExtensions [ 1 ] , // RelayRelayDirectiveTransform.SCHEMA_EXTENSION,
38
- ] ) ;
39
- const { definitions} = parseGraphQLText ( schema , text ) ;
40
- return new GraphQLCompilerContext ( RelayTestSchema , schema )
41
- . addAll ( definitions )
42
- . applyTransforms ( TypeScriptGenerator . transforms )
43
- . documents ( )
44
- . map ( doc =>
45
- TypeScriptGenerator . generate ( doc , {
46
- customScalars : { } ,
47
- enumsHasteModule : null ,
48
- existingFragmentNames : new Set ( [ 'PhotoFragment' ] ) ,
49
- optionalInputFields : [ ] ,
50
- relayRuntimeModule : 'relay-runtime' ,
51
- useHaste : true ,
52
- } ) ,
53
- )
54
- . join ( '\n\n' ) ;
37
+ generateTestsFromFixtures ( `${ __dirname } /fixtures/type-generator` , text =>
38
+ generate ( text , {
39
+ customScalars : { } ,
40
+ enumsHasteModule : null ,
41
+ existingFragmentNames : new Set ( [ 'PhotoFragment' ] ) ,
42
+ optionalInputFields : [ ] ,
43
+ relayRuntimeModule : 'relay-runtime' ,
44
+ useHaste : false ,
45
+ } ) ,
46
+ ) ;
47
+ } ) ;
48
+
49
+ describe ( 'Does not add `%future added values` when the noFutureProofEnums option is set' , ( ) => {
50
+ const text = `
51
+ fragment ScalarField on User {
52
+ traits
53
+ }
54
+ ` ;
55
+ const types = generate ( text , {
56
+ customScalars : { } ,
57
+ enumsHasteModule : null ,
58
+ existingFragmentNames : new Set ( [ 'PhotoFragment' ] ) ,
59
+ optionalInputFields : [ ] ,
60
+ relayRuntimeModule : 'relay-runtime' ,
61
+ useHaste : false ,
62
+ noFutureProofEnums : true ,
55
63
} ) ;
64
+
65
+ // Without the option, PersonalityTraits would be `"CHEERFUL" | ... | "%future added value");`
66
+ expect ( types ) . toContain (
67
+ 'export type PersonalityTraits = "CHEERFUL" | "DERISIVE" | "HELPFUL" | "SNARKY";' ,
68
+ ) ;
56
69
} ) ;
0 commit comments