@@ -2,41 +2,42 @@ import { GraphQLEnumType } from 'graphql/type';
2
2
import { parse } from 'graphql/language' ;
3
3
import buildEnum , { buildEnumValueConfigMap } from '../buildEnum' ;
4
4
5
- const generateEnumAST = ( { description, name = 'Enum' , values = [ 'VALUE' ] } = { } ) => parse ( `
5
+ const generateEnumNode = ( { description, name = 'Enum' , values = [ 'VALUE' ] } = { } ) => parse ( `
6
6
# ${ description === undefined ? '' : description }
7
7
enum ${ name } {
8
8
${ values . join ( '\n' ) }
9
9
}
10
10
` ) . definitions [ 0 ] ;
11
11
const generateEnumValueConfigMap = ( {
12
12
name = 'VALUE' ,
13
- value = 'VALUE' ,
14
- description,
13
+ value,
15
14
deprecationReason,
16
- } = { } ) => ( { [ name ] : { value, description, deprecationReason } } ) ;
15
+ description,
16
+ } = { } ) => ( name ? ( { [ name ] : { value, deprecationReason, description } } ) : { } ) ;
17
17
18
18
describe ( 'buildEnumValueConfigMap()' , ( ) => {
19
- it ( 'should work with minimal AST' , ( ) => {
20
- expect ( buildEnumValueConfigMap ( generateEnumAST ( ) ) ) . toEqual ( generateEnumValueConfigMap ( ) ) ;
19
+ it ( 'builds with minimal AST' , ( ) => {
20
+ expect ( buildEnumValueConfigMap ( generateEnumNode ( ) ) ) . toEqual ( generateEnumValueConfigMap ( ) ) ;
21
21
} ) ;
22
22
23
- it ( 'should work with description in AST' , ( ) => {
23
+ it ( 'builds with description in AST' , ( ) => {
24
24
const description = 'Another description.' ;
25
- expect ( buildEnumValueConfigMap ( generateEnumAST ( {
25
+ expect ( buildEnumValueConfigMap ( generateEnumNode ( {
26
26
values : [ `# ${ description } \nVALUE` ] ,
27
27
} ) ) ) . toEqual ( generateEnumValueConfigMap ( { description } ) ) ;
28
28
} ) ;
29
29
30
- it ( 'should work with `value` in config map' , ( ) => {
31
- const value = 'value' ;
32
- expect ( buildEnumValueConfigMap ( generateEnumAST ( ) , { VALUE : { value } } ) )
33
- . toEqual ( generateEnumValueConfigMap ( { value } ) ) ;
30
+ it ( 'builds with deprecation directive in AST' , ( ) => {
31
+ const deprecationReason = 'A reason.' ;
32
+ expect ( buildEnumValueConfigMap ( generateEnumNode ( {
33
+ values : [ `VALUE @deprecated(reason: "${ deprecationReason } ")` ] ,
34
+ } ) ) ) . toEqual ( generateEnumValueConfigMap ( { deprecationReason } ) ) ;
34
35
} ) ;
35
36
36
- it ( 'should work with `deprecationReason ` in config map' , ( ) => {
37
- const deprecationReason = 'A reason. ' ;
38
- expect ( buildEnumValueConfigMap ( generateEnumAST ( ) , { VALUE : { deprecationReason } } ) )
39
- . toEqual ( generateEnumValueConfigMap ( { deprecationReason } ) ) ;
37
+ it ( 'builds with `value ` in config map' , ( ) => {
38
+ const value = 'value ' ;
39
+ expect ( buildEnumValueConfigMap ( generateEnumNode ( ) , { VALUE : { value } } ) )
40
+ . toEqual ( generateEnumValueConfigMap ( { value } ) ) ;
40
41
} ) ;
41
42
} ) ;
42
43
@@ -47,17 +48,17 @@ describe('buildEnum()', () => {
47
48
description,
48
49
} = { } ) => new GraphQLEnumType ( { name, values, description } ) ;
49
50
50
- it ( 'should work with minimal AST' , ( ) => {
51
- expect ( buildEnum ( generateEnumAST ( ) ) ) . toEqual ( generateEnumType ( ) ) ;
51
+ it ( 'builds with minimal AST' , ( ) => {
52
+ expect ( buildEnum ( generateEnumNode ( ) ) ) . toEqual ( generateEnumType ( ) ) ;
52
53
} ) ;
53
54
54
- it ( 'should work with description in AST' , ( ) => {
55
+ it ( 'builds with description in AST' , ( ) => {
55
56
const config = { description : 'A description.' } ;
56
- expect ( buildEnum ( generateEnumAST ( config ) ) ) . toEqual ( generateEnumType ( config ) ) ;
57
+ expect ( buildEnum ( generateEnumNode ( config ) ) ) . toEqual ( generateEnumType ( config ) ) ;
57
58
} ) ;
58
59
59
- it ( 'should work with `values` in config' , ( ) => {
60
+ it ( 'builds with `values` in config' , ( ) => {
60
61
const config = { values : { VALUE : { value : 'value' } } } ;
61
- expect ( buildEnum ( generateEnumAST ( ) , config ) ) . toEqual ( generateEnumType ( config ) ) ;
62
+ expect ( buildEnum ( generateEnumNode ( ) , config ) ) . toEqual ( generateEnumType ( config ) ) ;
62
63
} ) ;
63
64
} ) ;
0 commit comments