Files
EpicNext-Cms/src/lib/csp.test.ts
T
openhands c7fb37356e
CI / check (push) Successful in 29s
CI / release (push) Skipped
CI / deploy (push) Successful in 1m11s
fix: remove nonce from style-src to allow unsafe-inline to work
2026-08-01 22:09:22 +02:00

22 lines
834 B
TypeScript

import { describe, expect, it } from "vitest";
import { buildContentSecurityPolicy, createCspNonce } from "./csp";
describe("csp", () => {
it("creates a non-empty base64 nonce", () => {
const nonce = createCspNonce();
expect(nonce.length).toBeGreaterThan(8);
expect(nonce).toMatch(/^[A-Za-z0-9+/=]+$/);
});
it("uses a script nonce and omits script unsafe-inline", () => {
const csp = buildContentSecurityPolicy("testNonce123");
expect(csp).toContain("script-src");
expect(csp).toContain("'nonce-testNonce123'");
expect(csp).not.toMatch(/script-src[^;]*'unsafe-inline'/);
expect(csp).toContain("style-src 'self' 'unsafe-inline'");
expect(csp).toContain("style-src-attr 'unsafe-inline'");
expect(csp).toContain("https://challenges.cloudflare.com");
expect(csp).toContain("https://cdn.jsdelivr.net");
});
});