import { beforeAll, expect } from 'vitest' /** * Sets up component test utilities for Vitest * * Adds custom matchers for HTML content checking. * Call in top-level describe block. */ export function setupComponentTest() { beforeAll(() => { expect.extend({ toContainText(received: string, expected: string) { const encodedExpected = encodeHtmlEntities(expected) const pass = received.includes(expected) || received.includes(encodedExpected) return { pass, message: () => pass ? `Expected HTML not to contain text "${expected}"` : `Expected HTML to contain text "${expected}" (or encoded: "${encodedExpected}")`, } }, }) }) } function encodeHtmlEntities(text: string): string { return text .replace(/&/g, '&') .replace(//g, '>') .replace(/"/g, '"') .replace(/'/g, ''') }