Files
svelte-carousel/src/utils/interval.test.js
2021-07-18 16:18:45 +03:00

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)
})
})