File tree 1 file changed +34
-0
lines changed 1 file changed +34
-0
lines changed Original file line number Diff line number Diff line change @@ -160,4 +160,38 @@ describe('useSWR - keep previous data', () => {
160
160
[ key2 , [ key2 ] ]
161
161
] )
162
162
} )
163
+
164
+ it ( 'should support changing the `keepPreviousData` option' , async ( ) => {
165
+ const loggedData = [ ]
166
+ const fetcher = k => createResponse ( k , { delay : 50 } )
167
+ let keepPreviousData = false
168
+ function App ( ) {
169
+ const [ key , setKey ] = useState ( createKey ( ) )
170
+ const { data : laggedData } = useSWR ( key , fetcher , {
171
+ keepPreviousData
172
+ } )
173
+ loggedData . push ( [ key , laggedData ] )
174
+ return < button onClick = { ( ) => setKey ( createKey ( ) ) } > change key</ button >
175
+ }
176
+
177
+ renderWithConfig ( < App /> )
178
+ await act ( ( ) => sleep ( 100 ) )
179
+ fireEvent . click ( screen . getByText ( 'change key' ) )
180
+ await act ( ( ) => sleep ( 100 ) )
181
+ keepPreviousData = true
182
+ fireEvent . click ( screen . getByText ( 'change key' ) )
183
+ await act ( ( ) => sleep ( 100 ) )
184
+
185
+ const key1 = loggedData [ 0 ] [ 0 ]
186
+ const key2 = loggedData [ 2 ] [ 0 ]
187
+ const key3 = loggedData [ 4 ] [ 0 ]
188
+ expect ( loggedData ) . toEqual ( [
189
+ [ key1 , undefined ] ,
190
+ [ key1 , key1 ] ,
191
+ [ key2 , undefined ] ,
192
+ [ key2 , key2 ] ,
193
+ [ key3 , key2 ] ,
194
+ [ key3 , key3 ]
195
+ ] )
196
+ } )
163
197
} )
You can’t perform that action at this time.
0 commit comments