@@ -2026,6 +2026,81 @@ describe('Execute: legacy stream directive', () => {
20262026      } , 
20272027    ] ) ; 
20282028  } ) ; 
2029+   it ( 'Handles overlapping deferred and non-deferred streams with a non-zero initial count with a slow defer' ,  async  ( )  =>  { 
2030+     const  document  =  parse ( ` 
2031+       query { 
2032+         nestedObject { 
2033+           nestedFriendList @stream(initialCount: 1) { 
2034+             id 
2035+           } 
2036+         } 
2037+         nestedObject { 
2038+           ... @defer { 
2039+             nestedFriendList @stream(initialCount: 1) { 
2040+               id 
2041+               name 
2042+             } 
2043+           } 
2044+         } 
2045+       } 
2046+     ` ) ; 
2047+     const  result  =  await  complete ( document ,  { 
2048+       nestedObject : { 
2049+         async  * nestedFriendList ( )  { 
2050+           yield  await  Promise . resolve ( { 
2051+             ...friends [ 0 ] , 
2052+             name : Promise . resolve ( friends [ 0 ] . name ) , 
2053+           } ) ; 
2054+           yield  await  Promise . resolve ( friends [ 1 ] ) ; 
2055+           yield  await  Promise . resolve ( friends [ 2 ] ) ; 
2056+         } , 
2057+       } , 
2058+     } ) ; 
2059+     expectJSON ( result ) . toDeepEqual ( [ 
2060+       { 
2061+         data : { 
2062+           nestedObject : { 
2063+             nestedFriendList : [ {  id : '1'  } ] , 
2064+           } , 
2065+         } , 
2066+         hasNext : true , 
2067+       } , 
2068+       { 
2069+         incremental : [ 
2070+           { 
2071+             items : [ {  id : '2'  } ] , 
2072+             path : [ 'nestedObject' ,  'nestedFriendList' ,  1 ] , 
2073+           } , 
2074+           { 
2075+             data : { 
2076+               nestedFriendList : [ 
2077+                 {  id : '1' ,  name : 'Luke'  } , 
2078+                 {  id : '2' ,  name : 'Han'  } , 
2079+               ] , 
2080+             } , 
2081+             path : [ 'nestedObject' ] , 
2082+           } , 
2083+         ] , 
2084+         hasNext : true , 
2085+       } , 
2086+       { 
2087+         incremental : [ 
2088+           { 
2089+             items : [ {  id : '3'  } ] , 
2090+             path : [ 'nestedObject' ,  'nestedFriendList' ,  2 ] , 
2091+           } , 
2092+           { 
2093+             items : [ {  id : '3' ,  name : 'Leia'  } ] , 
2094+             path : [ 'nestedObject' ,  'nestedFriendList' ,  2 ] , 
2095+           } , 
2096+         ] , 
2097+         hasNext : true , 
2098+       } , 
2099+       { 
2100+         hasNext : false , 
2101+       } , 
2102+     ] ) ; 
2103+   } ) ; 
20292104  it ( 'Returns payloads in correct order when parent deferred fragment resolves slower than stream' ,  async  ( )  =>  { 
20302105    const  {  promise : slowFieldPromise ,  resolve : resolveSlowField  }  = 
20312106      promiseWithResolvers ( ) ; 
0 commit comments