@@ -12,8 +12,16 @@ const createClient = (link: ApolloLink) =>
1212 cache : new InMemoryCache ( ) ,
1313 } ) ;
1414
15+ type Result = {
16+ heroes : { name : string } [ ] ;
17+ } ;
18+
19+ type Variables = {
20+ foo ?: number ;
21+ } ;
22+
1523const heroesOperation = {
16- query : gql `
24+ query : gql < Result , Variables > `
1725 query allHeroes {
1826 heroes {
1927 name
@@ -40,8 +48,7 @@ const Batman = {
4048describe ( 'QueryRef' , ( ) => {
4149 let ngZone : NgZone ;
4250 let client : ApolloClient < any > ;
43- let obsQuery : ObservableQuery < any > ;
44- let queryRef : QueryRef < any > ;
51+ let obsQuery : ObservableQuery < Result , Variables > ;
4552
4653 beforeEach ( ( ) => {
4754 ngZone = { run : jest . fn ( cb => cb ( ) ) } as any ;
@@ -58,10 +65,14 @@ describe('QueryRef', () => {
5865
5966 client = createClient ( mockedLink ) ;
6067 obsQuery = client . watchQuery ( heroesOperation ) ;
61- queryRef = new QueryRef < any > ( obsQuery , ngZone , { } as any ) ;
6268 } ) ;
6369
70+ function createQueryRef ( obsQuery : ObservableQuery < Result > ) : QueryRef < Result , Variables > {
71+ return new QueryRef ( obsQuery , ngZone , { query : heroesOperation . query } ) ;
72+ }
73+
6474 test ( 'should listen to changes' , done => {
75+ const queryRef = createQueryRef ( obsQuery ) ;
6576 queryRef . valueChanges . subscribe ( {
6677 next : result => {
6778 expect ( result . data ) . toBeDefined ( ) ;
@@ -77,6 +88,7 @@ describe('QueryRef', () => {
7788 const mockCallback = jest . fn ( ) ;
7889 obsQuery . refetch = mockCallback ;
7990
91+ const queryRef = createQueryRef ( obsQuery ) ;
8092 queryRef . refetch ( ) ;
8193
8294 expect ( mockCallback . mock . calls . length ) . toBe ( 1 ) ;
@@ -85,6 +97,7 @@ describe('QueryRef', () => {
8597 test ( 'should be able refetch and receive new results' , done => {
8698 let calls = 0 ;
8799
100+ const queryRef = createQueryRef ( obsQuery ) ;
88101 queryRef . valueChanges . subscribe ( {
89102 next : result => {
90103 calls ++ ;
@@ -110,6 +123,7 @@ describe('QueryRef', () => {
110123
111124 test ( 'should be able refetch and receive new results after using rxjs operator' , done => {
112125 let calls = 0 ;
126+ const queryRef = createQueryRef ( obsQuery ) ;
113127 const obs = queryRef . valueChanges ;
114128
115129 obs . pipe ( map ( result => result . data ) ) . subscribe ( {
@@ -139,9 +153,10 @@ describe('QueryRef', () => {
139153
140154 test ( 'should be able to call updateQuery()' , ( ) => {
141155 const mockCallback = jest . fn ( ) ;
142- const mapFn = ( ) => ( { } ) ;
156+ const mapFn = ( ) => undefined ;
143157 obsQuery . updateQuery = mockCallback ;
144158
159+ const queryRef = createQueryRef ( obsQuery ) ;
145160 queryRef . updateQuery ( mapFn ) ;
146161
147162 expect ( mockCallback . mock . calls . length ) . toBe ( 1 ) ;
@@ -152,6 +167,7 @@ describe('QueryRef', () => {
152167 const mockCallback = jest . fn ( ) ;
153168 obsQuery . result = mockCallback . mockReturnValue ( 'expected' ) ;
154169
170+ const queryRef = createQueryRef ( obsQuery ) ;
155171 const result = queryRef . result ( ) ;
156172
157173 expect ( result ) . toBe ( 'expected' ) ;
@@ -160,6 +176,7 @@ describe('QueryRef', () => {
160176
161177 test ( 'should be able to call getCurrentResult() and get updated results' , done => {
162178 let calls = 0 ;
179+ const queryRef = createQueryRef ( obsQuery ) ;
163180 const obs = queryRef . valueChanges ;
164181
165182 obs . pipe ( map ( result => result . data ) ) . subscribe ( {
@@ -189,6 +206,7 @@ describe('QueryRef', () => {
189206 const mockCallback = jest . fn ( ) ;
190207 obsQuery . getLastResult = mockCallback . mockReturnValue ( 'expected' ) ;
191208
209+ const queryRef = createQueryRef ( obsQuery ) ;
192210 const result = queryRef . getLastResult ( ) ;
193211
194212 expect ( result ) . toBe ( 'expected' ) ;
@@ -199,6 +217,7 @@ describe('QueryRef', () => {
199217 const mockCallback = jest . fn ( ) ;
200218 obsQuery . getLastError = mockCallback . mockReturnValue ( 'expected' ) ;
201219
220+ const queryRef = createQueryRef ( obsQuery ) ;
202221 const result = queryRef . getLastError ( ) ;
203222
204223 expect ( result ) . toBe ( 'expected' ) ;
@@ -209,6 +228,7 @@ describe('QueryRef', () => {
209228 const mockCallback = jest . fn ( ) ;
210229 obsQuery . resetLastResults = mockCallback . mockReturnValue ( 'expected' ) ;
211230
231+ const queryRef = createQueryRef ( obsQuery ) ;
212232 const result = queryRef . resetLastResults ( ) ;
213233
214234 expect ( result ) . toBe ( 'expected' ) ;
@@ -217,10 +237,11 @@ describe('QueryRef', () => {
217237
218238 test ( 'should be able to call fetchMore()' , ( ) => {
219239 const mockCallback = jest . fn ( ) ;
220- const opts = { foo : 1 } ;
240+ const opts = { variables : { foo : 1 } } ;
221241 obsQuery . fetchMore = mockCallback . mockReturnValue ( 'expected' ) ;
222242
223- const result = queryRef . fetchMore ( opts as any ) ;
243+ const queryRef = createQueryRef ( obsQuery ) ;
244+ const result = queryRef . fetchMore ( opts ) ;
224245
225246 expect ( result ) . toBe ( 'expected' ) ;
226247 expect ( mockCallback . mock . calls . length ) . toBe ( 1 ) ;
@@ -229,10 +250,11 @@ describe('QueryRef', () => {
229250
230251 test ( 'should be able to call subscribeToMore()' , ( ) => {
231252 const mockCallback = jest . fn ( ) ;
232- const opts = { foo : 1 } ;
253+ const opts = { document : heroesOperation . query } ;
233254 obsQuery . subscribeToMore = mockCallback ;
234255
235- queryRef . subscribeToMore ( opts as any ) ;
256+ const queryRef = createQueryRef ( obsQuery ) ;
257+ queryRef . subscribeToMore ( opts ) ;
236258
237259 expect ( mockCallback . mock . calls . length ) . toBe ( 1 ) ;
238260 expect ( mockCallback . mock . calls [ 0 ] [ 0 ] ) . toBe ( opts ) ;
@@ -242,6 +264,7 @@ describe('QueryRef', () => {
242264 const mockCallback = jest . fn ( ) ;
243265 obsQuery . stopPolling = mockCallback ;
244266
267+ const queryRef = createQueryRef ( obsQuery ) ;
245268 queryRef . stopPolling ( ) ;
246269
247270 expect ( mockCallback . mock . calls . length ) . toBe ( 1 ) ;
@@ -251,6 +274,7 @@ describe('QueryRef', () => {
251274 const mockCallback = jest . fn ( ) ;
252275 obsQuery . startPolling = mockCallback ;
253276
277+ const queryRef = createQueryRef ( obsQuery ) ;
254278 queryRef . startPolling ( 3000 ) ;
255279
256280 expect ( mockCallback . mock . calls . length ) . toBe ( 1 ) ;
@@ -262,6 +286,7 @@ describe('QueryRef', () => {
262286 const opts = { } ;
263287 obsQuery . setOptions = mockCallback . mockReturnValue ( 'expected' ) ;
264288
289+ const queryRef = createQueryRef ( obsQuery ) ;
265290 const result = queryRef . setOptions ( opts ) ;
266291
267292 expect ( result ) . toBe ( 'expected' ) ;
@@ -274,6 +299,7 @@ describe('QueryRef', () => {
274299 const variables = { } ;
275300 obsQuery . setVariables = mockCallback . mockReturnValue ( 'expected' ) ;
276301
302+ const queryRef = createQueryRef ( obsQuery ) ;
277303 const result = queryRef . setVariables ( variables ) ;
278304
279305 expect ( result ) . toBe ( 'expected' ) ;
@@ -282,6 +308,7 @@ describe('QueryRef', () => {
282308 } ) ;
283309
284310 test ( 'should handle multiple subscribers' , done => {
311+ const queryRef = createQueryRef ( obsQuery ) ;
285312 const obsFirst = queryRef . valueChanges ;
286313 const obsSecond = queryRef . valueChanges ;
287314
@@ -338,6 +365,7 @@ describe('QueryRef', () => {
338365 } ) ;
339366
340367 test ( 'should unsubscribe' , done => {
368+ const queryRef = createQueryRef ( obsQuery ) ;
341369 const obs = queryRef . valueChanges ;
342370 const id = queryRef . queryId ;
343371
@@ -356,6 +384,7 @@ describe('QueryRef', () => {
356384
357385 test ( 'should unsubscribe based on rxjs operators' , done => {
358386 const gate = new Subject < void > ( ) ;
387+ const queryRef = createQueryRef ( obsQuery ) ;
359388 const obs = queryRef . valueChanges . pipe ( takeUntil ( gate ) ) ;
360389 const id = queryRef . queryId ;
361390
0 commit comments