@@ -8,12 +8,20 @@ describe('useOnResolve', () => {
88 type Query {
99 value1: String!
1010 value2: String!
11+ obj: Obj!
12+ }
13+
14+ type Obj {
15+ field1: String!
1116 }
1217 ` ,
1318 resolvers : {
1419 Query : {
1520 value1 : ( ) => 'value1' ,
1621 value2 : ( ) => 'value2' ,
22+ obj : ( ) => ( {
23+ field1 : 'field1' ,
24+ } ) ,
1725 } ,
1826 } ,
1927 } ) ;
@@ -85,6 +93,47 @@ describe('useOnResolve', () => {
8593 expect ( onResolveDoneFn ) . toHaveBeenCalledTimes ( 0 ) ;
8694 } ) ;
8795
96+ it ( 'should invoke the callback for default resolvers when not skipping' , async ( ) => {
97+ const onResolveDoneFn = jest . fn ( ) ;
98+ const onResolveFn = jest . fn ( ( _opts : OnResolveOptions ) => onResolveDoneFn ) ;
99+ const testkit = createTestkit (
100+ [ useOnResolve ( onResolveFn , { skipDefaultResolvers : false } ) ] ,
101+ schema ,
102+ ) ;
103+
104+ await testkit . execute ( '{ obj { field1 } }' ) ;
105+
106+ expect ( onResolveFn ) . toHaveBeenCalledTimes ( 2 ) ;
107+ expect ( onResolveDoneFn ) . toHaveBeenCalledTimes ( 2 ) ;
108+
109+ let i = 0 ;
110+ for ( const field of [ 'obj' , 'field1' ] ) {
111+ expect ( onResolveFn . mock . calls [ i ] [ 0 ] . context ) . toBeDefined ( ) ;
112+ expect ( onResolveFn . mock . calls [ i ] [ 0 ] . root ) . toBeDefined ( ) ;
113+ expect ( onResolveFn . mock . calls [ i ] [ 0 ] . args ) . toBeDefined ( ) ;
114+ expect ( onResolveFn . mock . calls [ i ] [ 0 ] . info ) . toBeDefined ( ) ;
115+ expect ( onResolveFn . mock . calls [ i ] [ 0 ] . info . fieldName ) . toBe ( field ) ;
116+ expect ( onResolveFn . mock . calls [ i ] [ 0 ] . resolver ) . toBeInstanceOf ( Function ) ;
117+ expect ( onResolveFn . mock . calls [ i ] [ 0 ] . replaceResolver ) . toBeInstanceOf ( Function ) ;
118+
119+ i ++ ;
120+ }
121+ } ) ;
122+
123+ it ( 'should not invoke the callback for default resolvers when skipping' , async ( ) => {
124+ const onResolveDoneFn = jest . fn ( ) ;
125+ const onResolveFn = jest . fn ( ( _opts : OnResolveOptions ) => onResolveDoneFn ) ;
126+ const testkit = createTestkit (
127+ [ useOnResolve ( onResolveFn , { skipDefaultResolvers : true } ) ] ,
128+ schema ,
129+ ) ;
130+
131+ await testkit . execute ( '{ obj { field1 } }' ) ;
132+
133+ expect ( onResolveFn ) . toHaveBeenCalledTimes ( 1 ) ;
134+ expect ( onResolveDoneFn ) . toHaveBeenCalledTimes ( 1 ) ;
135+ } ) ;
136+
88137 it ( 'should replace the result using the after hook' , async ( ) => {
89138 const testkit = createTestkit (
90139 [
0 commit comments