Skip to content

Commit

Permalink
Merge branch 'main' into add-test-for-dependency-collection
Browse files Browse the repository at this point in the history
  • Loading branch information
huozhi committed Aug 31, 2022
2 parents c8cc51a + 06923e8 commit 2ad0315
Show file tree
Hide file tree
Showing 2 changed files with 46 additions and 25 deletions.
26 changes: 6 additions & 20 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,30 +12,16 @@ jobs:
steps:
- uses: actions/checkout@v3

- name: Use Node.js
uses: actions/setup-node@v3
with:
node-version: 14

- uses: pnpm/action-setup@v2.0.1
name: Install pnpm
id: pnpm-install
- name: Setup pnpm
uses: pnpm/action-setup@v2.2.2
with:
version: 7
run_install: false

- name: Get pnpm store directory
id: pnpm-cache
run: |
echo "::set-output name=pnpm_cache_dir::$(pnpm store path)"
- uses: actions/cache@v3
name: Setup pnpm cache
- name: Use Node.js 16
uses: actions/setup-node@v3
with:
path: ${{ steps.pnpm-cache.outputs.pnpm_cache_dir }}
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: |
${{ runner.os }}-pnpm-store-
node-version: 16
cache: pnpm

- run: pnpm install
- run: pnpm build
Expand Down
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 2ad0315

Please sign in to comment.