// Copyright 2026 SZL Holdings // SPDX-License-Identifier: Apache-2.0 // // index.test.ts — integration tests for the mesh-router. Each test boots a // real node:http server on an ephemeral port (port 0) and exercises the router // functions over real TCP. There is no mock of the HTTP transport: the request // is serialized, sent over a socket, received by a real server, and the real // response is parsed back. This proves the instilled wire actually issues the // correct method/path/body and parses the producer's response shape. // // Run: node --experimental-strip-types src/index.test.ts // // Authored for SZL Holdings. Signed-off per repository DCO. import * as http from "node:http"; import { test } from "node:test"; import assert from "node:assert/strict"; import { evaluateAmaruChakra, meshConfigFromEnv, meshRequest, notifyRosie, queryAmaruReceipts, queryAmaruState, requestSentraVerdict, type MeshConfig, } from "./index.ts"; interface Captured { method: string; url: string; body: string; } /** Boot a loopback server that records each request and replies per the route. */ function bootServer( handler: (req: Captured) => { status: number; json: unknown }, ): Promise<{ baseUrl: string; calls: Captured[]; close: () => Promise }> { const calls: Captured[] = []; const server = http.createServer((req, res) => { const chunks: Buffer[] = []; req.on("data", (c) => chunks.push(c)); req.on("end", () => { const captured: Captured = { method: req.method ?? "", url: req.url ?? "", body: Buffer.concat(chunks).toString("utf8"), }; calls.push(captured); const { status, json } = handler(captured); res.writeHead(status, { "content-type": "application/json" }); res.end(JSON.stringify(json)); }); }); return new Promise((resolve) => { server.listen(0, "127.0.0.1", () => { const addr = server.address(); const port = typeof addr === "object" && addr ? addr.port : 0; resolve({ baseUrl: `http://127.0.0.1:${port}`, calls, close: () => new Promise((r) => server.close(() => r())), }); }); }); } test("queryAmaruState issues GET /state and parses the body", async () => { const srv = await bootServer(() => ({ status: 200, json: { tick: 42, mood: "calm" } })); try { const cfg: MeshConfig = { amaru: { baseUrl: srv.baseUrl } }; const res = await queryAmaruState(cfg); assert.equal(res.ok, true); assert.equal(res.status, 200); assert.deepEqual(res.body, { tick: 42, mood: "calm" }); assert.equal(srv.calls[0].method, "GET"); assert.equal(srv.calls[0].url, "/state"); } finally { await srv.close(); } }); test("queryAmaruReceipts issues GET /receipts", async () => { const srv = await bootServer(() => ({ status: 200, json: { receipts: [{ id: "r1" }] } })); try { const res = await queryAmaruReceipts({ amaru: { baseUrl: srv.baseUrl } }); assert.equal(res.ok, true); assert.equal(srv.calls[0].url, "/receipts"); } finally { await srv.close(); } }); test("evaluateAmaruChakra POSTs to /chakra/{name}/evaluate with the body", async () => { const srv = await bootServer((req) => ({ status: 200, json: { echoed: JSON.parse(req.body) } })); try { const res = await evaluateAmaruChakra({ amaru: { baseUrl: srv.baseUrl } }, "muladhara", { signal: 0.7 }); assert.equal(res.ok, true); assert.equal(srv.calls[0].method, "POST"); assert.equal(srv.calls[0].url, "/chakra/muladhara/evaluate"); assert.deepEqual(JSON.parse(srv.calls[0].body), { signal: 0.7 }); } finally { await srv.close(); } }); test("requestSentraVerdict POSTs /v1/inspect with the anatomy-contracts body shape", async () => { // Sentra ships runtime/immune_server.py exposing POST /v1/inspect with body // {action, actionId, traceparent?}. mesh-router must hit that path with that // body shape and surface sentra's `rationale` as `reason`. const srv = await bootServer(() => ({ status: 200, json: { actionId: "a-1", decision: "allow", gate: "sentra.immune.signature-scan", decidedBy: "sentra.immune", rationale: "below threshold", lambdaScore: 0, receiptHash: "", traceparent: "00-0123456789abcdef0123456789abcdef-fedcba9876543210-01", }, })); try { const verdict = await requestSentraVerdict( { sentra: { baseUrl: srv.baseUrl } }, { actionId: "a-1", kind: "egress", payload: { bytes: 10 } }, ); assert.equal(verdict.decision, "allow"); assert.equal(verdict.reason, "below threshold"); assert.equal(srv.calls[0].method, "POST"); assert.equal(srv.calls[0].url, "/v1/inspect"); // The body must satisfy sentra's contract: {action, actionId}. const body = JSON.parse(srv.calls[0].body); assert.equal(body.actionId, "a-1"); assert.ok(body.action, "body.action must be present"); assert.equal(body.action.kind, "egress"); assert.equal(body.action.bytes, 10); } finally { await srv.close(); } }); test("requestSentraVerdict propagates traceparent into the /v1/inspect body when provided", async () => { const srv = await bootServer(() => ({ status: 200, json: { actionId: "a-tp", decision: "deny", rationale: "signature match", }, })); try { const tp = "00-0123456789abcdef0123456789abcdef-fedcba9876543210-01"; const verdict = await requestSentraVerdict( { sentra: { baseUrl: srv.baseUrl } }, { actionId: "a-tp", kind: "threat", payload: { cmd: "rm -rf /" }, traceparent: tp }, ); assert.equal(verdict.decision, "deny"); assert.equal(verdict.reason, "signature match"); const body = JSON.parse(srv.calls[0].body); assert.equal(body.traceparent, tp); } finally { await srv.close(); } }); test("requestSentraVerdict FAILS CLOSED (deny) when sentra is unreachable", async () => { // Hardened (post-merge wave finding): sentra DOES ship /v1/inspect now, but // operational reality includes pod restarts, network blips, mesh outages. // The immune organ being unreachable must never silently allow. const verdict = await requestSentraVerdict( { sentra: { baseUrl: "http://127.0.0.1:1" } }, { actionId: "a-2", kind: "threat", payload: {} }, ); assert.equal(verdict.decision, "deny"); assert.ok(verdict.reason && verdict.reason.length > 0); }); test("requestSentraVerdict FAILS CLOSED on a 404 (legacy /v1/verdict not exposed)", async () => { // Defence in depth: if sentra is rolled back to a build that does not have // /v1/inspect, the call returns 404 and we deny rather than fail open. const srv = await bootServer(() => ({ status: 404, json: { error: "not found" } })); try { const verdict = await requestSentraVerdict( { sentra: { baseUrl: srv.baseUrl } }, { actionId: "a-404", kind: "egress", payload: {} }, ); assert.equal(verdict.decision, "deny"); assert.ok(verdict.reason && verdict.reason.length > 0); } finally { await srv.close(); } }); test("requestSentraVerdict FAILS CLOSED when sentra returns a garbage decision", async () => { // If sentra emits something other than "allow"|"deny" (e.g. a misconfigured // build), we deny. Never trust an unrecognised verdict. const srv = await bootServer(() => ({ status: 200, json: { actionId: "a-bad", decision: "maybe", rationale: "unsure" }, })); try { const verdict = await requestSentraVerdict( { sentra: { baseUrl: srv.baseUrl } }, { actionId: "a-bad", kind: "admission", payload: {} }, ); assert.equal(verdict.decision, "deny"); assert.ok(verdict.reason && verdict.reason.includes("unrecognised")); } finally { await srv.close(); } }); test("requestSentraVerdict FAILS CLOSED when sentra not configured", async () => { const verdict = await requestSentraVerdict({}, { actionId: "a-3", kind: "admission", payload: {} }); assert.equal(verdict.decision, "deny"); }); test("notifyRosie POSTs the operator event to /v1/events", async () => { const srv = await bootServer(() => ({ status: 202, json: { accepted: true } })); try { const res = await notifyRosie({ rosie: { baseUrl: srv.baseUrl } }, { type: "gate.denied", actionId: "x" }); assert.equal(res.status, 202); assert.equal(srv.calls[0].url, "/v1/events"); assert.deepEqual(JSON.parse(srv.calls[0].body), { type: "gate.denied", actionId: "x" }); } finally { await srv.close(); } }); test("meshRequest surfaces non-2xx without throwing", async () => { const srv = await bootServer(() => ({ status: 503, json: { error: "not ready" } })); try { const res = await meshRequest({ baseUrl: srv.baseUrl }, "GET", "/state"); assert.equal(res.ok, false); assert.equal(res.status, 503); assert.deepEqual(res.body, { error: "not ready" }); } finally { await srv.close(); } }); test("meshConfigFromEnv reads the three organ URLs", () => { const cfg = meshConfigFromEnv({ A11OY_AMARU_URL: "http://amaru:8000", A11OY_SENTRA_URL: "http://sentra:9000", A11OY_ROSIE_URL: " ", } as NodeJS.ProcessEnv); assert.equal(cfg.amaru?.baseUrl, "http://amaru:8000"); assert.equal(cfg.sentra?.baseUrl, "http://sentra:9000"); assert.equal(cfg.rosie, undefined); });