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.

72 lines (67 loc) 3.68 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var vitest = require('vitest'); var backend = require('./backend.cjs'); function defineDeleteFinishedJobsTestSuite() { vitest.describe("deleteFinishedJobs", () => { vitest.it("should delete failed, completed, and canceled jobs", async () => { const job = { queue: "default", class: "TestJob", args: [{ foo: "bar" }], constructor_args: [{}], state: "waiting", script: "test.js", attempt: 0, max_attempts: 5, }; let insertedJob = await backend.backend.createNewJob(job); insertedJob = await backend.backend.createNewJob(job); await backend.backend.updateJob({ ...insertedJob, state: "canceled", canceled_at: new Date(2000, 0, 1) }); insertedJob = await backend.backend.createNewJob(job); await backend.backend.updateJob({ ...insertedJob, state: "claimed" }); insertedJob = await backend.backend.createNewJob(job); await backend.backend.updateJob({ ...insertedJob, state: "completed", completed_at: new Date(2000, 0, 1) }); insertedJob = await backend.backend.createNewJob(job); await backend.backend.updateJob({ ...insertedJob, state: "failed", failed_at: new Date(2000, 0, 1) }); insertedJob = await backend.backend.createNewJob(job); await backend.backend.updateJob({ ...insertedJob, state: "running" }); await backend.backend.deleteFinishedJobs(new Date()); const allJobs = await backend.backend.listJobs({}); expect(allJobs).toHaveLength(3); }); vitest.it("should not delete failed, completed, and canceled jobs if do not meet cutoff", async () => { const job = { queue: "default", class: "TestJob", args: [{ foo: "bar" }], constructor_args: [{}], state: "waiting", script: "test.js", attempt: 0, max_attempts: 5, }; let insertedJob = await backend.backend.createNewJob(job); insertedJob = await backend.backend.createNewJob(job); await backend.backend.updateJob({ ...insertedJob, state: "canceled", canceled_at: new Date(2024, 0, 1) }); insertedJob = await backend.backend.createNewJob(job); await backend.backend.updateJob({ ...insertedJob, state: "claimed" }); insertedJob = await backend.backend.createNewJob(job); await backend.backend.updateJob({ ...insertedJob, state: "completed", completed_at: new Date(2024, 0, 1) }); insertedJob = await backend.backend.createNewJob(job); await backend.backend.updateJob({ ...insertedJob, state: "failed", failed_at: new Date(2024, 0, 1) }); insertedJob = await backend.backend.createNewJob(job); await backend.backend.updateJob({ ...insertedJob, state: "running" }); await backend.backend.deleteFinishedJobs(new Date(0)); const allJobs = await backend.backend.listJobs({}); expect(allJobs).toHaveLength(6); }); vitest.it("should not do anything if no jobs", async () => { await backend.backend.deleteFinishedJobs(new Date(0)); const allJobs = await backend.backend.listJobs({}); expect(allJobs).toHaveLength(0); }); }); } exports.default = defineDeleteFinishedJobsTestSuite; //# sourceMappingURL=deleteFinishedJobs.cjs.map