quintodrome/ui/src/layout/useScanElapsedTime.test.jsx

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

51 lines
1.1 KiB
React
Raw Normal View History

import { renderHook, act } from '@testing-library/react-hooks'
import { vi } from 'vitest'
import { useScanElapsedTime } from './useScanElapsedTime'
describe('useScanElapsedTime', () => {
beforeEach(() => {
vi.useFakeTimers()
})
afterEach(() => {
vi.useRealTimers()
})
it('increments elapsed time while scanning', () => {
const { result } = renderHook(
({ scanning, elapsed }) => useScanElapsedTime(scanning, elapsed),
{
initialProps: { scanning: true, elapsed: 0 },
},
)
act(() => {
vi.advanceTimersByTime(3000)
})
expect(result.current).toBe(3e9)
})
it('stops incrementing when not scanning', () => {
const { result, rerender } = renderHook(
({ scanning, elapsed }) => useScanElapsedTime(scanning, elapsed),
{
initialProps: { scanning: false, elapsed: 2e9 },
},
)
act(() => {
vi.advanceTimersByTime(2000)
})
expect(result.current).toBe(2e9)
rerender({ scanning: true, elapsed: 2e9 })
act(() => {
vi.advanceTimersByTime(1000)
})
expect(result.current).toBe(3e9)
})
})