#31 : Add unit tests
This commit is contained in:
30
src/utils/interval.test.js
Normal file
30
src/utils/interval.test.js
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
import {
|
||||||
|
setIntervalImmediate,
|
||||||
|
} from './interval.js'
|
||||||
|
|
||||||
|
describe('setIntervalImmediate', () => {
|
||||||
|
beforeEach(() => {
|
||||||
|
jest.useFakeTimers();
|
||||||
|
})
|
||||||
|
|
||||||
|
it('runs callback immediately and them each n ms', () => {
|
||||||
|
let interval
|
||||||
|
const durationMs = 1000
|
||||||
|
|
||||||
|
const callNumbersToStopTimer = 3
|
||||||
|
let calledTimes = 0
|
||||||
|
const callback = () => {
|
||||||
|
calledTimes++
|
||||||
|
if (calledTimes === callNumbersToStopTimer) {
|
||||||
|
clearInterval(interval)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
interval = setIntervalImmediate(callback, durationMs)
|
||||||
|
jest.runAllTimers()
|
||||||
|
|
||||||
|
expect(calledTimes).toBe(callNumbersToStopTimer)
|
||||||
|
expect(setInterval).toHaveBeenCalledWith(expect.any(Function), durationMs)
|
||||||
|
expect(clearInterval).toHaveBeenCalledWith(interval)
|
||||||
|
})
|
||||||
|
})
|
||||||
Reference in New Issue
Block a user