@@ -5,6 +5,7 @@ import { expectEqualPromisesOrValues } from '../../__testUtils__/expectEqualProm
55import { expectJSON } from '../../__testUtils__/expectJSON.js' ;
66import { expectPromise } from '../../__testUtils__/expectPromise.js' ;
77import { resolveOnNextTick } from '../../__testUtils__/resolveOnNextTick.js' ;
8+ import { spyOnMethod } from '../../__testUtils__/spyOn.js' ;
89
910import { isAsyncIterable } from '../../jsutils/isAsyncIterable.js' ;
1011import { isPromise } from '../../jsutils/isPromise.js' ;
@@ -747,7 +748,6 @@ describe('Execute: Cancellation', () => {
747748 promiseWithResolvers < {
748749 value : ( ) => string ;
749750 } > ( ) ;
750- let lateValueCalls = 0 ;
751751 const sideType = new GraphQLObjectType ( {
752752 name : 'LateSide' ,
753753 fields : {
@@ -794,15 +794,14 @@ describe('Execute: Cancellation', () => {
794794 await resolveOnNextTick ( ) ;
795795 await resolveOnNextTick ( ) ;
796796 const result = await resultPromise ;
797- resolveSide ( {
798- value ( ) {
799- lateValueCalls += 1 ;
800- return 'late value' ;
801- } ,
802- } ) ;
797+ const lateSide = {
798+ value : ( ) => 'late value' ,
799+ } ;
800+ const lateValueSpy = spyOnMethod ( lateSide , 'value' ) ;
801+ resolveSide ( lateSide ) ;
803802 await resolveOnNextTick ( ) ;
804803 await resolveOnNextTick ( ) ;
805- expect ( lateValueCalls ) . to . equal ( 0 ) ;
804+ expect ( lateValueSpy . callCount ) . to . equal ( 0 ) ;
806805
807806 expectJSON ( result ) . toDeepEqual ( {
808807 data : {
@@ -1067,7 +1066,6 @@ describe('Execute: Cancellation', () => {
10671066 const { promise : nextStarted , resolve : resolveNextStarted } =
10681067 // eslint-disable-next-line @typescript-eslint/no-invalid-void-type
10691068 promiseWithResolvers < void > ( ) ;
1070- let returnCalled = false ;
10711069 const asyncIterator = {
10721070 [ Symbol . asyncIterator ] ( ) {
10731071 return this ;
@@ -1077,10 +1075,10 @@ describe('Execute: Cancellation', () => {
10771075 return nextReturned ;
10781076 } ,
10791077 return ( ) {
1080- returnCalled = true ;
10811078 throw new Error ( 'Return failed' ) ;
10821079 } ,
10831080 } ;
1081+ const returnSpy = spyOnMethod ( asyncIterator , 'return' ) ;
10841082
10851083 const resultPromise = execute ( {
10861084 schema,
@@ -1099,7 +1097,7 @@ describe('Execute: Cancellation', () => {
10991097 await expectPromise ( resultPromise ) . toRejectWith (
11001098 'This operation was aborted' ,
11011099 ) ;
1102- expect ( returnCalled ) . to . equal ( true ) ;
1100+ expect ( returnSpy . callCount ) . to . equal ( 1 ) ;
11031101 } ) ;
11041102
11051103 it ( 'ignores async iterator return promise rejections after aborting list completion' , async ( ) => {
@@ -1116,7 +1114,6 @@ describe('Execute: Cancellation', () => {
11161114 const { promise : nextStarted , resolve : resolveNextStarted } =
11171115 // eslint-disable-next-line @typescript-eslint/no-invalid-void-type
11181116 promiseWithResolvers < void > ( ) ;
1119- let returnCalled = false ;
11201117 const asyncIterator = {
11211118 [ Symbol . asyncIterator ] ( ) {
11221119 return this ;
@@ -1126,10 +1123,10 @@ describe('Execute: Cancellation', () => {
11261123 return nextReturned ;
11271124 } ,
11281125 return ( ) {
1129- returnCalled = true ;
11301126 return Promise . reject ( new Error ( 'Return failed' ) ) ;
11311127 } ,
11321128 } ;
1129+ const returnSpy = spyOnMethod ( asyncIterator , 'return' ) ;
11331130
11341131 const resultPromise = execute ( {
11351132 schema,
@@ -1148,6 +1145,6 @@ describe('Execute: Cancellation', () => {
11481145 await expectPromise ( resultPromise ) . toRejectWith (
11491146 'This operation was aborted' ,
11501147 ) ;
1151- expect ( returnCalled ) . to . equal ( true ) ;
1148+ expect ( returnSpy . callCount ) . to . equal ( 1 ) ;
11521149 } ) ;
11531150} ) ;
0 commit comments