UNPKG

@causalfoundry/js-sdk

Version:

Causal Foundry WEB SDK (JS/TS)

72 lines (51 loc) 2 kB
import DeferredRunner from "../deferredRunner"; describe("Deferred runner", () => { it("should call enqueued methods after activating it", () => { const anyfunc = jest.fn(); let mockLibrary = { anyfunc, }; const mockLibrarySpy = jest.spyOn(mockLibrary, "anyfunc"); const deferredRunner = new DeferredRunner(); deferredRunner.execute("module", "anyfunc", [1]); deferredRunner.execute("module", "anyfunc", [2]); deferredRunner.execute("module", "anyfunc", [3]); deferredRunner.execute("module", "anyfunc", [4]); deferredRunner.activate({ module: mockLibrary }); expect(mockLibrarySpy).toHaveBeenCalledTimes(4); }); it("should call methods once it is activated", () => { const anyfunc = jest.fn(); let mockLibrary = { anyfunc, }; const mockLibrarySpy = jest.spyOn(mockLibrary, "anyfunc"); const deferredRunner = new DeferredRunner(); deferredRunner.execute("module", "anyfunc", [1]); deferredRunner.execute("module", "anyfunc", [2]); deferredRunner.execute("module", "anyfunc", [3]); deferredRunner.execute("module", "anyfunc", [4]); deferredRunner.activate({ module: mockLibrary }); deferredRunner.execute("module", "anyfunc", [5]); expect(mockLibrarySpy).toHaveBeenCalledTimes(5); }); it("should call a method after an error in a previous one", () => { const firstFunc = jest.fn(); const secondFunc = jest.fn(() => { throw new Error(); }); const thirdFunc = jest.fn(); const mockLibrary = { firstFunc, secondFunc, thirdFunc, }; const mockLibrarySpy = jest.spyOn(mockLibrary, "thirdFunc"); const deferredRunner = new DeferredRunner(); deferredRunner.execute("module", "firstFunc", [5]); deferredRunner.execute("module", "secondFunc", [5]); deferredRunner.execute("module", "thirdFunc", [5]); deferredRunner.activate({ module: mockLibrary }); expect(mockLibrarySpy).toHaveBeenCalled(); }); });