From 4b73ee3d41a09cc2d3b94fcb9d6896680eee4a6e Mon Sep 17 00:00:00 2001 From: Andrew Bastin Date: Tue, 18 Aug 2020 14:34:46 -0400 Subject: [PATCH] Added test spec for helpers/utils/debounce.js --- helpers/utils/__tests__/debounce.spec.js | 38 ++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 helpers/utils/__tests__/debounce.spec.js diff --git a/helpers/utils/__tests__/debounce.spec.js b/helpers/utils/__tests__/debounce.spec.js new file mode 100644 index 000000000..30ca626fc --- /dev/null +++ b/helpers/utils/__tests__/debounce.spec.js @@ -0,0 +1,38 @@ +import debounce from "../debounce" + +function sleep(millis) { + return new Promise((resolve) => setTimeout(resolve, millis)) +} + +describe("debounce", () => { + test("doesn't call function right after calling", () => { + const fn = jest.fn() + + const debFunc = debounce(fn, 100) + debFunc() + + expect(fn).not.toHaveBeenCalled() + }) + + test("calls the function after the given timeout", async () => { + const fn = jest.fn() + + const debFunc = debounce(fn, 100) + debFunc() + + await sleep(1000) + + expect(fn).toHaveBeenCalled() + }) + + test("calls the function only one time within the timeframe", async () => { + const fn = jest.fn() + + const debFunc = debounce(fn, 1000) + + for (let i = 0; i < 100; i++) debFunc() + await sleep(2000) + + expect(fn).toHaveBeenCalledTimes(1) + }) +})