@cc-heart/utils
Version:
🔧 javascript common tools collection
46 lines (39 loc) • 1.42 kB
text/typescript
import { invokeTaskQueue } from '../../../lib/taskQueue'
describe('invoke task queue', () => {
test('should execute tasks in order', () => {
const taskArray = [
jest.fn(() => Promise.resolve('Task 1')),
jest.fn(() => Promise.resolve('Task 2')),
jest.fn(() => Promise.resolve('Task 3')),
]
return invokeTaskQueue(taskArray).then(() => {
expect(taskArray[0]).toHaveBeenCalled()
expect(taskArray[1]).toHaveBeenCalled()
expect(taskArray[2]).toHaveBeenCalled()
expect(taskArray[0].mock.invocationCallOrder[0]).toBeLessThan(
taskArray[1].mock.invocationCallOrder[0],
)
expect(taskArray[1].mock.invocationCallOrder[0]).toBeLessThan(
taskArray[2].mock.invocationCallOrder[0],
)
})
})
test('should handle empty task array', () => {
const taskArray: Array<(...args: any) => any> = []
return invokeTaskQueue(taskArray).then(() => {
expect(taskArray.length).toBe(0)
})
})
test('should handle tasks that return promises', () => {
const taskArray = [
jest.fn(() => Promise.resolve('Task 1')),
jest.fn(() => Promise.resolve('Task 2')),
jest.fn(() => Promise.resolve('Task 3')),
]
return invokeTaskQueue(taskArray).then(() => {
expect(taskArray[0]).toHaveBeenCalled()
expect(taskArray[1]).toHaveBeenCalled()
expect(taskArray[2]).toHaveBeenCalled()
})
})
})