Skip to content

Commit 0b3ba2d

Browse files
feature: Spinner test component (#1647)
Co-authored-by: Brandon Scott <[email protected]>
1 parent 6a76ed1 commit 0b3ba2d

File tree

2 files changed

+32
-1
lines changed

2 files changed

+32
-1
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,8 +53,8 @@
5353
"prepublishOnly": "rm -rf esm commonjs umd types && yarn build",
5454
"release": "np",
5555
"size": "size-limit",
56-
"storybook": "start-storybook -p 6006",
5756
"test": "yarn lint && yarn tsd && yarn jest",
57+
"test:coverage": "yarn jest --coverage",
5858
"test:watch": "yarn jest --watch",
5959
"typecheck": "tsc --noEmit",
6060
"update-docs": "cd docs && yarn add evergreen-ui@latest --exact && git add package.json yarn.lock && git show-branch --no-name HEAD | grep -E 'v[0-9]+.[0-9]+.[0-9]+' && git commit --amend --no-edit || git commit -m \"Updated doc site evergreen version\""

src/spinner/__tests__/Spinner.test.js

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
import React from 'react'
2+
import { render, screen, act } from '@testing-library/react'
3+
import Spinner from '../src/Spinner'
4+
5+
describe('Spinner', () => {
6+
jest.useFakeTimers()
7+
jest.spyOn(global, 'setTimeout')
8+
9+
it('should not crash when rendering', () => {
10+
expect(() => {
11+
render(<Spinner />)
12+
}).not.toThrowError()
13+
})
14+
15+
it('should render', () => {
16+
render(<Spinner data-testid="Spinner" />)
17+
expect(screen.getByTestId('Spinner')).not.toBeNull()
18+
})
19+
20+
it('should render after delay time', () => {
21+
render(<Spinner delay={300} data-testid="Spinner-delay" />)
22+
23+
act(() => {
24+
jest.advanceTimersByTime(300)
25+
})
26+
27+
expect(setTimeout).toHaveBeenCalledTimes(1)
28+
expect(setTimeout).toHaveBeenLastCalledWith(expect.any(Function), 300)
29+
expect(screen.getByTestId('Spinner-delay')).not.toBeNull()
30+
})
31+
})

0 commit comments

Comments
 (0)