@@ -455,10 +455,10 @@ describe('Visitor', () => {
455
455
] ) ;
456
456
} ) ;
457
457
458
- it ( 'Legacy: visits variables defined in fragments' , ( ) => {
458
+ it ( 'visits arguments defined on fragments' , ( ) => {
459
459
const ast = parse ( 'fragment a($v: Boolean = false) on t { f }' , {
460
460
noLocation : true ,
461
- allowLegacyFragmentVariables : true ,
461
+ experimentalFragmentArguments : true ,
462
462
} ) ;
463
463
const visited : Array < any > = [ ] ;
464
464
@@ -505,6 +505,50 @@ describe('Visitor', () => {
505
505
] ) ;
506
506
} ) ;
507
507
508
+ it ( 'visits arguments on fragment spreads' , ( ) => {
509
+ const ast = parse ( 'fragment a on t { ...s(v: false) }' , {
510
+ noLocation : true ,
511
+ experimentalFragmentArguments : true ,
512
+ } ) ;
513
+ const visited : Array < any > = [ ] ;
514
+
515
+ visit ( ast , {
516
+ enter ( node ) {
517
+ checkVisitorFnArgs ( ast , arguments ) ;
518
+ visited . push ( [ 'enter' , node . kind , getValue ( node ) ] ) ;
519
+ } ,
520
+ leave ( node ) {
521
+ checkVisitorFnArgs ( ast , arguments ) ;
522
+ visited . push ( [ 'leave' , node . kind , getValue ( node ) ] ) ;
523
+ } ,
524
+ } ) ;
525
+
526
+ expect ( visited ) . to . deep . equal ( [
527
+ [ 'enter' , 'Document' , undefined ] ,
528
+ [ 'enter' , 'FragmentDefinition' , undefined ] ,
529
+ [ 'enter' , 'Name' , 'a' ] ,
530
+ [ 'leave' , 'Name' , 'a' ] ,
531
+ [ 'enter' , 'NamedType' , undefined ] ,
532
+ [ 'enter' , 'Name' , 't' ] ,
533
+ [ 'leave' , 'Name' , 't' ] ,
534
+ [ 'leave' , 'NamedType' , undefined ] ,
535
+ [ 'enter' , 'SelectionSet' , undefined ] ,
536
+ [ 'enter' , 'FragmentSpread' , undefined ] ,
537
+ [ 'enter' , 'Name' , 's' ] ,
538
+ [ 'leave' , 'Name' , 's' ] ,
539
+ [ 'enter' , 'Argument' , { kind : 'BooleanValue' , value : false } ] ,
540
+ [ 'enter' , 'Name' , 'v' ] ,
541
+ [ 'leave' , 'Name' , 'v' ] ,
542
+ [ 'enter' , 'BooleanValue' , false ] ,
543
+ [ 'leave' , 'BooleanValue' , false ] ,
544
+ [ 'leave' , 'Argument' , { kind : 'BooleanValue' , value : false } ] ,
545
+ [ 'leave' , 'FragmentSpread' , undefined ] ,
546
+ [ 'leave' , 'SelectionSet' , undefined ] ,
547
+ [ 'leave' , 'FragmentDefinition' , undefined ] ,
548
+ [ 'leave' , 'Document' , undefined ] ,
549
+ ] ) ;
550
+ } ) ;
551
+
508
552
it ( 'n' , ( ) => {
509
553
const ast = parse ( kitchenSinkQuery , {
510
554
experimentalClientControlledNullability : true ,
0 commit comments