Implements the EU-compliant cookie consent banner with: - modal + banner variants, CNIL equal-prominence Reject/Accept buttons - granular category toggles (essential non-toggleable) - __consent_state cookie management (SameSite=Lax, Secure, 1-yr, _v:1) - render-prop overrides: renderHeader, renderCategoryRow, renderActions - useConsent() integration when ConsentProvider is present - CookieConsentBannerLoader SSR-safe wrapper - RTL behavioral tests: Reject All, Save Selected, ESC=Reject, focus-trap - Storybook stories for modal, banner, render-prop, and a11y tab demo - jsdom configured with HTTPS origin for Secure cookie testing Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
25 lines
660 B
TypeScript
25 lines
660 B
TypeScript
import path from "node:path";
|
|
import { mergeConfig } from "vitest/config";
|
|
import { jsdomVitestConfig } from "@repo/core-typescript/vitest.base.jsdom";
|
|
|
|
export default mergeConfig(jsdomVitestConfig, {
|
|
resolve: {
|
|
alias: { "@": path.resolve(__dirname, "./src") },
|
|
},
|
|
test: {
|
|
// Use HTTPS so jsdom accepts Secure cookies (required for __consent_state)
|
|
environmentOptions: {
|
|
jsdom: { url: "https://localhost/" },
|
|
},
|
|
coverage: {
|
|
exclude: [
|
|
"src/**/*.test.{ts,tsx}",
|
|
"src/**/*.stories.{ts,tsx}",
|
|
"src/**/index.ts",
|
|
"src/__factories__/**",
|
|
"src/__contracts__/**",
|
|
],
|
|
},
|
|
},
|
|
});
|