@@ -791,6 +791,39 @@ describe('useSWR - local mutation', () => {
791791 screen . getByText ( 'false' )
792792 } )
793793
794+ it ( 'isLoading and isValidating should be false when revalidate is set to false' , async ( ) => {
795+ const key = createKey ( )
796+ function Page ( ) {
797+ const { data, isLoading, isValidating, mutate } = useSWR (
798+ key ,
799+ ( ) => 'data' ,
800+ {
801+ fallbackData : 'fallback' ,
802+ revalidateOnMount : false ,
803+ revalidateOnFocus : false
804+ }
805+ )
806+ return (
807+ < div >
808+ < p > data: { data } </ p >
809+ < p > isLoading: { isLoading . toString ( ) } </ p >
810+ < p > isValidating: { isValidating . toString ( ) } </ p >
811+ < button onClick = { ( ) => mutate ( 'fallback1' , { revalidate : false } ) } >
812+ mutate
813+ </ button >
814+ </ div >
815+ )
816+ }
817+ renderWithConfig ( < Page /> )
818+ screen . getByText ( 'data: fallback' )
819+ screen . getByText ( 'isLoading: false' )
820+ screen . getByText ( 'isValidating: false' )
821+ fireEvent . click ( screen . getByText ( 'mutate' ) )
822+ await screen . findByText ( 'data: fallback1' )
823+ screen . getByText ( 'isLoading: false' )
824+ screen . getByText ( 'isValidating: false' )
825+ } )
826+
794827 it ( 'bound mutate should always use the latest key' , async ( ) => {
795828 const key = createKey ( )
796829 const fetcher = jest . fn ( ( ) => 'data' )
0 commit comments