44 lines
1.2 KiB
TypeScript
44 lines
1.2 KiB
TypeScript
import { describe, expect, it } from "vitest";
|
|
import { workerMessageSchema } from "../../src/main/worker/entry/types";
|
|
|
|
const RUN_ID = "00000000-0000-4000-8000-000000000001";
|
|
|
|
describe("worker message schema", () => {
|
|
it("accepts run-finished messages keyed by usage status", () => {
|
|
expect(
|
|
workerMessageSchema.safeParse({
|
|
type: "run-finished",
|
|
runId: RUN_ID,
|
|
status: "failed",
|
|
summary: null,
|
|
errorMessage: "Agent stopped with error.",
|
|
exitCode: null,
|
|
signal: null,
|
|
model: "gpt-5.4",
|
|
usageStatus: "error_stop",
|
|
inputTokens: 12,
|
|
outputTokens: 1,
|
|
}).success,
|
|
).toBe(true);
|
|
});
|
|
|
|
it("rejects legacy unattributed-cost truth in run-finished messages", () => {
|
|
expect(
|
|
workerMessageSchema.safeParse({
|
|
type: "run-finished",
|
|
runId: RUN_ID,
|
|
status: "failed",
|
|
summary: null,
|
|
errorMessage: "Agent stopped with error.",
|
|
exitCode: null,
|
|
signal: null,
|
|
model: "gpt-5.4",
|
|
usageStatus: "error_stop",
|
|
unattributedCost: false,
|
|
inputTokens: 12,
|
|
outputTokens: 1,
|
|
}).success,
|
|
).toBe(false);
|
|
});
|
|
});
|