H1-H10 优化OCR实时体验闭环

这个提交包含在:
2026-05-09 11:48:57 +08:00
父节点 549bd81e30
当前提交 c26cf9b954
共修改 34 个文件,包含 1217 行新增和 184 行删除
+56
查看文件
@@ -0,0 +1,56 @@
const { enqueueOcrInvoice, JOB_OCR_INVOICE } = require("../../../src/jobs/pgBossJobs");
describe("pgBossJobs enqueueOcrInvoice", () => {
it("queues a directed OCR invoice job when pg-boss is available", async () => {
const send = vi.fn(async () => ({ id: "job-1" }));
const result = await enqueueOcrInvoice(
{
config: {
jobDriver: "pgboss",
ocrProvider: "mock",
},
boss: { send },
},
"11111111-1111-4111-8111-111111111111",
);
expect(result).toEqual({ mode: "queued" });
expect(send).toHaveBeenCalledWith(JOB_OCR_INVOICE, {
invoiceId: "11111111-1111-4111-8111-111111111111",
});
});
it("falls back cleanly when pg-boss is unavailable", async () => {
await expect(
enqueueOcrInvoice(
{
config: {
jobDriver: "pgboss",
ocrProvider: "mock",
},
boss: null,
},
"11111111-1111-4111-8111-111111111111",
),
).resolves.toEqual({ mode: "fallback" });
});
it("does not queue OCR when the OCR provider is disabled", async () => {
const send = vi.fn();
const result = await enqueueOcrInvoice(
{
config: {
jobDriver: "pgboss",
ocrProvider: "off",
},
boss: { send },
},
"11111111-1111-4111-8111-111111111111",
);
expect(result).toEqual({ mode: "fallback" });
expect(send).not.toHaveBeenCalled();
});
});