fix: require explicit system event session keys

This commit is contained in:
Peter Steinberger
2026-01-09 21:58:55 +01:00
parent cb2a365594
commit 42a0089b3b
14 changed files with 123 additions and 53 deletions

View File

@@ -1,4 +1,6 @@
import { describe, expect, test } from "vitest";
import { loadConfig } from "../config/config.js";
import { resolveMainSessionKey } from "../config/sessions.js";
import { drainSystemEvents, peekSystemEvents } from "../infra/system-events.js";
import {
cronIsolatedRun,
@@ -11,6 +13,8 @@ import {
installGatewayTestHooks();
const resolveMainKey = () => resolveMainSessionKey(loadConfig());
describe("gateway server hooks", () => {
test("hooks wake requires auth", async () => {
testState.hooksConfig = { enabled: true, token: "hook-secret" };
@@ -40,7 +44,7 @@ describe("gateway server hooks", () => {
expect(res.status).toBe(200);
const events = await waitForSystemEvent();
expect(events.some((e) => e.includes("Ping"))).toBe(true);
drainSystemEvents();
drainSystemEvents(resolveMainKey());
await server.close();
});
@@ -63,7 +67,7 @@ describe("gateway server hooks", () => {
expect(res.status).toBe(202);
const events = await waitForSystemEvent();
expect(events.some((e) => e.includes("Hook Email: done"))).toBe(true);
drainSystemEvents();
drainSystemEvents(resolveMainKey());
await server.close();
});
@@ -94,7 +98,7 @@ describe("gateway server hooks", () => {
job?: { payload?: { model?: string } };
};
expect(call?.job?.payload?.model).toBe("openai/gpt-4.1-mini");
drainSystemEvents();
drainSystemEvents(resolveMainKey());
await server.close();
});
@@ -113,7 +117,7 @@ describe("gateway server hooks", () => {
expect(res.status).toBe(200);
const events = await waitForSystemEvent();
expect(events.some((e) => e.includes("Query auth"))).toBe(true);
drainSystemEvents();
drainSystemEvents(resolveMainKey());
await server.close();
});
@@ -130,7 +134,7 @@ describe("gateway server hooks", () => {
body: JSON.stringify({ message: "Nope", provider: "sms" }),
});
expect(res.status).toBe(400);
expect(peekSystemEvents().length).toBe(0);
expect(peekSystemEvents(resolveMainKey()).length).toBe(0);
await server.close();
});
@@ -149,7 +153,7 @@ describe("gateway server hooks", () => {
expect(res.status).toBe(200);
const events = await waitForSystemEvent();
expect(events.some((e) => e.includes("Header auth"))).toBe(true);
drainSystemEvents();
drainSystemEvents(resolveMainKey());
await server.close();
});