UNPKG

@netdata/charts

Version:

Netdata frontend SDK and chart utilities

64 lines (63 loc) 2.12 kB
"use strict"; var _ = _interopRequireDefault(require(".")); function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; } describe("makeExecuteLatest", function () { var executeLatest; beforeEach(function () { executeLatest = (0, _["default"])(); jest.useFakeTimers(); }); afterEach(function () { jest.useRealTimers(); }); it("executes callback after timeout", function () { var callback = jest.fn(); var execute = executeLatest.add(callback); execute("arg1", "arg2"); expect(callback).not.toBeCalled(); jest.runAllTimers(); expect(callback).toBeCalledWith("arg1", "arg2"); }); it("cancels previous timeout when called again", function () { var callback = jest.fn(); var execute = executeLatest.add(callback); execute("first"); execute("second"); jest.runAllTimers(); expect(callback).toBeCalledTimes(1); expect(callback).toBeCalledWith("second"); }); it("handles multiple execute functions", function () { var callback1 = jest.fn(); var callback2 = jest.fn(); var execute1 = executeLatest.add(callback1); var execute2 = executeLatest.add(callback2); execute1("first"); execute2("second"); jest.runAllTimers(); expect(callback1).toBeCalledWith("first"); expect(callback2).toBeCalledWith("second"); }); it("clears all pending timeouts", function () { var callback1 = jest.fn(); var callback2 = jest.fn(); var execute1 = executeLatest.add(callback1); var execute2 = executeLatest.add(callback2); execute1("first"); execute2("second"); executeLatest.clear(); jest.runAllTimers(); expect(callback1).not.toBeCalled(); expect(callback2).not.toBeCalled(); }); it("clears previous timeout before setting new one", function () { var callback = jest.fn(); var execute = executeLatest.add(callback); execute("first"); var firstTimeoutId = setTimeout(function () {}, 0); execute("second"); jest.runAllTimers(); expect(callback).toBeCalledTimes(1); expect(callback).toBeCalledWith("second"); }); });