From 4ada9137e161c99b82494a3388a8e002d895b19e Mon Sep 17 00:00:00 2001 From: Vadim Date: Sat, 3 Jul 2021 23:29:37 +0300 Subject: [PATCH] #31 : Add unit tests --- src/utils/interval.test.js | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 src/utils/interval.test.js diff --git a/src/utils/interval.test.js b/src/utils/interval.test.js new file mode 100644 index 0000000..9aa209f --- /dev/null +++ b/src/utils/interval.test.js @@ -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) + }) +})