import { describe, it, expect, beforeEach, afterEach } from 'vitest'; import { resetDb } from '../../helpers/db.js'; import { migrateUp } from '../../../lib/db/migrate.js'; import { stopBoss, waitForJob } from '../../helpers/boss.js'; import * as queue from '../../../lib/jobs/queue.js'; import { registerWorkers } from '../../../lib/jobs/index.js'; beforeEach(async () => { await resetDb(); await migrateUp(); await queue.start(); await registerWorkers(); }); afterEach(async () => { await stopBoss(); }); describe('echo worker', () => { it('completes with the expected output', async () => { const id = await queue.enqueue('echo', { ping: 7 }); const j = await waitForJob('echo', id); expect(j.state).toBe('completed'); expect(j.output).toEqual({ pong: 7 }); }); });