@@ -50,8 +50,16 @@ function fieldNodeWithArgs(name, type, args, loc) {
50
50
return {
51
51
kind : 'FieldDefinition' ,
52
52
name : name ,
53
- type : type ,
54
53
arguments : args ,
54
+ type : type ,
55
+ loc : loc ,
56
+ } ;
57
+ }
58
+
59
+ function enumValueNode ( name , loc ) {
60
+ return {
61
+ kind : 'EnumValueDefinition' ,
62
+ name : nameNode ( name , loc ) ,
55
63
loc : loc ,
56
64
} ;
57
65
}
@@ -92,7 +100,7 @@ type Hello {
92
100
] ,
93
101
loc : loc ( 1 , 31 ) ,
94
102
} ;
95
- expect ( printJson ( expected ) ) . to . equal ( printJson ( doc ) ) ;
103
+ expect ( printJson ( doc ) ) . to . equal ( printJson ( expected ) ) ;
96
104
} ) ;
97
105
98
106
it ( 'Simple non-null type' , ( ) => {
@@ -125,7 +133,7 @@ type Hello {
125
133
] ,
126
134
loc : loc ( 1 , 32 ) ,
127
135
} ;
128
- expect ( printJson ( expected ) ) . to . equal ( printJson ( doc ) ) ;
136
+ expect ( printJson ( doc ) ) . to . equal ( printJson ( expected ) ) ;
129
137
} ) ;
130
138
131
139
@@ -172,14 +180,6 @@ type Hello {
172
180
expect ( printJson ( doc ) ) . to . equal ( printJson ( expected ) ) ;
173
181
} ) ;
174
182
175
- function enumValueNode ( name , loc ) {
176
- return {
177
- kind : 'EnumValueDefinition' ,
178
- name : nameNode ( name , loc ) ,
179
- loc : loc ,
180
- } ;
181
- }
182
-
183
183
it ( 'Single value enum' , ( ) => {
184
184
var body = `enum Hello { WORLD }` ;
185
185
var loc = createLocFn ( body ) ;
@@ -246,7 +246,7 @@ interface Hello {
246
246
] ,
247
247
loc : loc ( 1 , 36 ) ,
248
248
} ;
249
- expect ( printJson ( expected ) ) . to . equal ( printJson ( doc ) ) ;
249
+ expect ( printJson ( doc ) ) . to . equal ( printJson ( expected ) ) ;
250
250
} ) ;
251
251
252
252
it ( 'Simple field with arg' , ( ) => {
@@ -272,6 +272,7 @@ type Hello {
272
272
kind : 'ArgumentDefinition' ,
273
273
name : nameNode ( 'flag' , loc ( 22 , 26 ) ) ,
274
274
type : typeNode ( 'Boolean' , loc ( 28 , 35 ) ) ,
275
+ defaultValue : null ,
275
276
loc : loc ( 22 , 35 ) ,
276
277
}
277
278
] ,
@@ -283,7 +284,49 @@ type Hello {
283
284
] ,
284
285
loc : loc ( 1 , 46 ) ,
285
286
} ;
286
- expect ( printJson ( expected ) ) . to . equal ( printJson ( doc ) ) ;
287
+ expect ( printJson ( doc ) ) . to . equal ( printJson ( expected ) ) ;
288
+ } ) ;
289
+
290
+ it ( 'Simple field with arg with default value' , ( ) => {
291
+ var body = `
292
+ type Hello {
293
+ world(flag: Boolean = true): String
294
+ }` ;
295
+ var doc = parseSchema ( body ) ;
296
+ var loc = createLocFn ( body ) ;
297
+ var expected = {
298
+ kind : 'SchemaDocument' ,
299
+ definitions : [
300
+ {
301
+ kind : 'TypeDefinition' ,
302
+ name : nameNode ( 'Hello' , loc ( 6 , 11 ) ) ,
303
+ interfaces : [ ] ,
304
+ fields : [
305
+ fieldNodeWithArgs (
306
+ nameNode ( 'world' , loc ( 16 , 21 ) ) ,
307
+ typeNode ( 'String' , loc ( 45 , 51 ) ) ,
308
+ [
309
+ {
310
+ kind : 'ArgumentDefinition' ,
311
+ name : nameNode ( 'flag' , loc ( 22 , 26 ) ) ,
312
+ type : typeNode ( 'Boolean' , loc ( 28 , 35 ) ) ,
313
+ defaultValue : {
314
+ kind : 'BooleanValue' ,
315
+ value : true ,
316
+ loc : loc ( 38 , 42 ) ,
317
+ } ,
318
+ loc : loc ( 22 , 42 ) ,
319
+ }
320
+ ] ,
321
+ loc ( 16 , 51 )
322
+ )
323
+ ] ,
324
+ loc : loc ( 1 , 53 ) ,
325
+ }
326
+ ] ,
327
+ loc : loc ( 1 , 53 ) ,
328
+ } ;
329
+ expect ( printJson ( doc ) ) . to . equal ( printJson ( expected ) ) ;
287
330
} ) ;
288
331
289
332
it ( 'Simple field with list arg' , ( ) => {
@@ -313,6 +356,7 @@ type Hello {
313
356
type : typeNode ( 'String' , loc ( 31 , 37 ) ) ,
314
357
loc : loc ( 30 , 38 )
315
358
} ,
359
+ defaultValue : null ,
316
360
loc : loc ( 22 , 38 ) ,
317
361
}
318
362
] ,
@@ -324,7 +368,7 @@ type Hello {
324
368
] ,
325
369
loc : loc ( 1 , 49 ) ,
326
370
} ;
327
- expect ( printJson ( expected ) ) . to . equal ( printJson ( doc ) ) ;
371
+ expect ( printJson ( doc ) ) . to . equal ( printJson ( expected ) ) ;
328
372
} ) ;
329
373
330
374
it ( 'Simple field with two args' , ( ) => {
@@ -350,12 +394,14 @@ type Hello {
350
394
kind : 'ArgumentDefinition' ,
351
395
name : nameNode ( 'argOne' , loc ( 22 , 28 ) ) ,
352
396
type : typeNode ( 'Boolean' , loc ( 30 , 37 ) ) ,
397
+ defaultValue : null ,
353
398
loc : loc ( 22 , 37 ) ,
354
399
} ,
355
400
{
356
401
kind : 'ArgumentDefinition' ,
357
402
name : nameNode ( 'argTwo' , loc ( 39 , 45 ) ) ,
358
403
type : typeNode ( 'Int' , loc ( 47 , 50 ) ) ,
404
+ defaultValue : null ,
359
405
loc : loc ( 39 , 50 ) ,
360
406
} ,
361
407
] ,
@@ -367,11 +413,11 @@ type Hello {
367
413
] ,
368
414
loc : loc ( 1 , 61 ) ,
369
415
} ;
370
- expect ( printJson ( expected ) ) . to . equal ( printJson ( doc ) ) ;
416
+ expect ( printJson ( doc ) ) . to . equal ( printJson ( expected ) ) ;
371
417
} ) ;
372
418
373
419
it ( 'Simple union' , ( ) => {
374
- var body = `union Hello { World } ` ;
420
+ var body = `union Hello = World` ;
375
421
var doc = parseSchema ( body ) ;
376
422
var loc = createLocFn ( body ) ;
377
423
var expected = {
@@ -381,16 +427,16 @@ type Hello {
381
427
kind : 'UnionDefinition' ,
382
428
name : nameNode ( 'Hello' , loc ( 6 , 11 ) ) ,
383
429
types : [ typeNode ( 'World' , loc ( 14 , 19 ) ) ] ,
384
- loc : loc ( 0 , 21 ) ,
430
+ loc : loc ( 0 , 19 ) ,
385
431
}
386
432
] ,
387
- loc : loc ( 0 , 21 ) ,
433
+ loc : loc ( 0 , 19 ) ,
388
434
} ;
389
- expect ( printJson ( expected ) ) . to . equal ( printJson ( doc ) ) ;
435
+ expect ( printJson ( doc ) ) . to . equal ( printJson ( expected ) ) ;
390
436
} ) ;
391
437
392
438
it ( 'Union with two types' , ( ) => {
393
- var body = `union Hello { Wo | Rld } ` ;
439
+ var body = `union Hello = Wo | Rld` ;
394
440
var doc = parseSchema ( body ) ;
395
441
var loc = createLocFn ( body ) ;
396
442
var expected = {
@@ -403,12 +449,12 @@ type Hello {
403
449
typeNode ( 'Wo' , loc ( 14 , 16 ) ) ,
404
450
typeNode ( 'Rld' , loc ( 19 , 22 ) ) ,
405
451
] ,
406
- loc : loc ( 0 , 24 ) ,
452
+ loc : loc ( 0 , 22 ) ,
407
453
}
408
454
] ,
409
- loc : loc ( 0 , 24 ) ,
455
+ loc : loc ( 0 , 22 ) ,
410
456
} ;
411
- expect ( printJson ( expected ) ) . to . equal ( printJson ( doc ) ) ;
457
+ expect ( printJson ( doc ) ) . to . equal ( printJson ( expected ) ) ;
412
458
} ) ;
413
459
414
460
it ( 'Scalar' , ( ) => {
@@ -426,7 +472,7 @@ type Hello {
426
472
] ,
427
473
loc : loc ( 0 , 12 ) ,
428
474
} ;
429
- expect ( printJson ( expected ) ) . to . equal ( printJson ( doc ) ) ;
475
+ expect ( printJson ( doc ) ) . to . equal ( printJson ( expected ) ) ;
430
476
} ) ;
431
477
432
478
it ( 'Simple input object' , ( ) => {
@@ -454,7 +500,7 @@ input Hello {
454
500
] ,
455
501
loc : loc ( 1 , 32 ) ,
456
502
} ;
457
- expect ( printJson ( expected ) ) . to . equal ( printJson ( doc ) ) ;
503
+ expect ( printJson ( doc ) ) . to . equal ( printJson ( expected ) ) ;
458
504
} ) ;
459
505
460
506
it ( 'Simple input object with args should fail' , ( ) => {
0 commit comments