// Bundle-8 / Audit L-019 / CWE-79: // the safeHtml.ts placeholder MUST throw if invoked before the real // DOMPurify-backed implementation is wired. This catches the // "imported the helper but forgot to add dompurify" regression at test // time instead of at runtime against unsanitized HTML. import { describe, it, expect } from 'vitest'; import { sanitizeHtml } from './safeHtml'; describe('safeHtml.sanitizeHtml — Bundle-8 / L-019', () => { it('returns empty string for empty input without throwing', () => { expect(sanitizeHtml('')).toBe(''); }); it('throws a clear error for any non-empty input (placeholder behaviour)', () => { expect(() => sanitizeHtml('bold')).toThrow(/safeHtml.sanitizeHtml is a placeholder/); }); it('error message points readers at the activation procedure', () => { try { sanitizeHtml(''); throw new Error('should have thrown'); } catch (e) { expect(String(e)).toMatch(/dompurify/); expect(String(e)).toMatch(/safeHtml\.ts file header/); } }); });