47 lines
996 B
JavaScript
47 lines
996 B
JavaScript
import {
|
|
setIntervalImmediate,
|
|
wait
|
|
} 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)
|
|
})
|
|
})
|
|
|
|
describe('wait', () => {
|
|
beforeEach(() => {
|
|
jest.useFakeTimers();
|
|
})
|
|
|
|
it('wait n ms', () => {
|
|
const ms = 1000
|
|
|
|
wait(ms)
|
|
jest.runAllTimers()
|
|
|
|
expect(setTimeout).toHaveBeenCalledWith(expect.any(Function), ms)
|
|
})
|
|
})
|