fix: use work items as dashboard outbound SSOT
This commit is contained in:
51
src/db-work-items.test.ts
Normal file
51
src/db-work-items.test.ts
Normal file
@@ -0,0 +1,51 @@
|
||||
import { beforeEach, describe, expect, it } from 'vitest';
|
||||
|
||||
import {
|
||||
_initTestDatabase,
|
||||
createProducedWorkItem,
|
||||
getOpenWorkItem,
|
||||
getRecentDeliveredWorkItemsForChat,
|
||||
markWorkItemDelivered,
|
||||
} from './db.js';
|
||||
|
||||
beforeEach(() => {
|
||||
_initTestDatabase();
|
||||
});
|
||||
|
||||
describe('work item canonical output queue', () => {
|
||||
it('supersedes stale open work items before creating a newer canonical output', () => {
|
||||
const stale = createProducedWorkItem({
|
||||
group_folder: 'discord_test',
|
||||
chat_jid: 'dc:supersede',
|
||||
agent_type: 'codex',
|
||||
service_id: 'codex-main',
|
||||
delivery_role: 'owner',
|
||||
start_seq: 1,
|
||||
end_seq: 2,
|
||||
result_payload: 'stale owner output',
|
||||
});
|
||||
const fresh = createProducedWorkItem({
|
||||
group_folder: 'discord_test',
|
||||
chat_jid: 'dc:supersede',
|
||||
agent_type: 'codex',
|
||||
service_id: 'codex-main',
|
||||
delivery_role: 'owner',
|
||||
start_seq: 3,
|
||||
end_seq: 4,
|
||||
result_payload: 'fresh owner output',
|
||||
});
|
||||
|
||||
expect(fresh.id).not.toBe(stale.id);
|
||||
expect(getOpenWorkItem('dc:supersede', 'codex', 'codex-main')?.id).toBe(
|
||||
fresh.id,
|
||||
);
|
||||
|
||||
markWorkItemDelivered(fresh.id, 'discord-message-id');
|
||||
expect(getRecentDeliveredWorkItemsForChat('dc:supersede', 10)).toEqual([
|
||||
expect.objectContaining({
|
||||
id: fresh.id,
|
||||
result_payload: 'fresh owner output',
|
||||
}),
|
||||
]);
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user