UNPKG

@benshi.ai/js-sdk

Version:

Benshi SDK

71 lines (51 loc) 2.15 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).toBeCalled() }) })