@@ -465,10 +465,12 @@ describe('React Native', () => {
465465 } )
466466
467467 describe ( 'useSelector' , ( ) => {
468- it ( 'should stay in sync with the store' , ( ) => {
468+ it ( 'should stay in sync with the store' , async ( ) => {
469469 // https://github.com/reduxjs/react-redux/issues/1437
470470
471- jest . useFakeTimers ( )
471+ function delay ( ms : number ) {
472+ return new Promise ( ( resolve ) => setTimeout ( resolve , ms ) )
473+ }
472474
473475 // Explicitly silence "not wrapped in act()" messages for this test
474476 const spy = jest . spyOn ( console , 'error' )
@@ -587,21 +589,22 @@ describe('React Native', () => {
587589 rtl . fireEvent . press ( button )
588590 }
589591
590- const clickAndRender = ( rendered : RenderedType , testId : string ) => {
592+ const clickAndRender = async ( rendered : RenderedType , testId : string ) => {
591593 // Note: Normally we'd wrap this all in act(), but that automatically
592594 // wraps your code in batchedUpdates(). The point of this bug is that it
593595 // specifically occurs when you are _not_ batching updates!
594596 clickButton ( rendered , testId )
595- jest . advanceTimersByTime ( 100 )
597+ // jest.advanceTimersByTime(100)
598+ await delay ( 100 )
596599 assertValuesMatch ( rendered )
597600 }
598601
599602 assertValuesMatch ( rendered )
600603
601- clickAndRender ( rendered , 'setTimeout' )
602- clickAndRender ( rendered , 'standardBatching' )
603- clickAndRender ( rendered , 'unstableBatched' )
604- clickAndRender ( rendered , 'reactReduxBatch' )
604+ await clickAndRender ( rendered , 'setTimeout' )
605+ await clickAndRender ( rendered , 'standardBatching' )
606+ await clickAndRender ( rendered , 'unstableBatched' )
607+ await clickAndRender ( rendered , 'reactReduxBatch' )
605608
606609 spy . mockRestore ( )
607610 } )
0 commit comments