import assert from "node:assert/strict"; import test from "node:test"; import { parseMulticaCallbackUrl, relayMulticaCallback } from "./multica-callback.js"; test("accepts a complete Multica loopback callback", () => { const url = parseMulticaCallbackUrl("http://localhost:42957/callback?token=secret&state=nonce"); assert.equal(url.port, "42957"); }); test("rejects non-loopback callback targets", () => { assert.throws( () => parseMulticaCallbackUrl("https://example.com/callback?token=secret&state=nonce"), /localhost/, ); }); test("rejects callbacks without OAuth parameters", () => { assert.throws(() => parseMulticaCallbackUrl("http://localhost:42957/callback"), /token/); }); test("relays the callback without exposing its response", async () => { let receivedUrl; const result = await relayMulticaCallback( "http://127.0.0.1:42957/callback?token=secret&state=nonce", async (url) => { receivedUrl = url; return { ok: true, status: 200 }; }, ); assert.equal(receivedUrl.hostname, "127.0.0.1"); assert.deepEqual(result, { ok: true }); });