UNPKG

@sidequest/backend-test

Version:

@sidequest/backend-test is a test suite for backend implementations of Sidequest, a Node.js library for managing background jobs and distributed queues.

81 lines (78 loc) 2.96 kB
import { describe, it } from 'vitest'; import { backend } from './backend.js'; function defineListQueuesTestSuite() { describe("listQueues", () => { it("should list no queue", async () => { const queues = await backend.listQueues(); expect(queues).toHaveLength(0); }); it("should list multiple queues in priority order", async () => { await backend.createNewQueue({ name: "default", concurrency: 100, priority: 10, state: "active", }); await backend.createNewQueue({ name: "default2", concurrency: 100, priority: 100, state: "active", }); const queues = await backend.listQueues(); expect(queues).toHaveLength(2); expect(queues[0].name).toBe("default2"); expect(queues[1].name).toBe("default"); }); it("should list queues in ascending priority order", async () => { await backend.createNewQueue({ name: "asc1", concurrency: 10, priority: 1, state: "active", }); await backend.createNewQueue({ name: "asc2", concurrency: 10, priority: 2, state: "active", }); const queues = await backend.listQueues({ column: "priority", order: "asc" }); expect(queues[0].priority).toBeLessThanOrEqual(queues[1].priority); }); it("should list queues in descending concurrency order", async () => { await backend.createNewQueue({ name: "con1", concurrency: 5, priority: 1, state: "active", }); await backend.createNewQueue({ name: "con2", concurrency: 20, priority: 2, state: "active", }); const queues = await backend.listQueues({ column: "concurrency", order: "desc" }); expect(queues[0].concurrency).toBeGreaterThanOrEqual(queues[1].concurrency); }); it("should list queues in ascending name order", async () => { await backend.createNewQueue({ name: "bqueue", concurrency: 1, priority: 1, state: "active", }); await backend.createNewQueue({ name: "aqueue", concurrency: 1, priority: 2, state: "active", }); const queues = await backend.listQueues({ column: "name", order: "asc" }); expect(queues[0].name < queues[1].name).toBe(true); }); }); } export { defineListQueuesTestSuite as default }; //# sourceMappingURL=listQueues.js.map