24 lines
1.2 KiB
JavaScript
24 lines
1.2 KiB
JavaScript
import assert from "node:assert/strict";
|
|
import { randomUUID } from "node:crypto";
|
|
import test from "node:test";
|
|
|
|
import { boundedBody, redactHeaders, safeUrl, shouldRetryStartup } from "../scripts/m0-spike.mjs";
|
|
|
|
test("export policy redacts credentials and bounds bodies", () => {
|
|
const sensitive = randomUUID();
|
|
assert.deepEqual(redactHeaders({ Cookie: sensitive, Authorization: sensitive, Referer: "https://example.test/private", "Set-Cookie": sensitive, Accept: "*/*" }), {
|
|
accept: "*/*",
|
|
authorization: "[REDACTED]",
|
|
cookie: "[REDACTED]",
|
|
referer: "[REDACTED]",
|
|
"set-cookie": "[REDACTED]",
|
|
});
|
|
assert.equal(safeUrl("https://example.test/path?token=secret"), "https://example.test/path?<redacted>");
|
|
assert.deepEqual(boundedBody(sensitive, false, 100), { state: "fetched", storage: "omitted", reason: "default_body_policy", bytes: Buffer.byteLength(sensitive) });
|
|
assert(!JSON.stringify(boundedBody(sensitive, false, 100)).includes(sensitive));
|
|
assert.deepEqual(boundedBody("hello!", false, 5), { state: "size_limit", storage: "omitted", bytes: 6 });
|
|
assert(shouldRetryStartup("Render process gone."));
|
|
assert(!shouldRetryStartup("Target closed."));
|
|
assert(!shouldRetryStartup(undefined));
|
|
});
|