Skip to content

Commit

Permalink
Merge branch 'main' into ci
Browse files Browse the repository at this point in the history
  • Loading branch information
huozhi committed Aug 31, 2022
2 parents 11105e1 + caddb73 commit f5632e5
Showing 1 changed file with 40 additions and 5 deletions.
45 changes: 40 additions & 5 deletions test/use-swr-loading.test.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -321,14 +321,24 @@ describe('useSWR - loading', () => {
it('isLoading and isValidating should always respect cache value', async () => {
const key = createKey()
const Page = () => {
const { data } = useSWR(key, () => createResponse('result', { delay: 10 }))
const { data: response } = useSWR(data, () => createResponse('data', { delay: 10 }))
const { data } = useSWR(key, () =>
createResponse('result', { delay: 10 })
)
const { data: response } = useSWR(data, () =>
createResponse('data', { delay: 10 })
)
// eslint-disable-next-line react/display-name
const Component = ((_: any) => () => {
// eslint-disable-next-line react-hooks/rules-of-hooks
const { data: result, isLoading, isValidating } = useSWR(key, () => createResponse('result', { delay: 10 }))
const {
data: result,
isLoading,
isValidating
// eslint-disable-next-line react-hooks/rules-of-hooks
} = useSWR(key, () => createResponse('result', { delay: 10 }))
return (
<div>{`result is ${result ? result : 'null'},${isLoading},${isValidating}`}</div>
<div>{`result is ${
result ? result : 'null'
},${isLoading},${isValidating}`}</div>
)
})(response)
return <Component></Component>
Expand All @@ -337,4 +347,29 @@ describe('useSWR - loading', () => {
screen.getByText('result is null,true,true')
await screen.findByText('result is result,false,false')
})

it('isLoading should be false when key is null', () => {
function Page() {
const { isLoading } = useSWR(null, () => 'data')
return <div>isLoading:{String(isLoading)}</div>
}

renderWithConfig(<Page />)
screen.getByText('isLoading:false')
})

it('isLoading should be false when the key function throws an error', () => {
function Page() {
const { isLoading } = useSWR(
() => {
throw new Error('error')
},
() => 'data'
)
return <div>isLoading:{String(isLoading)}</div>
}

renderWithConfig(<Page />)
screen.getByText('isLoading:false')
})
})

0 comments on commit f5632e5

Please sign in to comment.