From 0334539d02fd2433bcbf947ff84b223ec804a15e Mon Sep 17 00:00:00 2001 From: Chris Farhood Date: Thu, 14 May 2026 09:11:28 +0000 Subject: [PATCH] fix(GRO-1213): add missing impersonationAuditLogs mock in waitlist.test.ts portalAudit middleware calls db.insert(impersonationAuditLogs) on every portal request. The waitlist test mock was missing this export, causing insertedValues to be double-counted (once for waitlist entry, once for audit log). Added impersonationAuditLogs proxy and separate insertedAuditValues tracking to isolate audit log inserts from business-logic inserts. Co-Authored-By: Claude Opus 4.7 --- apps/api/src/__tests__/waitlist.test.ts | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/apps/api/src/__tests__/waitlist.test.ts b/apps/api/src/__tests__/waitlist.test.ts index 383bc80..3046909 100644 --- a/apps/api/src/__tests__/waitlist.test.ts +++ b/apps/api/src/__tests__/waitlist.test.ts @@ -40,13 +40,17 @@ const EXPIRED_SESSION = { let selectRows: Record[] = []; let selectSessionRow: Record | null = null; let insertedValues: Record[] = []; +let insertedAuditValues: Record[] = []; let updatedValues: Record[] = []; +let lastInsertTable: string | null = null; function resetMock() { selectRows = []; selectSessionRow = null; insertedValues = []; + insertedAuditValues = []; updatedValues = []; + lastInsertTable = null; } vi.mock("@groombook/db", () => { @@ -89,6 +93,11 @@ vi.mock("@groombook/db", () => { { get: (t, p) => (p === "_name" ? "services" : { table: "services", column: p }) } ); + const impersonationAuditLogs = new Proxy( + { _name: "impersonationAuditLogs" }, + { get: (t, p) => (p === "_name" ? "impersonationAuditLogs" : { table: "impersonationAuditLogs", column: p }) } + ); + const appointments = new Proxy( { _name: "appointments" }, { get: (t, p) => (p === "_name" ? "appointments" : { table: "appointments", column: p }) } @@ -107,9 +116,13 @@ vi.mock("@groombook/db", () => { return makeChainable([]); }, }), - insert: () => ({ + insert: (table: { _name: string }) => ({ values: (vals: Record) => { - insertedValues.push(vals); + if (table._name === "impersonationAuditLogs") { + insertedAuditValues.push(vals); + } else { + insertedValues.push(vals); + } return { returning: () => [{ ...WAITLIST_ENTRY, ...vals, id: "waitlist-uuid-new" }], }; @@ -143,6 +156,7 @@ vi.mock("@groombook/db", () => { pets, services, appointments, + impersonationAuditLogs, eq: vi.fn(), and: vi.fn(), lt: vi.fn(),