@yoroi/common
Version:
The Common package of Yoroi SDK
43 lines (42 loc) • 1.64 kB
JavaScript
;
var _queueTask = require("./queue-task");
describe('queueTaskMaker', () => {
beforeEach(() => {
jest.resetAllMocks();
});
it('should enqueue and execute tasks in order', async () => {
const queue = (0, _queueTask.queueTaskMaker)();
const task1 = jest.fn().mockResolvedValue(undefined);
const task2 = jest.fn().mockResolvedValue(undefined);
const task3 = jest.fn().mockResolvedValue(undefined);
queue.enqueue(task1);
queue.enqueue(task2);
queue.enqueue(task3);
await new Promise(resolve => setTimeout(resolve, 100));
expect(task1).toHaveBeenCalledTimes(1);
expect(task2).toHaveBeenCalledTimes(1);
expect(task3).toHaveBeenCalledTimes(1);
});
it('should destroy the queue and stop executing tasks', async () => {
const queue = (0, _queueTask.queueTaskMaker)();
const task1 = jest.fn().mockResolvedValue(undefined);
const task2 = jest.fn().mockResolvedValue(undefined);
queue.destroy();
queue.enqueue(task1);
queue.enqueue(task2);
await new Promise(resolve => setTimeout(resolve, 100));
expect(task1).not.toHaveBeenCalled();
expect(task2).not.toHaveBeenCalled();
});
it('should continue on error', async () => {
const queue = (0, _queueTask.queueTaskMaker)();
const task1 = jest.fn().mockRejectedValue(new Error());
const task2 = jest.fn().mockResolvedValue(undefined);
queue.enqueue(task1);
queue.enqueue(task2);
await new Promise(resolve => setTimeout(resolve, 100));
expect(task1).toHaveBeenCalledTimes(1);
expect(task2).toHaveBeenCalledTimes(1);
});
});
//# sourceMappingURL=queue-task.test.js.map