import { describe, it, expect, beforeEach, afterEach } from 'vitest'; import { resetDb } from '../helpers/db.js'; import { migrateUp } from '../../lib/db/migrate.js'; import { stopBoss } from '../helpers/boss.js'; import * as queue from '../../lib/jobs/queue.js'; beforeEach(async () => { await resetDb(); await migrateUp(); }); afterEach(async () => { await stopBoss(); }); describe('jobs/queue', () => { it('starts, enqueues, and a worker receives the job', async () => { await queue.start(); const received = new Promise(resolve => { queue.subscribe('echo-q', async job => { resolve(job.data); }); }); const jobId = await queue.enqueue('echo-q', { hello: 'void' }); expect(jobId).toBeTruthy(); const data = await received; expect(data).toEqual({ hello: 'void' }); }); });