diff --git a/tests/runner-e2e/private-refusal-code.test.ts b/tests/runner-e2e/private-refusal-code.test.ts index e08db2a0619..4745a33f147 100644 --- a/tests/runner-e2e/private-refusal-code.test.ts +++ b/tests/runner-e2e/private-refusal-code.test.ts @@ -1,3 +1,4 @@ +import { readFileSync } from "node:fs"; import { expect, it } from "vitest"; import { fixedRefusalMessages, privateRefusalCode } from "./private-refusal-code.js"; @@ -16,3 +17,12 @@ it("never returns the text of a dynamic or system message", () => { expect(privateRefusalCode(leaked)).toBe("non-error-thrown"); for (const value of [new Error(`x ${leaked}`), new TypeError(leaked), leaked]) expect(privateRefusalCode(value)).not.toContain("secret"); }); + +it("names refusals from the dispatch-authority and admission modules the transfer calls", () => { + const fixed = fixedRefusalMessages(); + for (const file of ["manual-dispatch-authority.ts", "testops-chat-admission.ts"]) { + const literals = [...readFileSync(new URL(`./${file}`, import.meta.url), "utf8").matchAll(/new Error\("([^"$`\\]+)"\)/g)].map(match => match[1]!); + expect(literals.length, file).toBeGreaterThan(0); + for (const message of literals) expect(privateRefusalCode(new Error(message), fixed), message).not.toBe("dynamic"); + } +}); diff --git a/tests/runner-e2e/private-refusal-code.ts b/tests/runner-e2e/private-refusal-code.ts index e54b7d8a3b6..d562ffae3de 100644 --- a/tests/runner-e2e/private-refusal-code.ts +++ b/tests/runner-e2e/private-refusal-code.ts @@ -4,6 +4,7 @@ import { readFileSync } from "node:fs"; export const PRIVATE_REFUSAL_MODULES = [ "manual-private-transfer.ts", "manual-private-handoff.ts", "manual-private-retention.ts", "manual-private-report-assets.ts", "private-history.ts", "private-framework-report.ts", "history-budget.ts", "evidence.ts", "redaction.ts", + "manual-dispatch-authority.ts", "testops-chat-admission.ts", ] as const; let known: ReadonlySet | undefined;