import { describe, expect, it, vi } from "vitest"; import { createSignedCreateMessageRequest } from "./monitor.test-fixtures.js"; import { startWebhookServer } from "./monitor.test-harness.js"; describe("createNextcloudTalkWebhookServer backend allowlist", () => { it("rejects requests from unexpected backend origins", async () => { const onMessage = vi.fn(async () => {}); const harness = await startWebhookServer({ path: "/nextcloud-backend-check", isBackendAllowed: (backend) => backend === "https://nextcloud.expected", onMessage, }); const { body, headers } = createSignedCreateMessageRequest({ backend: "https://nextcloud.unexpected", }); const response = await fetch(harness.webhookUrl, { method: "POST", headers, body, }); expect(response.status).toBe(401); expect(await response.json()).toEqual({ error: "Invalid backend" }); expect(onMessage).not.toHaveBeenCalled(); }); });