@@ -1558,7 +1558,6 @@ describe("useQuery Hook", () => {
1558
1558
1559
1559
await expect ( takeSnapshot ( ) ) . resolves . toStrictEqualTyped ( {
1560
1560
data : undefined ,
1561
- error : undefined ,
1562
1561
loading : false ,
1563
1562
networkStatus : NetworkStatus . ready ,
1564
1563
previousData : undefined ,
@@ -1584,7 +1583,6 @@ describe("useQuery Hook", () => {
1584
1583
1585
1584
await expect ( takeSnapshot ( ) ) . resolves . toStrictEqualTyped ( {
1586
1585
data : undefined ,
1587
- error : undefined ,
1588
1586
loading : false ,
1589
1587
networkStatus : NetworkStatus . ready ,
1590
1588
previousData : { user : { __typename : "User" , id : 1 , name : "User 1" } } ,
@@ -1936,7 +1934,7 @@ describe("useQuery Hook", () => {
1936
1934
1937
1935
const cache = new InMemoryCache ( ) ;
1938
1936
using _disabledAct = disableActEnvironment ( ) ;
1939
- const { takeSnapshot , rerender } = await renderHookToSnapshotStream (
1937
+ const renderStream = await renderHookToSnapshotStream (
1940
1938
( { skip } ) => useQuery ( query , { pollInterval : 80 , skip } ) ,
1941
1939
{
1942
1940
initialProps : { skip : false } ,
@@ -1951,7 +1949,7 @@ describe("useQuery Hook", () => {
1951
1949
) ,
1952
1950
}
1953
1951
) ;
1954
-
1952
+ const { takeSnapshot , rerender } = renderStream ;
1955
1953
{
1956
1954
const result = await takeSnapshot ( ) ;
1957
1955
@@ -1978,20 +1976,9 @@ describe("useQuery Hook", () => {
1978
1976
1979
1977
await rerender ( { skip : true } ) ;
1980
1978
1981
- {
1982
- const result = await takeSnapshot ( ) ;
1983
-
1984
- expect ( result ) . toStrictEqualTyped ( {
1985
- // TODO: wut?
1986
- data : undefined ,
1987
- // TODO: wut?
1988
- error : undefined ,
1989
- loading : false ,
1990
- networkStatus : NetworkStatus . ready ,
1991
- previousData : { hello : "world 1" } ,
1992
- variables : { } ,
1993
- } ) ;
1994
- }
1979
+ await expect ( renderStream ) . toRerenderWithSimilarSnapshot ( {
1980
+ /* equal result */
1981
+ } ) ;
1995
1982
1996
1983
await expect ( takeSnapshot ) . not . toRerender ( { timeout : 100 } ) ;
1997
1984
@@ -2004,7 +1991,7 @@ describe("useQuery Hook", () => {
2004
1991
data : { hello : "world 1" } ,
2005
1992
loading : false ,
2006
1993
networkStatus : NetworkStatus . ready ,
2007
- previousData : { hello : "world 1" } ,
1994
+ previousData : undefined ,
2008
1995
variables : { } ,
2009
1996
} ) ;
2010
1997
}
@@ -7120,7 +7107,6 @@ describe("useQuery Hook", () => {
7120
7107
7121
7108
await expect ( takeSnapshot ( ) ) . resolves . toStrictEqualTyped ( {
7122
7109
data : undefined ,
7123
- error : undefined ,
7124
7110
loading : false ,
7125
7111
networkStatus : NetworkStatus . ready ,
7126
7112
previousData : undefined ,
@@ -7189,7 +7175,6 @@ describe("useQuery Hook", () => {
7189
7175
7190
7176
await expect ( takeSnapshot ( ) ) . resolves . toStrictEqualTyped ( {
7191
7177
data : undefined ,
7192
- error : undefined ,
7193
7178
loading : false ,
7194
7179
networkStatus : NetworkStatus . ready ,
7195
7180
previousData : { hello : "world" } ,
@@ -7245,7 +7230,6 @@ describe("useQuery Hook", () => {
7245
7230
7246
7231
await expect ( takeSnapshot ( ) ) . resolves . toStrictEqualTyped ( {
7247
7232
data : undefined ,
7248
- error : undefined ,
7249
7233
loading : false ,
7250
7234
networkStatus : NetworkStatus . ready ,
7251
7235
previousData : undefined ,
@@ -7273,6 +7257,59 @@ describe("useQuery Hook", () => {
7273
7257
await expect ( takeSnapshot ) . not . toRerender ( ) ;
7274
7258
} ) ;
7275
7259
7260
+ it ( "should not automatically set `data` to `undefined` when `skip` becomes `true`" , async ( ) => {
7261
+ const query = gql `
7262
+ {
7263
+ hello
7264
+ }
7265
+ ` ;
7266
+ const mocks = [
7267
+ {
7268
+ request : { query } ,
7269
+ result : { data : { hello : "world" } } ,
7270
+ } ,
7271
+ ] ;
7272
+
7273
+ using _disabledAct = disableActEnvironment ( ) ;
7274
+ const { takeSnapshot, rerender } = await renderHookToSnapshotStream (
7275
+ ( { skip } ) => useQuery ( query , { skip } ) ,
7276
+ {
7277
+ wrapper : ( { children } ) => (
7278
+ < MockedProvider mocks = { mocks } > { children } </ MockedProvider >
7279
+ ) ,
7280
+ initialProps : { skip : false } ,
7281
+ }
7282
+ ) ;
7283
+
7284
+ await expect ( takeSnapshot ( ) ) . resolves . toStrictEqualTyped ( {
7285
+ data : undefined ,
7286
+ loading : true ,
7287
+ networkStatus : NetworkStatus . loading ,
7288
+ previousData : undefined ,
7289
+ variables : { } ,
7290
+ } ) ;
7291
+
7292
+ await expect ( takeSnapshot ( ) ) . resolves . toStrictEqualTyped ( {
7293
+ data : { hello : "world" } ,
7294
+ loading : false ,
7295
+ networkStatus : NetworkStatus . ready ,
7296
+ previousData : undefined ,
7297
+ variables : { } ,
7298
+ } ) ;
7299
+
7300
+ await rerender ( { skip : true } ) ;
7301
+
7302
+ await expect ( takeSnapshot ( ) ) . resolves . toStrictEqualTyped ( {
7303
+ data : { hello : "world" } ,
7304
+ loading : false ,
7305
+ networkStatus : NetworkStatus . ready ,
7306
+ previousData : undefined ,
7307
+ variables : { } ,
7308
+ } ) ;
7309
+
7310
+ await expect ( takeSnapshot ) . not . toRerender ( ) ;
7311
+ } ) ;
7312
+
7276
7313
// Amusingly, #8270 thinks this is a bug, but #9101 thinks this is not.
7277
7314
it ( "should refetch when skip is true" , async ( ) => {
7278
7315
const query = gql `
@@ -7305,7 +7342,6 @@ describe("useQuery Hook", () => {
7305
7342
7306
7343
await expect ( takeSnapshot ( ) ) . resolves . toStrictEqualTyped ( {
7307
7344
data : undefined ,
7308
- error : undefined ,
7309
7345
loading : false ,
7310
7346
networkStatus : NetworkStatus . ready ,
7311
7347
previousData : undefined ,
@@ -7367,7 +7403,6 @@ describe("useQuery Hook", () => {
7367
7403
7368
7404
await expect ( takeSnapshot ( ) ) . resolves . toStrictEqualTyped ( {
7369
7405
data : undefined ,
7370
- error : undefined ,
7371
7406
loading : false ,
7372
7407
networkStatus : NetworkStatus . ready ,
7373
7408
previousData : undefined ,
0 commit comments