@@ -455,10 +455,10 @@ describe('Visitor', () => {
455455 ] ) ;
456456 } ) ;
457457
458- it ( 'Legacy: visits variables defined in fragments' , ( ) => {
458+ it ( 'visits arguments defined on fragments' , ( ) => {
459459 const ast = parse ( 'fragment a($v: Boolean = false) on t { f }' , {
460460 noLocation : true ,
461- allowLegacyFragmentVariables : true ,
461+ experimentalFragmentArguments : true ,
462462 } ) ;
463463 const visited : Array < any > = [ ] ;
464464
@@ -505,6 +505,50 @@ describe('Visitor', () => {
505505 ] ) ;
506506 } ) ;
507507
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+
508552 it ( 'n' , ( ) => {
509553 const ast = parse ( kitchenSinkQuery , {
510554 experimentalClientControlledNullability : true ,
0 commit comments