test(security): align board key checks with current master

Co-Authored-By: Paperclip <noreply@paperclip.ing>
This commit is contained in:
DottaandPaperclip committed 2026-08-19 19:45:07 +00:00
1 parent 02ecb4a52b
commit 08adecda83
2 files changed
+16 -6

No files matched your search

@@ -208,6 +208,9 @@ export const BOARD_KEY_ROUTE_INVENTORY: readonly string[] = [
"board_key_denied | deny | /api/cli-auth/{*path}",
"board_key_denied | deny | /api/cloud/{*path}",
"board_key_denied | deny | /api/companies/{id}/adapters/{id}/detect-model",
"board_key_denied | deny | /api/companies/{id}/adapters/{id}/login-sessions",
"board_key_denied | deny | /api/companies/{id}/adapters/{id}/login-sessions/{id}",
"board_key_denied | deny | /api/companies/{id}/adapters/{id}/login-sessions/{id}/cancel",
"board_key_denied | deny | /api/companies/{id}/adapters/{id}/model-profiles",
"board_key_denied | deny | /api/companies/{id}/adapters/{id}/models",
"board_key_denied | deny | /api/companies/{id}/adapters/{id}/test-environment",
+13 -6
View File
@@ -4,28 +4,35 @@ import { boardAuthService } from "./board-auth.js";
describe("boardAuthService touchBoardApiKey", () => {
it("retries the audit write after a transient failure", async () => {
const writes = [Promise.reject(new Error("transient")), Promise.resolve([])];
const writes = [
Promise.reject(new Error("transient")),
Promise.resolve([{ id: "key-1" }]),
];
const update = vi.fn(() => ({
set: () => ({
where: () => writes.shift(),
where: () => ({
returning: () => writes.shift(),
}),
}),
}));
const service = boardAuthService({ update } as unknown as Db);
await expect(service.touchBoardApiKey("key-1")).rejects.toThrow("transient");
await expect(service.touchBoardApiKey("key-1")).resolves.toBeUndefined();
await expect(service.touchBoardApiKey("key-1")).resolves.toEqual({ id: "key-1" });
expect(update).toHaveBeenCalledTimes(2);
});
it("shares one in-flight audit write across concurrent touches", async () => {
let releaseWrite: (() => void) | undefined;
const write = new Promise<void>((resolve) => {
releaseWrite = resolve;
const write = new Promise<Array<{ id: string }>>((resolve) => {
releaseWrite = () => resolve([{ id: "key-1" }]);
});
const update = vi.fn(() => ({
set: () => ({
where: () => write,
where: () => ({
returning: () => write,
}),
}),
}));
const service = boardAuthService({ update } as unknown as Db);