@c15t/react 2.0.0-rc.2 → 2.0.0-rc.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (191) hide show
  1. package/client/components/consent-banner.js +4 -0
  2. package/client/components/consent-dialog-link.js +3 -0
  3. package/client/components/consent-dialog-trigger.js +3 -0
  4. package/client/components/consent-dialog.js +4 -0
  5. package/client/components/consent-widget.js +4 -0
  6. package/client/components/frame.js +3 -0
  7. package/client/components/iab-consent-banner.js +4 -0
  8. package/client/components/iab-consent-dialog.js +4 -0
  9. package/dist/components/consent-dialog-link/index.cjs +1 -0
  10. package/dist/components/consent-dialog-link/index.d.ts +2 -0
  11. package/dist/components/consent-dialog-link/index.d.ts.map +1 -0
  12. package/dist/components/consent-dialog-link/index.js +1 -0
  13. package/dist/components/consent-dialog-trigger/atoms/button.cjs +1 -1
  14. package/dist/components/consent-dialog-trigger/atoms/button.d.ts.map +1 -1
  15. package/dist/components/consent-dialog-trigger/atoms/button.js +1 -1
  16. package/dist/components/consent-preferences-link/consent-preferences-link.cjs +1 -0
  17. package/dist/components/consent-preferences-link/consent-preferences-link.d.ts +16 -0
  18. package/dist/components/consent-preferences-link/consent-preferences-link.d.ts.map +1 -0
  19. package/dist/components/consent-preferences-link/consent-preferences-link.js +1 -0
  20. package/dist/components/consent-preferences-link/index.cjs +1 -0
  21. package/dist/components/consent-preferences-link/index.d.ts +2 -0
  22. package/dist/components/consent-preferences-link/index.d.ts.map +1 -0
  23. package/dist/components/consent-preferences-link/index.js +1 -0
  24. package/dist/components/iab-consent-dialog/iab-consent-dialog.d.ts +1 -1
  25. package/dist/components/shared/primitives/button.cjs +1 -1
  26. package/dist/components/shared/primitives/button.d.ts.map +1 -1
  27. package/dist/components/shared/primitives/button.js +1 -1
  28. package/dist/hooks/index.cjs +1 -1
  29. package/dist/hooks/use-consent-manager.cjs +1 -1
  30. package/dist/hooks/use-consent-manager.d.ts.map +1 -1
  31. package/dist/hooks/use-consent-manager.js +1 -1
  32. package/dist/index.cjs +1 -1
  33. package/dist/index.d.ts +1 -0
  34. package/dist/index.d.ts.map +1 -1
  35. package/dist/index.js +1 -1
  36. package/dist/utils/theme-utils.d.ts +1 -1
  37. package/dist/utils/theme-utils.d.ts.map +1 -1
  38. package/dist/version.cjs +1 -1
  39. package/dist/version.d.ts +1 -1
  40. package/dist/version.js +1 -1
  41. package/package.json +49 -6
  42. package/dist/components/__tests__/active-ui-transitions.e2e.test.cjs +0 -1
  43. package/dist/components/__tests__/active-ui-transitions.e2e.test.js +0 -1
  44. package/dist/components/__tests__/consent-flow.e2e.test.cjs +0 -1
  45. package/dist/components/__tests__/consent-flow.e2e.test.js +0 -1
  46. package/dist/components/__tests__/models-prop.e2e.test.cjs +0 -1
  47. package/dist/components/__tests__/models-prop.e2e.test.js +0 -1
  48. package/dist/components/__tests__/ui-source-tracking.e2e.test.cjs +0 -1
  49. package/dist/components/__tests__/ui-source-tracking.e2e.test.js +0 -1
  50. package/dist/components/iab/__tests__/e2e-setup.cjs +0 -1
  51. package/dist/components/iab/__tests__/e2e-setup.js +0 -1
  52. package/dist/components/iab/__tests__/fixtures/mock-consent-state.cjs +0 -1
  53. package/dist/components/iab/__tests__/fixtures/mock-consent-state.d.ts +0 -212
  54. package/dist/components/iab/__tests__/fixtures/mock-consent-state.d.ts.map +0 -1
  55. package/dist/components/iab/__tests__/fixtures/mock-consent-state.js +0 -1
  56. package/dist/components/iab/__tests__/iab-banner.e2e.test.cjs +0 -1
  57. package/dist/components/iab/__tests__/iab-banner.e2e.test.js +0 -1
  58. package/dist/components/iab/__tests__/iab-consent-flow.e2e.test.cjs +0 -1
  59. package/dist/components/iab/__tests__/iab-consent-flow.e2e.test.js +0 -1
  60. package/dist/components/iab/__tests__/iab-events.e2e.test.cjs +0 -1
  61. package/dist/components/iab/__tests__/iab-events.e2e.test.js +0 -1
  62. package/dist/components/iab/__tests__/iab-gvl.e2e.test.cjs +0 -1
  63. package/dist/components/iab/__tests__/iab-gvl.e2e.test.js +0 -1
  64. package/dist/components/iab/__tests__/iab-preference-center.e2e.test.cjs +0 -1
  65. package/dist/components/iab/__tests__/iab-preference-center.e2e.test.js +0 -1
  66. package/dist/components/iab/__tests__/iab-storage.e2e.test.cjs +0 -1
  67. package/dist/components/iab/__tests__/iab-storage.e2e.test.js +0 -1
  68. package/dist/components/iab/__tests__/iab-stub.e2e.test.cjs +0 -1
  69. package/dist/components/iab/__tests__/iab-stub.e2e.test.js +0 -1
  70. package/dist/components/iab/__tests__/iab-tcfapi.e2e.test.cjs +0 -1
  71. package/dist/components/iab/__tests__/iab-tcfapi.e2e.test.js +0 -1
  72. package/dist/components/iab/__tests__/msw-handlers.cjs +0 -1
  73. package/dist/components/iab/__tests__/msw-handlers.js +0 -1
  74. package/dist/components/iab-consent-banner/__tests__/iab-consent-banner.test.cjs +0 -1
  75. package/dist/components/iab-consent-banner/__tests__/iab-consent-banner.test.js +0 -1
  76. package/dist/components/iab-consent-dialog/__tests__/legitimate-interest-ui.test.cjs +0 -1
  77. package/dist/components/iab-consent-dialog/__tests__/legitimate-interest-ui.test.js +0 -1
  78. package/dist/components/iab-consent-dialog/__tests__/preference-center.test.cjs +0 -1
  79. package/dist/components/iab-consent-dialog/__tests__/preference-center.test.js +0 -1
  80. package/dist/components/iab-consent-dialog/__tests__/purposes-tab.test.cjs +0 -1
  81. package/dist/components/iab-consent-dialog/__tests__/purposes-tab.test.js +0 -1
  82. package/dist/components/iab-consent-dialog/__tests__/vendors-tab.test.cjs +0 -1
  83. package/dist/components/iab-consent-dialog/__tests__/vendors-tab.test.js +0 -1
  84. package/dist/components/shared/ui/__tests__/primitives.test.cjs +0 -1
  85. package/dist/components/shared/ui/__tests__/primitives.test.js +0 -1
  86. package/dist/hooks/__tests__/__screenshots__/use-color-scheme.test.tsx/useColorScheme-cleans-up-system-preference-listener-on-unmount-1.cjs +0 -1
  87. package/dist/hooks/__tests__/__screenshots__/use-color-scheme.test.tsx/useColorScheme-cleans-up-system-preference-listener-on-unmount-1.js +0 -1
  88. package/dist/hooks/__tests__/__screenshots__/use-color-scheme.test.tsx/useColorScheme-handles-default-theme-based-on-document-class-1.cjs +0 -1
  89. package/dist/hooks/__tests__/__screenshots__/use-color-scheme.test.tsx/useColorScheme-handles-default-theme-based-on-document-class-1.js +0 -1
  90. package/dist/hooks/__tests__/__screenshots__/use-color-scheme.test.tsx/useColorScheme-responds-to-system-preference-1.cjs +0 -1
  91. package/dist/hooks/__tests__/__screenshots__/use-color-scheme.test.tsx/useColorScheme-responds-to-system-preference-1.js +0 -1
  92. package/dist/hooks/__tests__/__screenshots__/use-color-scheme.test.tsx/useColorScheme-sets-dark-theme-correctly-1.cjs +0 -1
  93. package/dist/hooks/__tests__/__screenshots__/use-color-scheme.test.tsx/useColorScheme-sets-dark-theme-correctly-1.js +0 -1
  94. package/dist/hooks/__tests__/__screenshots__/use-color-scheme.test.tsx/useColorScheme-updates-theme-when-default-theme-changes-1.cjs +0 -1
  95. package/dist/hooks/__tests__/__screenshots__/use-color-scheme.test.tsx/useColorScheme-updates-theme-when-default-theme-changes-1.js +0 -1
  96. package/dist/hooks/__tests__/__screenshots__/use-color-scheme.test.tsx/useColorScheme-updates-theme-when-system-preference-changes-1.cjs +0 -1
  97. package/dist/hooks/__tests__/__screenshots__/use-color-scheme.test.tsx/useColorScheme-updates-theme-when-system-preference-changes-1.js +0 -1
  98. package/dist/hooks/__tests__/__screenshots__/use-consent-manager.test.tsx/useConsentManager-provides-manager-object-when-configured-1.cjs +0 -1
  99. package/dist/hooks/__tests__/__screenshots__/use-consent-manager.test.tsx/useConsentManager-provides-manager-object-when-configured-1.js +0 -1
  100. package/dist/hooks/__tests__/__screenshots__/use-styles.test.tsx/useStyles-handles-string-className-correctly-1.cjs +0 -1
  101. package/dist/hooks/__tests__/__screenshots__/use-styles.test.tsx/useStyles-handles-string-className-correctly-1.js +0 -1
  102. package/dist/hooks/__tests__/__screenshots__/use-styles.test.tsx/useStyles-merges-theme-and-component-styles-correctly-1.cjs +0 -1
  103. package/dist/hooks/__tests__/__screenshots__/use-styles.test.tsx/useStyles-merges-theme-and-component-styles-correctly-1.js +0 -1
  104. package/dist/hooks/__tests__/__screenshots__/use-styles.test.tsx/useStyles-should-remove-base-default-styles-but-keep-theme-and-component-classNames-when-noStyle--true-1.cjs +0 -1
  105. package/dist/hooks/__tests__/__screenshots__/use-styles.test.tsx/useStyles-should-remove-base-default-styles-but-keep-theme-and-component-classNames-when-noStyle--true-1.js +0 -1
  106. package/dist/hooks/__tests__/__screenshots__/use-styles.test.tsx/useStyles-should-remove-default-styles-but-keep-custom-classNames-when-theme-object-provides-noStyle--true-1.cjs +0 -1
  107. package/dist/hooks/__tests__/__screenshots__/use-styles.test.tsx/useStyles-should-remove-default-styles-but-keep-custom-classNames-when-theme-object-provides-noStyle--true-1.js +0 -1
  108. package/dist/hooks/__tests__/__screenshots__/use-theme.test.tsx/useTheme-local-theme-takes-precedence-over-global-theme-1.cjs +0 -1
  109. package/dist/hooks/__tests__/__screenshots__/use-theme.test.tsx/useTheme-local-theme-takes-precedence-over-global-theme-1.js +0 -1
  110. package/dist/hooks/__tests__/__screenshots__/use-translations.test.tsx/useTranslations-Custom-English-instead-of-English-when-German-is-selected-1.cjs +0 -1
  111. package/dist/hooks/__tests__/__screenshots__/use-translations.test.tsx/useTranslations-Custom-English-instead-of-English-when-German-is-selected-1.js +0 -1
  112. package/dist/hooks/__tests__/__screenshots__/use-translations.test.tsx/useTranslations-falls-back-to-English-when-selected-language-is-not-available-1.cjs +0 -1
  113. package/dist/hooks/__tests__/__screenshots__/use-translations.test.tsx/useTranslations-falls-back-to-English-when-selected-language-is-not-available-1.js +0 -1
  114. package/dist/hooks/__tests__/__screenshots__/use-translations.test.tsx/useTranslations-merges-custom-translations-with-defaults-1.cjs +0 -1
  115. package/dist/hooks/__tests__/__screenshots__/use-translations.test.tsx/useTranslations-merges-custom-translations-with-defaults-1.js +0 -1
  116. package/dist/hooks/__tests__/__screenshots__/use-translations.test.tsx/useTranslations-returns-English-translations-by-default-1.cjs +0 -1
  117. package/dist/hooks/__tests__/__screenshots__/use-translations.test.tsx/useTranslations-returns-English-translations-by-default-1.js +0 -1
  118. package/dist/hooks/__tests__/use-color-scheme.test.cjs +0 -1
  119. package/dist/hooks/__tests__/use-color-scheme.test.js +0 -1
  120. package/dist/hooks/__tests__/use-consent-manager.test.cjs +0 -1
  121. package/dist/hooks/__tests__/use-consent-manager.test.js +0 -1
  122. package/dist/hooks/__tests__/use-focus-trap.test.cjs +0 -1
  123. package/dist/hooks/__tests__/use-focus-trap.test.js +0 -1
  124. package/dist/hooks/__tests__/use-scroll-lock.test.cjs +0 -1
  125. package/dist/hooks/__tests__/use-scroll-lock.test.js +0 -1
  126. package/dist/hooks/__tests__/use-styles.test.cjs +0 -1
  127. package/dist/hooks/__tests__/use-styles.test.js +0 -1
  128. package/dist/hooks/__tests__/use-theme.test.cjs +0 -1
  129. package/dist/hooks/__tests__/use-theme.test.js +0 -1
  130. package/dist/hooks/__tests__/use-translations.test.cjs +0 -1
  131. package/dist/hooks/__tests__/use-translations.test.js +0 -1
  132. package/dist/mockServiceWorker.js +0 -349
  133. package/dist/providers/__tests__/__screenshots__/provider-basic.test.tsx/ConsentManagerProvider-Basic-Request-Behavior-should-make-a-new-request-when-core-options-change-1.cjs +0 -1
  134. package/dist/providers/__tests__/__screenshots__/provider-basic.test.tsx/ConsentManagerProvider-Basic-Request-Behavior-should-make-a-new-request-when-core-options-change-1.js +0 -1
  135. package/dist/providers/__tests__/__screenshots__/provider-basic.test.tsx/ConsentManagerProvider-Basic-Request-Behavior-should-not-make-additional-requests-when-props-change-but-core-options-remain-same-1.cjs +0 -1
  136. package/dist/providers/__tests__/__screenshots__/provider-basic.test.tsx/ConsentManagerProvider-Basic-Request-Behavior-should-not-make-additional-requests-when-props-change-but-core-options-remain-same-1.js +0 -1
  137. package/dist/providers/__tests__/__screenshots__/provider-basic.test.tsx/ConsentManagerProvider-Basic-Request-Behavior-should-only-make-one-initial-request-for-consent-banner-status-1.cjs +0 -1
  138. package/dist/providers/__tests__/__screenshots__/provider-basic.test.tsx/ConsentManagerProvider-Basic-Request-Behavior-should-only-make-one-initial-request-for-consent-banner-status-1.js +0 -1
  139. package/dist/providers/__tests__/__screenshots__/provider-hydration.test.tsx/ConsentManagerProvider-Hydration-Behavior-should-handle-rapid-re-renders-without-blocking-children-1.cjs +0 -1
  140. package/dist/providers/__tests__/__screenshots__/provider-hydration.test.tsx/ConsentManagerProvider-Hydration-Behavior-should-handle-rapid-re-renders-without-blocking-children-1.js +0 -1
  141. package/dist/providers/__tests__/__screenshots__/provider-hydration.test.tsx/ConsentManagerProvider-Hydration-Behavior-should-not-block-SSR-provider-content-when-SSR-provider-wraps-ConsentManager-1.cjs +0 -1
  142. package/dist/providers/__tests__/__screenshots__/provider-hydration.test.tsx/ConsentManagerProvider-Hydration-Behavior-should-not-block-SSR-provider-content-when-SSR-provider-wraps-ConsentManager-1.js +0 -1
  143. package/dist/providers/__tests__/__screenshots__/provider-hydration.test.tsx/ConsentManagerProvider-Hydration-Behavior-should-render-children-immediately-without-blocking-during-hydration-1.cjs +0 -1
  144. package/dist/providers/__tests__/__screenshots__/provider-hydration.test.tsx/ConsentManagerProvider-Hydration-Behavior-should-render-children-immediately-without-blocking-during-hydration-1.js +0 -1
  145. package/dist/providers/__tests__/__screenshots__/provider-hydration.test.tsx/ConsentManagerProvider-Hydration-Behavior-should-use-startTransition-for-non-blocking-state-updates-during-hydration-1.cjs +0 -1
  146. package/dist/providers/__tests__/__screenshots__/provider-hydration.test.tsx/ConsentManagerProvider-Hydration-Behavior-should-use-startTransition-for-non-blocking-state-updates-during-hydration-1.js +0 -1
  147. package/dist/providers/__tests__/provider-basic.test.cjs +0 -1
  148. package/dist/providers/__tests__/provider-basic.test.js +0 -1
  149. package/dist/providers/__tests__/provider-context.test.cjs +0 -1
  150. package/dist/providers/__tests__/provider-context.test.js +0 -1
  151. package/dist/providers/__tests__/provider-errors.test.cjs +0 -1
  152. package/dist/providers/__tests__/provider-errors.test.js +0 -1
  153. package/dist/providers/__tests__/provider-hydration.test.cjs +0 -1
  154. package/dist/providers/__tests__/provider-hydration.test.js +0 -1
  155. package/dist/providers/__tests__/test-helpers.cjs +0 -1
  156. package/dist/providers/__tests__/test-helpers.js +0 -1
  157. package/dist/server/headers.test.cjs +0 -1
  158. package/dist/server/headers.test.d.ts +0 -2
  159. package/dist/server/headers.test.d.ts.map +0 -1
  160. package/dist/server/headers.test.js +0 -1
  161. package/dist/server/normalize-url.test.cjs +0 -1
  162. package/dist/server/normalize-url.test.d.ts +0 -2
  163. package/dist/server/normalize-url.test.d.ts.map +0 -1
  164. package/dist/server/normalize-url.test.js +0 -1
  165. package/dist/static/image/ConsentManagerProvider-Basic-Request-Behavior-should-make-a-new-request-when-core-options-change-1.png +0 -0
  166. package/dist/static/image/ConsentManagerProvider-Basic-Request-Behavior-should-not-make-additional-requests-when-props-change-but-core-options-remain-same-1.png +0 -0
  167. package/dist/static/image/ConsentManagerProvider-Basic-Request-Behavior-should-only-make-one-initial-request-for-consent-banner-status-1.png +0 -0
  168. package/dist/static/image/ConsentManagerProvider-Hydration-Behavior-should-handle-rapid-re-renders-without-blocking-children-1.png +0 -0
  169. package/dist/static/image/ConsentManagerProvider-Hydration-Behavior-should-not-block-SSR-provider-content-when-SSR-provider-wraps-ConsentManager-1.png +0 -0
  170. package/dist/static/image/ConsentManagerProvider-Hydration-Behavior-should-render-children-immediately-without-blocking-during-hydration-1.png +0 -0
  171. package/dist/static/image/ConsentManagerProvider-Hydration-Behavior-should-use-startTransition-for-non-blocking-state-updates-during-hydration-1.png +0 -0
  172. package/dist/static/image/useColorScheme-cleans-up-system-preference-listener-on-unmount-1.png +0 -0
  173. package/dist/static/image/useColorScheme-handles-default-theme-based-on-document-class-1.png +0 -0
  174. package/dist/static/image/useColorScheme-responds-to-system-preference-1.png +0 -0
  175. package/dist/static/image/useColorScheme-sets-dark-theme-correctly-1.png +0 -0
  176. package/dist/static/image/useColorScheme-updates-theme-when-default-theme-changes-1.png +0 -0
  177. package/dist/static/image/useColorScheme-updates-theme-when-system-preference-changes-1.png +0 -0
  178. package/dist/static/image/useConsentManager-provides-manager-object-when-configured-1.png +0 -0
  179. package/dist/static/image/useStyles-handles-string-className-correctly-1.png +0 -0
  180. package/dist/static/image/useStyles-merges-theme-and-component-styles-correctly-1.png +0 -0
  181. package/dist/static/image/useStyles-should-remove-base-default-styles-but-keep-theme-and-component-classNames-when-noStyle--true-1.png +0 -0
  182. package/dist/static/image/useStyles-should-remove-default-styles-but-keep-custom-classNames-when-theme-object-provides-noStyle--true-1.png +0 -0
  183. package/dist/static/image/useTheme-local-theme-takes-precedence-over-global-theme-1.png +0 -0
  184. package/dist/static/image/useTranslations-Custom-English-instead-of-English-when-German-is-selected-1.png +0 -0
  185. package/dist/static/image/useTranslations-falls-back-to-English-when-selected-language-is-not-available-1.png +0 -0
  186. package/dist/static/image/useTranslations-merges-custom-translations-with-defaults-1.png +0 -0
  187. package/dist/static/image/useTranslations-returns-English-translations-by-default-1.png +0 -0
  188. package/dist/test-setup.browser.cjs +0 -1
  189. package/dist/test-setup.browser.d.ts +0 -8
  190. package/dist/test-setup.browser.d.ts.map +0 -1
  191. package/dist/test-setup.browser.js +0 -1
@@ -1 +0,0 @@
1
- "use strict";const __rslib_import_meta_url__="undefined"==typeof document?new(require("url".replace("",""))).URL("file:"+__filename).href:document.currentScript&&document.currentScript.src||new URL("main.js",document.baseURI).href;var __webpack_exports__={};const jsx_runtime_namespaceObject=require("react/jsx-runtime"),external_vitest_namespaceObject=require("vitest"),browser_namespaceObject=require("vitest/browser"),external_vitest_browser_react_namespaceObject=require("vitest-browser-react"),index_cjs_namespaceObject=require("../consent-banner/index.cjs"),external_consent_dialog_index_cjs_namespaceObject=require("../consent-dialog/index.cjs"),external_consent_widget_index_cjs_namespaceObject=require("../consent-widget/index.cjs"),consent_manager_provider_cjs_namespaceObject=require("../../providers/consent-manager-provider.cjs"),localStorageMock=(()=>{let e={};return{getItem:t=>e[t]||null,setItem:(t,a)=>{e[t]=a.toString()},removeItem:t=>{delete e[t]},clear:()=>{e={}}}})();Object.defineProperty(window,"localStorage",{value:localStorageMock});const defaultOptions={mode:"offline"};for(var __rspack_i in(0,external_vitest_namespaceObject.describe)("UI Source Tracking E2E Tests",()=>{(0,external_vitest_namespaceObject.beforeEach)(()=>{for(let e of(window.localStorage.clear(),document.cookie.split(";"))){let t=e.split("=")[0]?.trim();t&&(document.cookie=`${t}=;expires=Thu, 01 Jan 1970 00:00:00 GMT;path=/`)}external_vitest_namespaceObject.vi.clearAllMocks(),(0,consent_manager_provider_cjs_namespaceObject.clearConsentRuntimeCache)()}),(0,external_vitest_namespaceObject.describe)("Banner uiSource",()=>{(0,external_vitest_namespaceObject.test)("should render banner and save consent via accept button",async()=>{(0,external_vitest_browser_react_namespaceObject.render)((0,jsx_runtime_namespaceObject.jsx)(consent_manager_provider_cjs_namespaceObject.ConsentManagerProvider,{options:defaultOptions,children:(0,jsx_runtime_namespaceObject.jsx)(index_cjs_namespaceObject.ConsentBanner,{})})),await external_vitest_namespaceObject.vi.waitFor(()=>{let e=document.querySelector('[data-testid="consent-banner-accept-button"]');(0,external_vitest_namespaceObject.expect)(e).toBeInTheDocument()},{timeout:3e3});let e=document.querySelector('[data-testid="consent-banner-accept-button"]');await browser_namespaceObject.userEvent.click(e),await external_vitest_namespaceObject.vi.waitFor(()=>{let e=window.localStorage.getItem("c15t");(0,external_vitest_namespaceObject.expect)(e).toBeTruthy();let t=JSON.parse(e);(0,external_vitest_namespaceObject.expect)(t.consents.necessary).toBe(!0)},{timeout:3e3})}),(0,external_vitest_namespaceObject.test)("should render banner with custom uiSource prop",async()=>{(0,external_vitest_browser_react_namespaceObject.render)((0,jsx_runtime_namespaceObject.jsx)(consent_manager_provider_cjs_namespaceObject.ConsentManagerProvider,{options:defaultOptions,children:(0,jsx_runtime_namespaceObject.jsx)(index_cjs_namespaceObject.ConsentBanner,{uiSource:"custom_banner"})})),await external_vitest_namespaceObject.vi.waitFor(()=>{let e=document.querySelector('[data-testid="consent-banner-root"]');(0,external_vitest_namespaceObject.expect)(e).toBeInTheDocument()},{timeout:3e3})})}),(0,external_vitest_namespaceObject.describe)("Dialog uiSource",()=>{(0,external_vitest_namespaceObject.test)("should render dialog and save consent via accept button",async()=>{(0,external_vitest_browser_react_namespaceObject.render)((0,jsx_runtime_namespaceObject.jsx)(consent_manager_provider_cjs_namespaceObject.ConsentManagerProvider,{options:defaultOptions,children:(0,jsx_runtime_namespaceObject.jsx)(external_consent_dialog_index_cjs_namespaceObject.ConsentDialog,{open:!0})})),await external_vitest_namespaceObject.vi.waitFor(()=>{let e=document.querySelector('[data-testid="consent-dialog-root"]');(0,external_vitest_namespaceObject.expect)(e).toBeInTheDocument()},{timeout:3e3});let e=document.querySelector('[data-testid="consent-widget-footer-accept-all-button"]');e&&(await browser_namespaceObject.userEvent.click(e),await external_vitest_namespaceObject.vi.waitFor(()=>{let e=window.localStorage.getItem("c15t");(0,external_vitest_namespaceObject.expect)(e).toBeTruthy()},{timeout:3e3}))}),(0,external_vitest_namespaceObject.test)("should render dialog with custom uiSource prop",async()=>{(0,external_vitest_browser_react_namespaceObject.render)((0,jsx_runtime_namespaceObject.jsx)(consent_manager_provider_cjs_namespaceObject.ConsentManagerProvider,{options:defaultOptions,children:(0,jsx_runtime_namespaceObject.jsx)(external_consent_dialog_index_cjs_namespaceObject.ConsentDialog,{open:!0,uiSource:"custom_dialog"})})),await external_vitest_namespaceObject.vi.waitFor(()=>{let e=document.querySelector('[data-testid="consent-dialog-root"]');(0,external_vitest_namespaceObject.expect)(e).toBeInTheDocument()},{timeout:3e3})})}),(0,external_vitest_namespaceObject.describe)("Widget uiSource",()=>{(0,external_vitest_namespaceObject.test)("should render widget with default uiSource",async()=>{(0,external_vitest_browser_react_namespaceObject.render)((0,jsx_runtime_namespaceObject.jsx)(consent_manager_provider_cjs_namespaceObject.ConsentManagerProvider,{options:defaultOptions,children:(0,jsx_runtime_namespaceObject.jsx)(external_consent_widget_index_cjs_namespaceObject.ConsentWidget,{})})),await external_vitest_namespaceObject.vi.waitFor(()=>{let e=document.querySelector('[data-testid="consent-widget-root"]');(0,external_vitest_namespaceObject.expect)(e).toBeInTheDocument()},{timeout:3e3})})}),(0,external_vitest_namespaceObject.describe)("Banner to Dialog flow preserves correct uiSource",()=>{(0,external_vitest_namespaceObject.test)("should transition from banner to dialog and save from dialog",async()=>{(0,external_vitest_browser_react_namespaceObject.render)((0,jsx_runtime_namespaceObject.jsxs)(consent_manager_provider_cjs_namespaceObject.ConsentManagerProvider,{options:defaultOptions,children:[(0,jsx_runtime_namespaceObject.jsx)(index_cjs_namespaceObject.ConsentBanner,{}),(0,jsx_runtime_namespaceObject.jsx)(external_consent_dialog_index_cjs_namespaceObject.ConsentDialog,{})]})),await external_vitest_namespaceObject.vi.waitFor(()=>{let e=document.querySelector('[data-testid="consent-banner-root"]');(0,external_vitest_namespaceObject.expect)(e).toBeInTheDocument()},{timeout:3e3});let e=document.querySelector('[data-testid="consent-banner-customize-button"]');await browser_namespaceObject.userEvent.click(e),await external_vitest_namespaceObject.vi.waitFor(()=>{let e=document.querySelector('[data-testid="consent-dialog-root"]');(0,external_vitest_namespaceObject.expect)(e).toBeInTheDocument()},{timeout:3e3});let t=document.querySelector('[data-testid="consent-widget-footer-save-button"]');await browser_namespaceObject.userEvent.click(t),await external_vitest_namespaceObject.vi.waitFor(()=>{let e=window.localStorage.getItem("c15t");(0,external_vitest_namespaceObject.expect)(e).toBeTruthy();let t=JSON.parse(e);(0,external_vitest_namespaceObject.expect)(t.consents).toBeTruthy()},{timeout:3e3})})})}),__webpack_exports__)exports[__rspack_i]=__webpack_exports__[__rspack_i];Object.defineProperty(exports,"__esModule",{value:!0});
@@ -1 +0,0 @@
1
- let t;import{jsx as e,jsxs as o}from"react/jsx-runtime";import{beforeEach as n,describe as r,expect as a,test as i,vi as c}from"vitest";import{userEvent as u}from"vitest/browser";import{render as d}from"vitest-browser-react";import{ConsentBanner as s}from"../consent-banner/index.js";import{ConsentDialog as l}from"../consent-dialog/index.js";import{ConsentWidget as m}from"../consent-widget/index.js";import{ConsentManagerProvider as w,clearConsentRuntimeCache as p}from"../../providers/consent-manager-provider.js";Object.defineProperty(window,"localStorage",{value:(t={},{getItem:e=>t[e]||null,setItem:(e,o)=>{t[e]=o.toString()},removeItem:e=>{delete t[e]},clear:()=>{t={}}})});let g={mode:"offline"};r("UI Source Tracking E2E Tests",()=>{n(()=>{for(let t of(window.localStorage.clear(),document.cookie.split(";"))){let e=t.split("=")[0]?.trim();e&&(document.cookie=`${e}=;expires=Thu, 01 Jan 1970 00:00:00 GMT;path=/`)}c.clearAllMocks(),p()}),r("Banner uiSource",()=>{i("should render banner and save consent via accept button",async()=>{d(e(w,{options:g,children:e(s,{})})),await c.waitFor(()=>{a(document.querySelector('[data-testid="consent-banner-accept-button"]')).toBeInTheDocument()},{timeout:3e3});let t=document.querySelector('[data-testid="consent-banner-accept-button"]');await u.click(t),await c.waitFor(()=>{let t=window.localStorage.getItem("c15t");a(t).toBeTruthy(),a(JSON.parse(t).consents.necessary).toBe(!0)},{timeout:3e3})}),i("should render banner with custom uiSource prop",async()=>{d(e(w,{options:g,children:e(s,{uiSource:"custom_banner"})})),await c.waitFor(()=>{a(document.querySelector('[data-testid="consent-banner-root"]')).toBeInTheDocument()},{timeout:3e3})})}),r("Dialog uiSource",()=>{i("should render dialog and save consent via accept button",async()=>{d(e(w,{options:g,children:e(l,{open:!0})})),await c.waitFor(()=>{a(document.querySelector('[data-testid="consent-dialog-root"]')).toBeInTheDocument()},{timeout:3e3});let t=document.querySelector('[data-testid="consent-widget-footer-accept-all-button"]');t&&(await u.click(t),await c.waitFor(()=>{a(window.localStorage.getItem("c15t")).toBeTruthy()},{timeout:3e3}))}),i("should render dialog with custom uiSource prop",async()=>{d(e(w,{options:g,children:e(l,{open:!0,uiSource:"custom_dialog"})})),await c.waitFor(()=>{a(document.querySelector('[data-testid="consent-dialog-root"]')).toBeInTheDocument()},{timeout:3e3})})}),r("Widget uiSource",()=>{i("should render widget with default uiSource",async()=>{d(e(w,{options:g,children:e(m,{})})),await c.waitFor(()=>{a(document.querySelector('[data-testid="consent-widget-root"]')).toBeInTheDocument()},{timeout:3e3})})}),r("Banner to Dialog flow preserves correct uiSource",()=>{i("should transition from banner to dialog and save from dialog",async()=>{d(o(w,{options:g,children:[e(s,{}),e(l,{})]})),await c.waitFor(()=>{a(document.querySelector('[data-testid="consent-banner-root"]')).toBeInTheDocument()},{timeout:3e3});let t=document.querySelector('[data-testid="consent-banner-customize-button"]');await u.click(t),await c.waitFor(()=>{a(document.querySelector('[data-testid="consent-dialog-root"]')).toBeInTheDocument()},{timeout:3e3});let n=document.querySelector('[data-testid="consent-widget-footer-save-button"]');await u.click(n),await c.waitFor(()=>{let t=window.localStorage.getItem("c15t");a(t).toBeTruthy(),a(JSON.parse(t).consents).toBeTruthy()},{timeout:3e3})})})});
@@ -1 +0,0 @@
1
- "use strict";const __rslib_import_meta_url__="undefined"==typeof document?new(require("url".replace("",""))).URL("file:"+__filename).href:document.currentScript&&document.currentScript.src||new URL("main.js",document.baseURI).href;var __webpack_require__={};__webpack_require__.d=(e,t)=>{for(var r in t)__webpack_require__.o(t,r)&&!__webpack_require__.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},__webpack_require__.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),__webpack_require__.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var __webpack_exports__={};__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{addCMPEventListener:()=>addCMPEventListener,defaultIABOptions:()=>defaultIABOptions,waitForCMP:()=>waitForCMP,assertTCStringHasConsent:()=>assertTCStringHasConsent,getStoredConsent:()=>getStoredConsent,waitForElement:()=>waitForElement,waitForElementRemoved:()=>waitForElementRemoved,mockGVL:()=>mock_consent_state_cjs_namespaceObject.mockGVL,tcfApiPromise:()=>tcfApiPromise,getCMPTCData:()=>getCMPTCData,getStoredTCString:()=>getStoredTCString,createMockLocalStorage:()=>createMockLocalStorage,getCMPPingData:()=>getCMPPingData,removeCMPEventListener:()=>removeCMPEventListener,assertTCStringHasLIObjection:()=>assertTCStringHasLIObjection,clearConsentState:()=>clearConsentState});const external_c15t_namespaceObject=require("c15t"),external_vitest_namespaceObject=require("vitest"),mock_consent_state_cjs_namespaceObject=require("./fixtures/mock-consent-state.cjs");function createMockLocalStorage(){let e={};return{getItem:t=>e[t]||null,setItem:(t,r)=>{e[t]=r},removeItem:t=>{delete e[t]},clear:()=>{e={}},get length(){return Object.keys(e).length},key:t=>Object.keys(e)[t]||null}}function clearConsentState(){for(let e of(window.localStorage.clear(),document.cookie.split(";"))){let t=e.split("=")[0]?.trim();t&&(document.cookie=`${t}=;expires=Thu, 01 Jan 1970 00:00:00 GMT;path=/`,document.cookie=`${t}=;expires=Thu, 01 Jan 1970 00:00:00 GMT`)}"undefined"!=typeof window&&(delete window.__tcfapi,delete window.__tcfapiQueue),(0,external_c15t_namespaceObject.clearGVLCache)()}async function waitForCMP(e=5e3){return external_vitest_namespaceObject.vi.waitFor(()=>{if(!window.__tcfapi)throw Error("CMP not ready");return new Promise((e,t)=>{window.__tcfapi("ping",2,r=>{r?.cmpLoaded?e():t(Error("CMP not loaded"))})})},{timeout:e})}function tcfApiPromise(e,t=2,r){return new Promise((o,n)=>{let a=window.__tcfapi;a?a(e,t,(t,r)=>{r?o(t):n(Error(`__tcfapi ${e} failed`))},r):n(Error("__tcfapi not available"))})}async function getCMPPingData(){return tcfApiPromise("ping",2)}async function getCMPTCData(){return tcfApiPromise("getTCData",2)}function addCMPEventListener(){return new Promise((e,t)=>{let r=window.__tcfapi;r?r("addEventListener",2,t=>{e(t)}):t(Error("__tcfapi not available"))})}async function removeCMPEventListener(e){return tcfApiPromise("removeEventListener",2,e)}const defaultIABOptions={mode:"offline",iab:{enabled:!0,cmpId:160,cmpVersion:1,gvl:mock_consent_state_cjs_namespaceObject.mockGVL}};async function assertTCStringHasLIObjection(e){if(!0===(await getCMPTCData()).vendor.legitimateInterests[e])throw Error(`Expected vendor ${e} to have LI objection, but LI is granted`)}async function assertTCStringHasConsent(e){if(!0!==(await getCMPTCData()).purpose.consents[e])throw Error(`Expected purpose ${e} to have consent, but it does not`)}async function waitForElement(e,t=2e3){return external_vitest_namespaceObject.vi.waitFor(()=>{let t=document.querySelector(e);if(!t)throw Error(`Element ${e} not found`);return t},{timeout:t})}async function waitForElementRemoved(e,t=2e3){return external_vitest_namespaceObject.vi.waitFor(()=>{if(document.querySelector(e))throw Error(`Element ${e} still present`)},{timeout:t})}function getStoredConsent(){let e=window.localStorage.getItem("c15t");if(!e)return null;try{return JSON.parse(e)}catch{return null}}function getStoredTCString(){return window.localStorage.getItem("euconsent-v2")}for(var __rspack_i in exports.addCMPEventListener=__webpack_exports__.addCMPEventListener,exports.assertTCStringHasConsent=__webpack_exports__.assertTCStringHasConsent,exports.assertTCStringHasLIObjection=__webpack_exports__.assertTCStringHasLIObjection,exports.clearConsentState=__webpack_exports__.clearConsentState,exports.createMockLocalStorage=__webpack_exports__.createMockLocalStorage,exports.defaultIABOptions=__webpack_exports__.defaultIABOptions,exports.getCMPPingData=__webpack_exports__.getCMPPingData,exports.getCMPTCData=__webpack_exports__.getCMPTCData,exports.getStoredConsent=__webpack_exports__.getStoredConsent,exports.getStoredTCString=__webpack_exports__.getStoredTCString,exports.mockGVL=__webpack_exports__.mockGVL,exports.removeCMPEventListener=__webpack_exports__.removeCMPEventListener,exports.tcfApiPromise=__webpack_exports__.tcfApiPromise,exports.waitForCMP=__webpack_exports__.waitForCMP,exports.waitForElement=__webpack_exports__.waitForElement,exports.waitForElementRemoved=__webpack_exports__.waitForElementRemoved,__webpack_exports__)-1===["addCMPEventListener","assertTCStringHasConsent","assertTCStringHasLIObjection","clearConsentState","createMockLocalStorage","defaultIABOptions","getCMPPingData","getCMPTCData","getStoredConsent","getStoredTCString","mockGVL","removeCMPEventListener","tcfApiPromise","waitForCMP","waitForElement","waitForElementRemoved"].indexOf(__rspack_i)&&(exports[__rspack_i]=__webpack_exports__[__rspack_i]);Object.defineProperty(exports,"__esModule",{value:!0});
@@ -1 +0,0 @@
1
- import{clearGVLCache as e}from"c15t";import{vi as t}from"vitest";import{mockGVL as n}from"./fixtures/mock-consent-state.js";function r(){let e={};return{getItem:t=>e[t]||null,setItem:(t,n)=>{e[t]=n},removeItem:t=>{delete e[t]},clear:()=>{e={}},get length(){return Object.keys(e).length},key:t=>Object.keys(e)[t]||null}}function o(){for(let e of(window.localStorage.clear(),document.cookie.split(";"))){let t=e.split("=")[0]?.trim();t&&(document.cookie=`${t}=;expires=Thu, 01 Jan 1970 00:00:00 GMT;path=/`,document.cookie=`${t}=;expires=Thu, 01 Jan 1970 00:00:00 GMT`)}"undefined"!=typeof window&&(delete window.__tcfapi,delete window.__tcfapiQueue),e()}async function i(e=5e3){return t.waitFor(()=>{if(!window.__tcfapi)throw Error("CMP not ready");return new Promise((e,t)=>{window.__tcfapi("ping",2,n=>{n?.cmpLoaded?e():t(Error("CMP not loaded"))})})},{timeout:e})}function a(e,t=2,n){return new Promise((r,o)=>{let i=window.__tcfapi;i?i(e,t,(t,n)=>{n?r(t):o(Error(`__tcfapi ${e} failed`))},n):o(Error("__tcfapi not available"))})}async function c(){return a("ping",2)}async function u(){return a("getTCData",2)}function l(){return new Promise((e,t)=>{let n=window.__tcfapi;n?n("addEventListener",2,t=>{e(t)}):t(Error("__tcfapi not available"))})}async function s(e){return a("removeEventListener",2,e)}let d={mode:"offline",iab:{enabled:!0,cmpId:160,cmpVersion:1,gvl:n}};async function f(e){if(!0===(await u()).vendor.legitimateInterests[e])throw Error(`Expected vendor ${e} to have LI objection, but LI is granted`)}async function m(e){if(!0!==(await u()).purpose.consents[e])throw Error(`Expected purpose ${e} to have consent, but it does not`)}async function w(e,n=2e3){return t.waitFor(()=>{let t=document.querySelector(e);if(!t)throw Error(`Element ${e} not found`);return t},{timeout:n})}async function p(e,n=2e3){return t.waitFor(()=>{if(document.querySelector(e))throw Error(`Element ${e} still present`)},{timeout:n})}function g(){let e=window.localStorage.getItem("c15t");if(!e)return null;try{return JSON.parse(e)}catch{return null}}function E(){return window.localStorage.getItem("euconsent-v2")}export{l as addCMPEventListener,m as assertTCStringHasConsent,f as assertTCStringHasLIObjection,o as clearConsentState,r as createMockLocalStorage,d as defaultIABOptions,c as getCMPPingData,u as getCMPTCData,g as getStoredConsent,E as getStoredTCString,n as mockGVL,s as removeCMPEventListener,a as tcfApiPromise,i as waitForCMP,w as waitForElement,p as waitForElementRemoved};
@@ -1 +0,0 @@
1
- "use strict";const __rslib_import_meta_url__="undefined"==typeof document?new(require("url".replace("",""))).URL("file:"+__filename).href:document.currentScript&&document.currentScript.src||new URL("main.js",document.baseURI).href;var __webpack_require__={};__webpack_require__.d=(e,t)=>{for(var o in t)__webpack_require__.o(t,o)&&!__webpack_require__.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]})},__webpack_require__.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),__webpack_require__.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var __webpack_exports__={};__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{createMockIABState:()=>createMockIABState,createMockIABStateAllAccepted:()=>createMockIABStateAllAccepted,createMockIABStateLoading:()=>createMockIABStateLoading,createMockIABStateWithCustomVendors:()=>createMockIABStateWithCustomVendors,createMockIABStateWithLIObjections:()=>createMockIABStateWithLIObjections,mockCustomVendor:()=>mockCustomVendor,mockGVL:()=>mockGVL});const mockGVL={gvlSpecificationVersion:3,vendorListVersion:142,tcfPolicyVersion:5,lastUpdated:"2024-01-15T16:00:23Z",purposes:{1:{id:1,name:"Store and/or access information on a device",description:"Cookies, device or similar online identifiers...",illustrations:["Most purposes explained in this notice..."]},2:{id:2,name:"Use limited data to select advertising",description:"Advertising can be presented to you based on limited data...",illustrations:[]},3:{id:3,name:"Create profiles for personalised advertising",description:"Information about your activity on this service...",illustrations:[]},4:{id:4,name:"Use profiles to select personalised advertising",description:"Advertising can be presented to you based on a profile...",illustrations:[]},5:{id:5,name:"Create profiles to personalise content",description:"Information about your activity on this service...",illustrations:[]},6:{id:6,name:"Use profiles to select personalised content",description:"Content can be presented to you based on a profile...",illustrations:[]},7:{id:7,name:"Measure advertising performance",description:"The performance and effectiveness of ads...",illustrations:[]},8:{id:8,name:"Measure content performance",description:"The performance and effectiveness of content...",illustrations:[]},9:{id:9,name:"Understand audiences through statistics or combinations of data",description:"Reports can be generated based on the combination of data sets...",illustrations:[]},10:{id:10,name:"Develop and improve services",description:"Your data can be used to improve existing systems...",illustrations:[]},11:{id:11,name:"Use limited data to select content",description:"Content can be presented to you based on limited data...",illustrations:[]}},specialPurposes:{1:{id:1,name:"Ensure security, prevent and detect fraud, and fix errors",description:"Your data can be used to monitor for and prevent unusual...",illustrations:[]},2:{id:2,name:"Deliver and present advertising and content",description:"Certain information is used to ensure technical compatibility...",illustrations:[]}},features:{1:{id:1,name:"Match and combine data from other data sources",description:"Information about your activity on this service...",illustrations:[]},2:{id:2,name:"Link different devices",description:"In support of the purposes explained in this notice...",illustrations:[]},3:{id:3,name:"Identify devices based on information transmitted automatically",description:"Your device might be distinguished from other devices...",illustrations:[]}},specialFeatures:{1:{id:1,name:"Use precise geolocation data",description:"With your acceptance, your precise location...",illustrations:[]},2:{id:2,name:"Actively scan device characteristics for identification",description:"With your acceptance, certain characteristics specific to your device...",illustrations:[]}},vendors:{1:{id:1,name:"Exponential Interactive, Inc d/b/a VDX.tv",purposes:[1,2,3,4,7,9,10],legIntPurposes:[],flexiblePurposes:[],specialPurposes:[1,2],features:[1,2,3],specialFeatures:[1],cookieMaxAgeSeconds:7776e3,usesCookies:!0,cookieRefresh:!0,usesNonCookieAccess:!1,urls:[{langId:"en",privacy:"https://vdx.tv/privacy/"}]},2:{id:2,name:"Captify Technologies Limited",purposes:[1,2,3,4,5,6,7,8,9,10],legIntPurposes:[],flexiblePurposes:[2,7,8,9],specialPurposes:[1,2],features:[1,2,3],specialFeatures:[],cookieMaxAgeSeconds:31536e3,usesCookies:!0,cookieRefresh:!0,usesNonCookieAccess:!0,urls:[{langId:"en",privacy:"https://www.captifytechnologies.com/privacy-notice/"}]},10:{id:10,name:"Index Exchange, Inc.",purposes:[1],legIntPurposes:[2,7,9,10],flexiblePurposes:[],specialPurposes:[1,2],features:[2,3],specialFeatures:[],cookieMaxAgeSeconds:31536e3,usesCookies:!0,cookieRefresh:!0,usesNonCookieAccess:!1,urls:[{langId:"en",privacy:"https://www.indexexchange.com/privacy/"}]},755:{id:755,name:"Google Advertising Products",purposes:[1,2,3,4,5,6,7,8,9,10,11],legIntPurposes:[],flexiblePurposes:[2,7,9,10,11],specialPurposes:[1,2],features:[1,2,3],specialFeatures:[1,2],cookieMaxAgeSeconds:63072e3,usesCookies:!0,cookieRefresh:!0,usesNonCookieAccess:!0,urls:[{langId:"en",privacy:"https://policies.google.com/privacy"}]}},stacks:{1:{id:1,name:"Advertising based on limited data and advertising measurement",description:"Advertising can be presented based on limited data.",purposes:[2,7],specialFeatures:[]},2:{id:2,name:"Personalised advertising profile and target audience measurement",description:"Advertising can be personalised based on a profile.",purposes:[3,4,9],specialFeatures:[]},3:{id:3,name:"Content personalisation",description:"Content can be personalised based on a profile.",purposes:[5,6,11],specialFeatures:[]},4:{id:4,name:"Content measurement and product development",description:"Content performance can be measured.",purposes:[8,10],specialFeatures:[]}}};function createMockIABState(e){return{config:{enabled:!0,cmpId:160,cmpVersion:1},gvl:mockGVL,isLoadingGVL:!1,nonIABVendors:[],tcString:null,purposeConsents:{1:!1,2:!1,3:!1,4:!1,5:!1,6:!1,7:!1,8:!1,9:!1,10:!1,11:!1},purposeLegitimateInterests:{2:!0,3:!0,4:!0,5:!0,6:!0,7:!0,8:!0,9:!0,10:!0,11:!0},vendorConsents:{},vendorLegitimateInterests:{},specialFeatureOptIns:{1:!1,2:!1},vendorsDisclosed:{},cmpApi:null,preferenceCenterTab:"purposes",setPurposeConsent:()=>{},setPurposeLegitimateInterest:()=>{},setVendorConsent:()=>{},setVendorLegitimateInterest:()=>{},setSpecialFeatureOptIn:()=>{},setPreferenceCenterTab:()=>{},acceptAll:()=>{},rejectAll:()=>{},save:()=>{},_updateState:()=>{},...e}}function createMockIABStateAllAccepted(){return createMockIABState({purposeConsents:{1:!0,2:!0,3:!0,4:!0,5:!0,6:!0,7:!0,8:!0,9:!0,10:!0,11:!0},vendorConsents:{1:!0,2:!0,10:!0,755:!0},vendorLegitimateInterests:{1:!0,2:!0,10:!0,755:!0},specialFeatureOptIns:{1:!0,2:!0},vendorsDisclosed:{1:!0,2:!0,10:!0,755:!0}})}function createMockIABStateLoading(){return createMockIABState({gvl:null,isLoadingGVL:!0})}function createMockIABStateWithLIObjections(){return createMockIABState({purposeLegitimateInterests:{2:!0,3:!0,4:!0,5:!0,6:!0,7:!1,8:!0,9:!1,10:!0,11:!0},vendorLegitimateInterests:{1:!0,2:!0,10:!1,755:!0}})}const mockCustomVendor={id:"custom-analytics",name:"Custom Analytics Provider",privacyPolicyUrl:"https://analytics.example.com/privacy",description:"Custom analytics vendor for testing",purposes:[1,7,8,10],legIntPurposes:[9],features:[1],dataCategories:[1,2,6,8],usesCookies:!0,cookieMaxAgeSeconds:31536e3,dataRetentionDays:365};function createMockIABStateWithCustomVendors(){return{...createMockIABState(),nonIABVendors:[mockCustomVendor]}}for(var __rspack_i in exports.createMockIABState=__webpack_exports__.createMockIABState,exports.createMockIABStateAllAccepted=__webpack_exports__.createMockIABStateAllAccepted,exports.createMockIABStateLoading=__webpack_exports__.createMockIABStateLoading,exports.createMockIABStateWithCustomVendors=__webpack_exports__.createMockIABStateWithCustomVendors,exports.createMockIABStateWithLIObjections=__webpack_exports__.createMockIABStateWithLIObjections,exports.mockCustomVendor=__webpack_exports__.mockCustomVendor,exports.mockGVL=__webpack_exports__.mockGVL,__webpack_exports__)-1===["createMockIABState","createMockIABStateAllAccepted","createMockIABStateLoading","createMockIABStateWithCustomVendors","createMockIABStateWithLIObjections","mockCustomVendor","mockGVL"].indexOf(__rspack_i)&&(exports[__rspack_i]=__webpack_exports__[__rspack_i]);Object.defineProperty(exports,"__esModule",{value:!0});
@@ -1,212 +0,0 @@
1
- /**
2
- * Mock Consent State for IAB React Component Tests
3
- *
4
- * Provides mock IAB state objects for testing React components.
5
- *
6
- * @packageDocumentation
7
- */
8
- import type { GlobalVendorList } from 'c15t';
9
- /**
10
- * Mock GVL for React component testing
11
- */
12
- export declare const mockGVL: GlobalVendorList;
13
- /**
14
- * Mock IAB state for testing components
15
- */
16
- export declare function createMockIABState(overrides?: Partial<{
17
- gvl: GlobalVendorList | null;
18
- isLoadingGVL: boolean;
19
- purposeConsents: Record<number, boolean>;
20
- purposeLegitimateInterests: Record<number, boolean>;
21
- vendorConsents: Record<string, boolean>;
22
- vendorLegitimateInterests: Record<string, boolean>;
23
- specialFeatureOptIns: Record<number, boolean>;
24
- vendorsDisclosed: Record<number, boolean>;
25
- tcString: string | null;
26
- preferenceCenterTab: 'purposes' | 'vendors';
27
- }>): {
28
- gvl: GlobalVendorList | null;
29
- isLoadingGVL: boolean;
30
- purposeConsents: Record<number, boolean>;
31
- purposeLegitimateInterests: Record<number, boolean>;
32
- vendorConsents: Record<string, boolean>;
33
- vendorLegitimateInterests: Record<string, boolean>;
34
- specialFeatureOptIns: Record<number, boolean>;
35
- vendorsDisclosed: Record<number, boolean>;
36
- tcString: string | null;
37
- preferenceCenterTab: "purposes" | "vendors";
38
- config: {
39
- enabled: boolean;
40
- cmpId: number;
41
- cmpVersion: number;
42
- };
43
- nonIABVendors: never[];
44
- cmpApi: null;
45
- setPurposeConsent: () => void;
46
- setPurposeLegitimateInterest: () => void;
47
- setVendorConsent: () => void;
48
- setVendorLegitimateInterest: () => void;
49
- setSpecialFeatureOptIn: () => void;
50
- setPreferenceCenterTab: () => void;
51
- acceptAll: () => void;
52
- rejectAll: () => void;
53
- save: () => void;
54
- _updateState: () => void;
55
- };
56
- /**
57
- * Mock IAB state with all consents accepted
58
- */
59
- export declare function createMockIABStateAllAccepted(): {
60
- gvl: GlobalVendorList | null;
61
- isLoadingGVL: boolean;
62
- purposeConsents: Record<number, boolean>;
63
- purposeLegitimateInterests: Record<number, boolean>;
64
- vendorConsents: Record<string, boolean>;
65
- vendorLegitimateInterests: Record<string, boolean>;
66
- specialFeatureOptIns: Record<number, boolean>;
67
- vendorsDisclosed: Record<number, boolean>;
68
- tcString: string | null;
69
- preferenceCenterTab: "purposes" | "vendors";
70
- config: {
71
- enabled: boolean;
72
- cmpId: number;
73
- cmpVersion: number;
74
- };
75
- nonIABVendors: never[];
76
- cmpApi: null;
77
- setPurposeConsent: () => void;
78
- setPurposeLegitimateInterest: () => void;
79
- setVendorConsent: () => void;
80
- setVendorLegitimateInterest: () => void;
81
- setSpecialFeatureOptIn: () => void;
82
- setPreferenceCenterTab: () => void;
83
- acceptAll: () => void;
84
- rejectAll: () => void;
85
- save: () => void;
86
- _updateState: () => void;
87
- };
88
- /**
89
- * Mock IAB state with loading GVL
90
- */
91
- export declare function createMockIABStateLoading(): {
92
- gvl: GlobalVendorList | null;
93
- isLoadingGVL: boolean;
94
- purposeConsents: Record<number, boolean>;
95
- purposeLegitimateInterests: Record<number, boolean>;
96
- vendorConsents: Record<string, boolean>;
97
- vendorLegitimateInterests: Record<string, boolean>;
98
- specialFeatureOptIns: Record<number, boolean>;
99
- vendorsDisclosed: Record<number, boolean>;
100
- tcString: string | null;
101
- preferenceCenterTab: "purposes" | "vendors";
102
- config: {
103
- enabled: boolean;
104
- cmpId: number;
105
- cmpVersion: number;
106
- };
107
- nonIABVendors: never[];
108
- cmpApi: null;
109
- setPurposeConsent: () => void;
110
- setPurposeLegitimateInterest: () => void;
111
- setVendorConsent: () => void;
112
- setVendorLegitimateInterest: () => void;
113
- setSpecialFeatureOptIn: () => void;
114
- setPreferenceCenterTab: () => void;
115
- acceptAll: () => void;
116
- rejectAll: () => void;
117
- save: () => void;
118
- _updateState: () => void;
119
- };
120
- /**
121
- * Mock IAB state with LI objections
122
- */
123
- export declare function createMockIABStateWithLIObjections(): {
124
- gvl: GlobalVendorList | null;
125
- isLoadingGVL: boolean;
126
- purposeConsents: Record<number, boolean>;
127
- purposeLegitimateInterests: Record<number, boolean>;
128
- vendorConsents: Record<string, boolean>;
129
- vendorLegitimateInterests: Record<string, boolean>;
130
- specialFeatureOptIns: Record<number, boolean>;
131
- vendorsDisclosed: Record<number, boolean>;
132
- tcString: string | null;
133
- preferenceCenterTab: "purposes" | "vendors";
134
- config: {
135
- enabled: boolean;
136
- cmpId: number;
137
- cmpVersion: number;
138
- };
139
- nonIABVendors: never[];
140
- cmpApi: null;
141
- setPurposeConsent: () => void;
142
- setPurposeLegitimateInterest: () => void;
143
- setVendorConsent: () => void;
144
- setVendorLegitimateInterest: () => void;
145
- setSpecialFeatureOptIn: () => void;
146
- setPreferenceCenterTab: () => void;
147
- acceptAll: () => void;
148
- rejectAll: () => void;
149
- save: () => void;
150
- _updateState: () => void;
151
- };
152
- /**
153
- * Custom vendor for testing non-IAB vendors
154
- */
155
- export declare const mockCustomVendor: {
156
- id: string;
157
- name: string;
158
- privacyPolicyUrl: string;
159
- description: string;
160
- purposes: number[];
161
- legIntPurposes: number[];
162
- features: number[];
163
- dataCategories: number[];
164
- usesCookies: boolean;
165
- cookieMaxAgeSeconds: number;
166
- dataRetentionDays: number;
167
- };
168
- /**
169
- * Mock IAB state with custom vendors
170
- */
171
- export declare function createMockIABStateWithCustomVendors(): {
172
- nonIABVendors: {
173
- id: string;
174
- name: string;
175
- privacyPolicyUrl: string;
176
- description: string;
177
- purposes: number[];
178
- legIntPurposes: number[];
179
- features: number[];
180
- dataCategories: number[];
181
- usesCookies: boolean;
182
- cookieMaxAgeSeconds: number;
183
- dataRetentionDays: number;
184
- }[];
185
- gvl: GlobalVendorList | null;
186
- isLoadingGVL: boolean;
187
- purposeConsents: Record<number, boolean>;
188
- purposeLegitimateInterests: Record<number, boolean>;
189
- vendorConsents: Record<string, boolean>;
190
- vendorLegitimateInterests: Record<string, boolean>;
191
- specialFeatureOptIns: Record<number, boolean>;
192
- vendorsDisclosed: Record<number, boolean>;
193
- tcString: string | null;
194
- preferenceCenterTab: "purposes" | "vendors";
195
- config: {
196
- enabled: boolean;
197
- cmpId: number;
198
- cmpVersion: number;
199
- };
200
- cmpApi: null;
201
- setPurposeConsent: () => void;
202
- setPurposeLegitimateInterest: () => void;
203
- setVendorConsent: () => void;
204
- setVendorLegitimateInterest: () => void;
205
- setSpecialFeatureOptIn: () => void;
206
- setPreferenceCenterTab: () => void;
207
- acceptAll: () => void;
208
- rejectAll: () => void;
209
- save: () => void;
210
- _updateState: () => void;
211
- };
212
- //# sourceMappingURL=mock-consent-state.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"mock-consent-state.d.ts","sourceRoot":"","sources":["../../../../../src/components/iab/__tests__/fixtures/mock-consent-state.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,MAAM,CAAC;AAE7C;;GAEG;AACH,eAAO,MAAM,OAAO,EAAE,gBAiOrB,CAAC;AAEF;;GAEG;AACH,wBAAgB,kBAAkB,CACjC,SAAS,CAAC,EAAE,OAAO,CAAC;IACnB,GAAG,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAC7B,YAAY,EAAE,OAAO,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACzC,0BAA0B,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpD,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACxC,yBAAyB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnD,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9C,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC1C,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,mBAAmB,EAAE,UAAU,GAAG,SAAS,CAAC;CAC5C,CAAC;SAVI,gBAAgB,GAAG,IAAI;kBACd,OAAO;qBACJ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;gCACZ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;oBACnC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;+BACZ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;0BAC5B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;sBAC3B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;cAC/B,MAAM,GAAG,IAAI;yBACF,UAAU,GAAG,SAAS;;;;;;;;;;;;;;;;;;EA4D5C;AAED;;GAEG;AACH,wBAAgB,6BAA6B;SA1EtC,gBAAgB,GAAG,IAAI;kBACd,OAAO;qBACJ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;gCACZ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;oBACnC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;+BACZ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;0BAC5B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;sBAC3B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;cAC/B,MAAM,GAAG,IAAI;yBACF,UAAU,GAAG,SAAS;;;;;;;;;;;;;;;;;;EAuG5C;AAED;;GAEG;AACH,wBAAgB,yBAAyB;SArHlC,gBAAgB,GAAG,IAAI;kBACd,OAAO;qBACJ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;gCACZ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;oBACnC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;+BACZ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;0BAC5B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;sBAC3B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;cAC/B,MAAM,GAAG,IAAI;yBACF,UAAU,GAAG,SAAS;;;;;;;;;;;;;;;;;;EAiH5C;AAED;;GAEG;AACH,wBAAgB,kCAAkC;SA/H3C,gBAAgB,GAAG,IAAI;kBACd,OAAO;qBACJ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;gCACZ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;oBACnC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;+BACZ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;0BAC5B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;sBAC3B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;cAC/B,MAAM,GAAG,IAAI;yBACF,UAAU,GAAG,SAAS;;;;;;;;;;;;;;;;;;EA2I5C;AAED;;GAEG;AACH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;CAY5B,CAAC;AAEF;;GAEG;AACH,wBAAgB,mCAAmC;;;;;;;;;;;;;;SA1K5C,gBAAgB,GAAG,IAAI;kBACd,OAAO;qBACJ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;gCACZ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;oBACnC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;+BACZ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;0BAC5B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;sBAC3B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;cAC/B,MAAM,GAAG,IAAI;yBACF,UAAU,GAAG,SAAS;;;;;;;;;;;;;;;;;EAsK5C"}
@@ -1 +0,0 @@
1
- let e={gvlSpecificationVersion:3,vendorListVersion:142,tcfPolicyVersion:5,lastUpdated:"2024-01-15T16:00:23Z",purposes:{1:{id:1,name:"Store and/or access information on a device",description:"Cookies, device or similar online identifiers...",illustrations:["Most purposes explained in this notice..."]},2:{id:2,name:"Use limited data to select advertising",description:"Advertising can be presented to you based on limited data...",illustrations:[]},3:{id:3,name:"Create profiles for personalised advertising",description:"Information about your activity on this service...",illustrations:[]},4:{id:4,name:"Use profiles to select personalised advertising",description:"Advertising can be presented to you based on a profile...",illustrations:[]},5:{id:5,name:"Create profiles to personalise content",description:"Information about your activity on this service...",illustrations:[]},6:{id:6,name:"Use profiles to select personalised content",description:"Content can be presented to you based on a profile...",illustrations:[]},7:{id:7,name:"Measure advertising performance",description:"The performance and effectiveness of ads...",illustrations:[]},8:{id:8,name:"Measure content performance",description:"The performance and effectiveness of content...",illustrations:[]},9:{id:9,name:"Understand audiences through statistics or combinations of data",description:"Reports can be generated based on the combination of data sets...",illustrations:[]},10:{id:10,name:"Develop and improve services",description:"Your data can be used to improve existing systems...",illustrations:[]},11:{id:11,name:"Use limited data to select content",description:"Content can be presented to you based on limited data...",illustrations:[]}},specialPurposes:{1:{id:1,name:"Ensure security, prevent and detect fraud, and fix errors",description:"Your data can be used to monitor for and prevent unusual...",illustrations:[]},2:{id:2,name:"Deliver and present advertising and content",description:"Certain information is used to ensure technical compatibility...",illustrations:[]}},features:{1:{id:1,name:"Match and combine data from other data sources",description:"Information about your activity on this service...",illustrations:[]},2:{id:2,name:"Link different devices",description:"In support of the purposes explained in this notice...",illustrations:[]},3:{id:3,name:"Identify devices based on information transmitted automatically",description:"Your device might be distinguished from other devices...",illustrations:[]}},specialFeatures:{1:{id:1,name:"Use precise geolocation data",description:"With your acceptance, your precise location...",illustrations:[]},2:{id:2,name:"Actively scan device characteristics for identification",description:"With your acceptance, certain characteristics specific to your device...",illustrations:[]}},vendors:{1:{id:1,name:"Exponential Interactive, Inc d/b/a VDX.tv",purposes:[1,2,3,4,7,9,10],legIntPurposes:[],flexiblePurposes:[],specialPurposes:[1,2],features:[1,2,3],specialFeatures:[1],cookieMaxAgeSeconds:7776e3,usesCookies:!0,cookieRefresh:!0,usesNonCookieAccess:!1,urls:[{langId:"en",privacy:"https://vdx.tv/privacy/"}]},2:{id:2,name:"Captify Technologies Limited",purposes:[1,2,3,4,5,6,7,8,9,10],legIntPurposes:[],flexiblePurposes:[2,7,8,9],specialPurposes:[1,2],features:[1,2,3],specialFeatures:[],cookieMaxAgeSeconds:31536e3,usesCookies:!0,cookieRefresh:!0,usesNonCookieAccess:!0,urls:[{langId:"en",privacy:"https://www.captifytechnologies.com/privacy-notice/"}]},10:{id:10,name:"Index Exchange, Inc.",purposes:[1],legIntPurposes:[2,7,9,10],flexiblePurposes:[],specialPurposes:[1,2],features:[2,3],specialFeatures:[],cookieMaxAgeSeconds:31536e3,usesCookies:!0,cookieRefresh:!0,usesNonCookieAccess:!1,urls:[{langId:"en",privacy:"https://www.indexexchange.com/privacy/"}]},755:{id:755,name:"Google Advertising Products",purposes:[1,2,3,4,5,6,7,8,9,10,11],legIntPurposes:[],flexiblePurposes:[2,7,9,10,11],specialPurposes:[1,2],features:[1,2,3],specialFeatures:[1,2],cookieMaxAgeSeconds:63072e3,usesCookies:!0,cookieRefresh:!0,usesNonCookieAccess:!0,urls:[{langId:"en",privacy:"https://policies.google.com/privacy"}]}},stacks:{1:{id:1,name:"Advertising based on limited data and advertising measurement",description:"Advertising can be presented based on limited data.",purposes:[2,7],specialFeatures:[]},2:{id:2,name:"Personalised advertising profile and target audience measurement",description:"Advertising can be personalised based on a profile.",purposes:[3,4,9],specialFeatures:[]},3:{id:3,name:"Content personalisation",description:"Content can be personalised based on a profile.",purposes:[5,6,11],specialFeatures:[]},4:{id:4,name:"Content measurement and product development",description:"Content performance can be measured.",purposes:[8,10],specialFeatures:[]}}};function s(s){return{config:{enabled:!0,cmpId:160,cmpVersion:1},gvl:e,isLoadingGVL:!1,nonIABVendors:[],tcString:null,purposeConsents:{1:!1,2:!1,3:!1,4:!1,5:!1,6:!1,7:!1,8:!1,9:!1,10:!1,11:!1},purposeLegitimateInterests:{2:!0,3:!0,4:!0,5:!0,6:!0,7:!0,8:!0,9:!0,10:!0,11:!0},vendorConsents:{},vendorLegitimateInterests:{},specialFeatureOptIns:{1:!1,2:!1},vendorsDisclosed:{},cmpApi:null,preferenceCenterTab:"purposes",setPurposeConsent:()=>{},setPurposeLegitimateInterest:()=>{},setVendorConsent:()=>{},setVendorLegitimateInterest:()=>{},setSpecialFeatureOptIn:()=>{},setPreferenceCenterTab:()=>{},acceptAll:()=>{},rejectAll:()=>{},save:()=>{},_updateState:()=>{},...s}}function t(){return s({purposeConsents:{1:!0,2:!0,3:!0,4:!0,5:!0,6:!0,7:!0,8:!0,9:!0,10:!0,11:!0},vendorConsents:{1:!0,2:!0,10:!0,755:!0},vendorLegitimateInterests:{1:!0,2:!0,10:!0,755:!0},specialFeatureOptIns:{1:!0,2:!0},vendorsDisclosed:{1:!0,2:!0,10:!0,755:!0}})}function i(){return s({gvl:null,isLoadingGVL:!0})}function n(){return s({purposeLegitimateInterests:{2:!0,3:!0,4:!0,5:!0,6:!0,7:!1,8:!0,9:!1,10:!0,11:!0},vendorLegitimateInterests:{1:!0,2:!0,10:!1,755:!0}})}let o={id:"custom-analytics",name:"Custom Analytics Provider",privacyPolicyUrl:"https://analytics.example.com/privacy",description:"Custom analytics vendor for testing",purposes:[1,7,8,10],legIntPurposes:[9],features:[1],dataCategories:[1,2,6,8],usesCookies:!0,cookieMaxAgeSeconds:31536e3,dataRetentionDays:365};function a(){return{...s(),nonIABVendors:[o]}}export{s as createMockIABState,t as createMockIABStateAllAccepted,i as createMockIABStateLoading,a as createMockIABStateWithCustomVendors,n as createMockIABStateWithLIObjections,o as mockCustomVendor,e as mockGVL};
@@ -1 +0,0 @@
1
- "use strict";const __rslib_import_meta_url__="undefined"==typeof document?new(require("url".replace("",""))).URL("file:"+__filename).href:document.currentScript&&document.currentScript.src||new URL("main.js",document.baseURI).href;var __webpack_exports__={};const jsx_runtime_namespaceObject=require("react/jsx-runtime"),context_namespaceObject=require("@vitest/browser/context"),external_vitest_namespaceObject=require("vitest"),external_vitest_browser_react_namespaceObject=require("vitest-browser-react"),index_cjs_namespaceObject=require("../../iab-consent-banner/index.cjs"),external_iab_consent_dialog_index_cjs_namespaceObject=require("../../iab-consent-dialog/index.cjs"),consent_manager_provider_cjs_namespaceObject=require("../../../providers/consent-manager-provider.cjs"),external_e2e_setup_cjs_namespaceObject=require("./e2e-setup.cjs");for(var __rspack_i in(0,external_vitest_namespaceObject.describe)("IAB Banner E2E Tests",()=>{(0,external_vitest_namespaceObject.beforeEach)(()=>{(0,external_e2e_setup_cjs_namespaceObject.clearConsentState)(),external_vitest_namespaceObject.vi.clearAllMocks(),(0,consent_manager_provider_cjs_namespaceObject.clearConsentRuntimeCache)()}),(0,external_vitest_namespaceObject.describe)("Banner Display Requirements (IAB Appendix B)",()=>{(0,external_vitest_namespaceObject.test)("should show IAB banner with correct initial display",async()=>{(0,external_vitest_browser_react_namespaceObject.render)((0,jsx_runtime_namespaceObject.jsxs)(consent_manager_provider_cjs_namespaceObject.ConsentManagerProvider,{options:external_e2e_setup_cjs_namespaceObject.defaultIABOptions,children:[(0,jsx_runtime_namespaceObject.jsx)(index_cjs_namespaceObject.IABConsentBanner,{}),(0,jsx_runtime_namespaceObject.jsx)(external_iab_consent_dialog_index_cjs_namespaceObject.IABConsentDialog,{})]})),await (0,external_e2e_setup_cjs_namespaceObject.waitForElement)('[data-testid="iab-consent-banner-card"]'),(0,external_vitest_namespaceObject.expect)(document.querySelector('[data-testid="iab-consent-banner-card"]')).toBeInTheDocument(),(0,external_vitest_namespaceObject.expect)(document.querySelector('[data-testid="iab-consent-banner-header"]')).toBeInTheDocument(),(0,external_vitest_namespaceObject.expect)(document.querySelector('[data-testid="iab-consent-banner-footer"]')).toBeInTheDocument()}),(0,external_vitest_namespaceObject.test)("should display partner/vendor count from GVL",async()=>{(0,external_vitest_browser_react_namespaceObject.render)((0,jsx_runtime_namespaceObject.jsxs)(consent_manager_provider_cjs_namespaceObject.ConsentManagerProvider,{options:external_e2e_setup_cjs_namespaceObject.defaultIABOptions,children:[(0,jsx_runtime_namespaceObject.jsx)(index_cjs_namespaceObject.IABConsentBanner,{}),(0,jsx_runtime_namespaceObject.jsx)(external_iab_consent_dialog_index_cjs_namespaceObject.IABConsentDialog,{})]})),await (0,external_e2e_setup_cjs_namespaceObject.waitForElement)('[data-testid="iab-consent-banner-card"]');let e=document.querySelector('[data-testid="iab-consent-banner-header"]')?.textContent||"";(0,external_vitest_namespaceObject.expect)(e).toMatch(/\d+/)}),(0,external_vitest_namespaceObject.test)("should display purpose summary with stack grouping",async()=>{(0,external_vitest_browser_react_namespaceObject.render)((0,jsx_runtime_namespaceObject.jsxs)(consent_manager_provider_cjs_namespaceObject.ConsentManagerProvider,{options:external_e2e_setup_cjs_namespaceObject.defaultIABOptions,children:[(0,jsx_runtime_namespaceObject.jsx)(index_cjs_namespaceObject.IABConsentBanner,{}),(0,jsx_runtime_namespaceObject.jsx)(external_iab_consent_dialog_index_cjs_namespaceObject.IABConsentDialog,{})]})),await (0,external_e2e_setup_cjs_namespaceObject.waitForElement)('[data-testid="iab-consent-banner-card"]');let e=document.querySelector('[data-testid="iab-consent-banner-header"]');(0,external_vitest_namespaceObject.expect)(e).toBeInTheDocument()}),(0,external_vitest_namespaceObject.test)("should display legitimate interest notice",async()=>{(0,external_vitest_browser_react_namespaceObject.render)((0,jsx_runtime_namespaceObject.jsxs)(consent_manager_provider_cjs_namespaceObject.ConsentManagerProvider,{options:external_e2e_setup_cjs_namespaceObject.defaultIABOptions,children:[(0,jsx_runtime_namespaceObject.jsx)(index_cjs_namespaceObject.IABConsentBanner,{}),(0,jsx_runtime_namespaceObject.jsx)(external_iab_consent_dialog_index_cjs_namespaceObject.IABConsentDialog,{})]})),await (0,external_e2e_setup_cjs_namespaceObject.waitForElement)('[data-testid="iab-consent-banner-card"]');let e=document.querySelector('[data-testid="iab-consent-banner-header"]')?.textContent||"";(0,external_vitest_namespaceObject.expect)(e.toLowerCase()).toContain("legitimate")})}),(0,external_vitest_namespaceObject.describe)("Banner CTA Requirements",()=>{(0,external_vitest_namespaceObject.test)("should have Accept, Reject, and Customize buttons",async()=>{(0,external_vitest_browser_react_namespaceObject.render)((0,jsx_runtime_namespaceObject.jsxs)(consent_manager_provider_cjs_namespaceObject.ConsentManagerProvider,{options:external_e2e_setup_cjs_namespaceObject.defaultIABOptions,children:[(0,jsx_runtime_namespaceObject.jsx)(index_cjs_namespaceObject.IABConsentBanner,{}),(0,jsx_runtime_namespaceObject.jsx)(external_iab_consent_dialog_index_cjs_namespaceObject.IABConsentDialog,{})]})),await (0,external_e2e_setup_cjs_namespaceObject.waitForElement)('[data-testid="iab-consent-banner-card"]'),(0,external_vitest_namespaceObject.expect)(document.querySelector('[data-testid="iab-consent-banner-accept-button"]')).toBeInTheDocument(),(0,external_vitest_namespaceObject.expect)(document.querySelector('[data-testid="iab-consent-banner-reject-button"]')).toBeInTheDocument(),(0,external_vitest_namespaceObject.expect)(document.querySelector('[data-testid="iab-consent-banner-customize-button"]')).toBeInTheDocument()})}),(0,external_vitest_namespaceObject.describe)("Banner Actions",()=>{(0,external_vitest_namespaceObject.test)("should accept all via banner and close",async()=>{(0,external_vitest_browser_react_namespaceObject.render)((0,jsx_runtime_namespaceObject.jsxs)(consent_manager_provider_cjs_namespaceObject.ConsentManagerProvider,{options:external_e2e_setup_cjs_namespaceObject.defaultIABOptions,children:[(0,jsx_runtime_namespaceObject.jsx)(index_cjs_namespaceObject.IABConsentBanner,{}),(0,jsx_runtime_namespaceObject.jsx)(external_iab_consent_dialog_index_cjs_namespaceObject.IABConsentDialog,{})]}));let e=await (0,external_e2e_setup_cjs_namespaceObject.waitForElement)('[data-testid="iab-consent-banner-accept-button"]');await context_namespaceObject.userEvent.click(e),await (0,external_e2e_setup_cjs_namespaceObject.waitForElementRemoved)('[data-testid="iab-consent-banner-card"]'),await external_vitest_namespaceObject.vi.waitFor(()=>{let e=(0,external_e2e_setup_cjs_namespaceObject.getStoredConsent)();(0,external_vitest_namespaceObject.expect)(e).toBeTruthy()},{timeout:1e3})}),(0,external_vitest_namespaceObject.test)("should reject all via banner and close",async()=>{(0,external_vitest_browser_react_namespaceObject.render)((0,jsx_runtime_namespaceObject.jsxs)(consent_manager_provider_cjs_namespaceObject.ConsentManagerProvider,{options:external_e2e_setup_cjs_namespaceObject.defaultIABOptions,children:[(0,jsx_runtime_namespaceObject.jsx)(index_cjs_namespaceObject.IABConsentBanner,{}),(0,jsx_runtime_namespaceObject.jsx)(external_iab_consent_dialog_index_cjs_namespaceObject.IABConsentDialog,{})]}));let e=await (0,external_e2e_setup_cjs_namespaceObject.waitForElement)('[data-testid="iab-consent-banner-reject-button"]');await context_namespaceObject.userEvent.click(e),await (0,external_e2e_setup_cjs_namespaceObject.waitForElementRemoved)('[data-testid="iab-consent-banner-card"]');let t=(0,external_e2e_setup_cjs_namespaceObject.getStoredConsent)();(0,external_vitest_namespaceObject.expect)(t?.consents?.necessary).toBe(!0)}),(0,external_vitest_namespaceObject.test)("should open preference center from banner",async()=>{(0,external_vitest_browser_react_namespaceObject.render)((0,jsx_runtime_namespaceObject.jsxs)(consent_manager_provider_cjs_namespaceObject.ConsentManagerProvider,{options:external_e2e_setup_cjs_namespaceObject.defaultIABOptions,children:[(0,jsx_runtime_namespaceObject.jsx)(index_cjs_namespaceObject.IABConsentBanner,{}),(0,jsx_runtime_namespaceObject.jsx)(external_iab_consent_dialog_index_cjs_namespaceObject.IABConsentDialog,{})]}));let e=await (0,external_e2e_setup_cjs_namespaceObject.waitForElement)('[data-testid="iab-consent-banner-customize-button"]');await context_namespaceObject.userEvent.click(e),await (0,external_e2e_setup_cjs_namespaceObject.waitForElement)('[data-testid="iab-consent-dialog-root"]')})}),(0,external_vitest_namespaceObject.describe)("Banner Accessibility",()=>{(0,external_vitest_namespaceObject.test)("should have ARIA labels",async()=>{(0,external_vitest_browser_react_namespaceObject.render)((0,jsx_runtime_namespaceObject.jsxs)(consent_manager_provider_cjs_namespaceObject.ConsentManagerProvider,{options:external_e2e_setup_cjs_namespaceObject.defaultIABOptions,children:[(0,jsx_runtime_namespaceObject.jsx)(index_cjs_namespaceObject.IABConsentBanner,{}),(0,jsx_runtime_namespaceObject.jsx)(external_iab_consent_dialog_index_cjs_namespaceObject.IABConsentDialog,{})]}));let e=await (0,external_e2e_setup_cjs_namespaceObject.waitForElement)('[data-testid="iab-consent-banner-card"]');(0,external_vitest_namespaceObject.expect)(e.getAttribute("role")).toBe("dialog"),(0,external_vitest_namespaceObject.expect)(e.getAttribute("aria-label")).toBeTruthy()}),(0,external_vitest_namespaceObject.test)("should be keyboard accessible",async()=>{(0,external_vitest_browser_react_namespaceObject.render)((0,jsx_runtime_namespaceObject.jsxs)(consent_manager_provider_cjs_namespaceObject.ConsentManagerProvider,{options:external_e2e_setup_cjs_namespaceObject.defaultIABOptions,children:[(0,jsx_runtime_namespaceObject.jsx)(index_cjs_namespaceObject.IABConsentBanner,{}),(0,jsx_runtime_namespaceObject.jsx)(external_iab_consent_dialog_index_cjs_namespaceObject.IABConsentDialog,{})]}));let e=await (0,external_e2e_setup_cjs_namespaceObject.waitForElement)('[data-testid="iab-consent-banner-reject-button"]'),t=document.querySelector('[data-testid="iab-consent-banner-customize-button"]'),a=document.querySelector('[data-testid="iab-consent-banner-accept-button"]');e.focus(),(0,external_vitest_namespaceObject.expect)(document.activeElement).toBe(e),t.focus(),(0,external_vitest_namespaceObject.expect)(document.activeElement).toBe(t),a.focus(),(0,external_vitest_namespaceObject.expect)(document.activeElement).toBe(a)})})}),__webpack_exports__)exports[__rspack_i]=__webpack_exports__[__rspack_i];Object.defineProperty(exports,"__esModule",{value:!0});
@@ -1 +0,0 @@
1
- import{jsx as t,jsxs as e}from"react/jsx-runtime";import{userEvent as n}from"@vitest/browser/context";import{beforeEach as a,describe as o,expect as i,test as c,vi as r}from"vitest";import{render as s}from"vitest-browser-react";import{IABConsentBanner as d}from"../../iab-consent-banner/index.js";import{IABConsentDialog as b}from"../../iab-consent-dialog/index.js";import{ConsentManagerProvider as u,clearConsentRuntimeCache as l}from"../../../providers/consent-manager-provider.js";import{clearConsentState as m,defaultIABOptions as h,getStoredConsent as p,waitForElement as y,waitForElementRemoved as w}from"./e2e-setup.js";o("IAB Banner E2E Tests",()=>{a(()=>{m(),r.clearAllMocks(),l()}),o("Banner Display Requirements (IAB Appendix B)",()=>{c("should show IAB banner with correct initial display",async()=>{s(e(u,{options:h,children:[t(d,{}),t(b,{})]})),await y('[data-testid="iab-consent-banner-card"]'),i(document.querySelector('[data-testid="iab-consent-banner-card"]')).toBeInTheDocument(),i(document.querySelector('[data-testid="iab-consent-banner-header"]')).toBeInTheDocument(),i(document.querySelector('[data-testid="iab-consent-banner-footer"]')).toBeInTheDocument()}),c("should display partner/vendor count from GVL",async()=>{s(e(u,{options:h,children:[t(d,{}),t(b,{})]})),await y('[data-testid="iab-consent-banner-card"]'),i(document.querySelector('[data-testid="iab-consent-banner-header"]')?.textContent||"").toMatch(/\d+/)}),c("should display purpose summary with stack grouping",async()=>{s(e(u,{options:h,children:[t(d,{}),t(b,{})]})),await y('[data-testid="iab-consent-banner-card"]'),i(document.querySelector('[data-testid="iab-consent-banner-header"]')).toBeInTheDocument()}),c("should display legitimate interest notice",async()=>{s(e(u,{options:h,children:[t(d,{}),t(b,{})]})),await y('[data-testid="iab-consent-banner-card"]'),i((document.querySelector('[data-testid="iab-consent-banner-header"]')?.textContent||"").toLowerCase()).toContain("legitimate")})}),o("Banner CTA Requirements",()=>{c("should have Accept, Reject, and Customize buttons",async()=>{s(e(u,{options:h,children:[t(d,{}),t(b,{})]})),await y('[data-testid="iab-consent-banner-card"]'),i(document.querySelector('[data-testid="iab-consent-banner-accept-button"]')).toBeInTheDocument(),i(document.querySelector('[data-testid="iab-consent-banner-reject-button"]')).toBeInTheDocument(),i(document.querySelector('[data-testid="iab-consent-banner-customize-button"]')).toBeInTheDocument()})}),o("Banner Actions",()=>{c("should accept all via banner and close",async()=>{s(e(u,{options:h,children:[t(d,{}),t(b,{})]}));let a=await y('[data-testid="iab-consent-banner-accept-button"]');await n.click(a),await w('[data-testid="iab-consent-banner-card"]'),await r.waitFor(()=>{i(p()).toBeTruthy()},{timeout:1e3})}),c("should reject all via banner and close",async()=>{s(e(u,{options:h,children:[t(d,{}),t(b,{})]}));let a=await y('[data-testid="iab-consent-banner-reject-button"]');await n.click(a),await w('[data-testid="iab-consent-banner-card"]');let o=p();i(o?.consents?.necessary).toBe(!0)}),c("should open preference center from banner",async()=>{s(e(u,{options:h,children:[t(d,{}),t(b,{})]}));let a=await y('[data-testid="iab-consent-banner-customize-button"]');await n.click(a),await y('[data-testid="iab-consent-dialog-root"]')})}),o("Banner Accessibility",()=>{c("should have ARIA labels",async()=>{s(e(u,{options:h,children:[t(d,{}),t(b,{})]}));let n=await y('[data-testid="iab-consent-banner-card"]');i(n.getAttribute("role")).toBe("dialog"),i(n.getAttribute("aria-label")).toBeTruthy()}),c("should be keyboard accessible",async()=>{s(e(u,{options:h,children:[t(d,{}),t(b,{})]}));let n=await y('[data-testid="iab-consent-banner-reject-button"]'),a=document.querySelector('[data-testid="iab-consent-banner-customize-button"]'),o=document.querySelector('[data-testid="iab-consent-banner-accept-button"]');n.focus(),i(document.activeElement).toBe(n),a.focus(),i(document.activeElement).toBe(a),o.focus(),i(document.activeElement).toBe(o)})})});
@@ -1 +0,0 @@
1
- "use strict";const __rslib_import_meta_url__="undefined"==typeof document?new(require("url".replace("",""))).URL("file:"+__filename).href:document.currentScript&&document.currentScript.src||new URL("main.js",document.baseURI).href;var __webpack_exports__={};const jsx_runtime_namespaceObject=require("react/jsx-runtime"),context_namespaceObject=require("@vitest/browser/context"),external_vitest_namespaceObject=require("vitest"),external_vitest_browser_react_namespaceObject=require("vitest-browser-react"),index_cjs_namespaceObject=require("../../iab-consent-banner/index.cjs"),external_iab_consent_dialog_index_cjs_namespaceObject=require("../../iab-consent-dialog/index.cjs"),consent_manager_provider_cjs_namespaceObject=require("../../../providers/consent-manager-provider.cjs"),external_e2e_setup_cjs_namespaceObject=require("./e2e-setup.cjs");for(var __rspack_i in(0,external_vitest_namespaceObject.describe)("IAB Consent Flow E2E Tests",()=>{(0,external_vitest_namespaceObject.beforeEach)(()=>{(0,external_e2e_setup_cjs_namespaceObject.clearConsentState)(),external_vitest_namespaceObject.vi.clearAllMocks(),(0,consent_manager_provider_cjs_namespaceObject.clearConsentRuntimeCache)()}),(0,external_vitest_namespaceObject.describe)("Accept All Flow",()=>{(0,external_vitest_namespaceObject.test)("complete flow: display → accept → signal → storage",async()=>{(0,external_vitest_browser_react_namespaceObject.render)((0,jsx_runtime_namespaceObject.jsxs)(consent_manager_provider_cjs_namespaceObject.ConsentManagerProvider,{options:external_e2e_setup_cjs_namespaceObject.defaultIABOptions,children:[(0,jsx_runtime_namespaceObject.jsx)(index_cjs_namespaceObject.IABConsentBanner,{}),(0,jsx_runtime_namespaceObject.jsx)(external_iab_consent_dialog_index_cjs_namespaceObject.IABConsentDialog,{})]}));let e=await (0,external_e2e_setup_cjs_namespaceObject.waitForElement)('[data-testid="iab-consent-banner-accept-button"]');await (0,external_e2e_setup_cjs_namespaceObject.waitForCMP)(),await context_namespaceObject.userEvent.click(e),await (0,external_e2e_setup_cjs_namespaceObject.waitForElementRemoved)('[data-testid="iab-consent-banner-card"]'),await external_vitest_namespaceObject.vi.waitFor(()=>{let e=(0,external_e2e_setup_cjs_namespaceObject.getStoredConsent)();(0,external_vitest_namespaceObject.expect)(e).toBeTruthy()},{timeout:1e3})}),(0,external_vitest_namespaceObject.test)("should set all purposes to consented",async()=>{(0,external_vitest_browser_react_namespaceObject.render)((0,jsx_runtime_namespaceObject.jsxs)(consent_manager_provider_cjs_namespaceObject.ConsentManagerProvider,{options:external_e2e_setup_cjs_namespaceObject.defaultIABOptions,children:[(0,jsx_runtime_namespaceObject.jsx)(index_cjs_namespaceObject.IABConsentBanner,{}),(0,jsx_runtime_namespaceObject.jsx)(external_iab_consent_dialog_index_cjs_namespaceObject.IABConsentDialog,{})]}));let e=await (0,external_e2e_setup_cjs_namespaceObject.waitForElement)('[data-testid="iab-consent-banner-accept-button"]');await (0,external_e2e_setup_cjs_namespaceObject.waitForCMP)(),await context_namespaceObject.userEvent.click(e),await (0,external_e2e_setup_cjs_namespaceObject.waitForElementRemoved)('[data-testid="iab-consent-banner-card"]');let t=await (0,external_e2e_setup_cjs_namespaceObject.getCMPTCData)();(0,external_vitest_namespaceObject.expect)(t.purpose.consents[1]).toBe(!0)})}),(0,external_vitest_namespaceObject.describe)("Reject All Flow",()=>{(0,external_vitest_namespaceObject.test)("complete flow: display → reject → signal → storage",async()=>{(0,external_vitest_browser_react_namespaceObject.render)((0,jsx_runtime_namespaceObject.jsxs)(consent_manager_provider_cjs_namespaceObject.ConsentManagerProvider,{options:external_e2e_setup_cjs_namespaceObject.defaultIABOptions,children:[(0,jsx_runtime_namespaceObject.jsx)(index_cjs_namespaceObject.IABConsentBanner,{}),(0,jsx_runtime_namespaceObject.jsx)(external_iab_consent_dialog_index_cjs_namespaceObject.IABConsentDialog,{})]}));let e=await (0,external_e2e_setup_cjs_namespaceObject.waitForElement)('[data-testid="iab-consent-banner-reject-button"]');await (0,external_e2e_setup_cjs_namespaceObject.waitForCMP)(),await context_namespaceObject.userEvent.click(e),await (0,external_e2e_setup_cjs_namespaceObject.waitForElementRemoved)('[data-testid="iab-consent-banner-card"]');let t=(0,external_e2e_setup_cjs_namespaceObject.getStoredConsent)();(0,external_vitest_namespaceObject.expect)(t).toBeDefined(),(0,external_vitest_namespaceObject.expect)(t?.consents?.necessary).toBe(!0)})}),(0,external_vitest_namespaceObject.describe)("Granular Consent Flow",()=>{(0,external_vitest_namespaceObject.test)("should open preference center for granular selection",async()=>{(0,external_vitest_browser_react_namespaceObject.render)((0,jsx_runtime_namespaceObject.jsxs)(consent_manager_provider_cjs_namespaceObject.ConsentManagerProvider,{options:external_e2e_setup_cjs_namespaceObject.defaultIABOptions,children:[(0,jsx_runtime_namespaceObject.jsx)(index_cjs_namespaceObject.IABConsentBanner,{}),(0,jsx_runtime_namespaceObject.jsx)(external_iab_consent_dialog_index_cjs_namespaceObject.IABConsentDialog,{})]}));let e=await (0,external_e2e_setup_cjs_namespaceObject.waitForElement)('[data-testid="iab-consent-banner-customize-button"]');await (0,external_e2e_setup_cjs_namespaceObject.waitForCMP)(),await context_namespaceObject.userEvent.click(e),await (0,external_e2e_setup_cjs_namespaceObject.waitForElement)('[data-testid="iab-consent-dialog-root"]')}),(0,external_vitest_namespaceObject.test)("should save granular preferences",async()=>{(0,external_vitest_browser_react_namespaceObject.render)((0,jsx_runtime_namespaceObject.jsxs)(consent_manager_provider_cjs_namespaceObject.ConsentManagerProvider,{options:external_e2e_setup_cjs_namespaceObject.defaultIABOptions,children:[(0,jsx_runtime_namespaceObject.jsx)(index_cjs_namespaceObject.IABConsentBanner,{}),(0,jsx_runtime_namespaceObject.jsx)(external_iab_consent_dialog_index_cjs_namespaceObject.IABConsentDialog,{})]}));let e=await (0,external_e2e_setup_cjs_namespaceObject.waitForElement)('[data-testid="iab-consent-banner-customize-button"]');await (0,external_e2e_setup_cjs_namespaceObject.waitForCMP)(),await context_namespaceObject.userEvent.click(e),await (0,external_e2e_setup_cjs_namespaceObject.waitForElement)('[data-testid="iab-consent-dialog-root"]'),await external_vitest_namespaceObject.vi.waitFor(()=>{let e=document.querySelector('[data-testid="iab-consent-dialog-root"]');if(!e?.textContent?.includes("Store"))throw Error("Content not loaded")},{timeout:3e3});let t=Array.from(document.querySelectorAll('[data-testid="iab-consent-dialog-root"] button')).find(e=>e.textContent?.toLowerCase().includes("save")||e.textContent?.toLowerCase().includes("confirm"));if(t){await context_namespaceObject.userEvent.click(t),await (0,external_e2e_setup_cjs_namespaceObject.waitForElementRemoved)('[data-testid="iab-consent-dialog-root"]');let e=(0,external_e2e_setup_cjs_namespaceObject.getStoredConsent)();(0,external_vitest_namespaceObject.expect)(e).toBeDefined()}})}),(0,external_vitest_namespaceObject.describe)("Persistence & Restoration Flow",()=>{(0,external_vitest_namespaceObject.test)("consent should be stored in localStorage",async()=>{(0,external_vitest_browser_react_namespaceObject.render)((0,jsx_runtime_namespaceObject.jsxs)(consent_manager_provider_cjs_namespaceObject.ConsentManagerProvider,{options:external_e2e_setup_cjs_namespaceObject.defaultIABOptions,children:[(0,jsx_runtime_namespaceObject.jsx)(index_cjs_namespaceObject.IABConsentBanner,{}),(0,jsx_runtime_namespaceObject.jsx)(external_iab_consent_dialog_index_cjs_namespaceObject.IABConsentDialog,{})]}));let e=await (0,external_e2e_setup_cjs_namespaceObject.waitForElement)('[data-testid="iab-consent-banner-accept-button"]');await (0,external_e2e_setup_cjs_namespaceObject.waitForCMP)(),await context_namespaceObject.userEvent.click(e),await (0,external_e2e_setup_cjs_namespaceObject.waitForElementRemoved)('[data-testid="iab-consent-banner-card"]');let t=(0,external_e2e_setup_cjs_namespaceObject.getStoredConsent)();(0,external_vitest_namespaceObject.expect)(t).toBeDefined(),(0,external_vitest_namespaceObject.expect)(t?.consents).toBeDefined()}),(0,external_vitest_namespaceObject.test)("TC String should be stored",async()=>{(0,external_vitest_browser_react_namespaceObject.render)((0,jsx_runtime_namespaceObject.jsxs)(consent_manager_provider_cjs_namespaceObject.ConsentManagerProvider,{options:external_e2e_setup_cjs_namespaceObject.defaultIABOptions,children:[(0,jsx_runtime_namespaceObject.jsx)(index_cjs_namespaceObject.IABConsentBanner,{}),(0,jsx_runtime_namespaceObject.jsx)(external_iab_consent_dialog_index_cjs_namespaceObject.IABConsentDialog,{})]}));let e=await (0,external_e2e_setup_cjs_namespaceObject.waitForElement)('[data-testid="iab-consent-banner-accept-button"]');await (0,external_e2e_setup_cjs_namespaceObject.waitForCMP)(),await context_namespaceObject.userEvent.click(e),await (0,external_e2e_setup_cjs_namespaceObject.waitForElementRemoved)('[data-testid="iab-consent-banner-card"]');let t=(0,external_e2e_setup_cjs_namespaceObject.getStoredTCString)();(0,external_vitest_namespaceObject.expect)(t).toBeDefined(),(0,external_vitest_namespaceObject.expect)(typeof t).toBe("string"),(0,external_vitest_namespaceObject.expect)(t?.length).toBeGreaterThan(10)})}),(0,external_vitest_namespaceObject.describe)("First Visit vs Return Visit",()=>{(0,external_vitest_namespaceObject.test)("first visit - banner should display",async()=>{(0,external_vitest_browser_react_namespaceObject.render)((0,jsx_runtime_namespaceObject.jsxs)(consent_manager_provider_cjs_namespaceObject.ConsentManagerProvider,{options:external_e2e_setup_cjs_namespaceObject.defaultIABOptions,children:[(0,jsx_runtime_namespaceObject.jsx)(index_cjs_namespaceObject.IABConsentBanner,{}),(0,jsx_runtime_namespaceObject.jsx)(external_iab_consent_dialog_index_cjs_namespaceObject.IABConsentDialog,{})]})),await (0,external_e2e_setup_cjs_namespaceObject.waitForElement)('[data-testid="iab-consent-banner-card"]')})}),(0,external_vitest_namespaceObject.describe)("Event Notifications",()=>{(0,external_vitest_namespaceObject.test)("should fire useractioncomplete on Accept All",async()=>{(0,external_vitest_browser_react_namespaceObject.render)((0,jsx_runtime_namespaceObject.jsxs)(consent_manager_provider_cjs_namespaceObject.ConsentManagerProvider,{options:external_e2e_setup_cjs_namespaceObject.defaultIABOptions,children:[(0,jsx_runtime_namespaceObject.jsx)(index_cjs_namespaceObject.IABConsentBanner,{}),(0,jsx_runtime_namespaceObject.jsx)(external_iab_consent_dialog_index_cjs_namespaceObject.IABConsentDialog,{})]})),await (0,external_e2e_setup_cjs_namespaceObject.waitForElement)('[data-testid="iab-consent-banner-card"]'),await (0,external_e2e_setup_cjs_namespaceObject.waitForCMP)();let e=0,t=[],a=window.__tcfapi;a&&a("addEventListener",2,a=>{e++,t.push(a.eventStatus)});let n=document.querySelector('[data-testid="iab-consent-banner-accept-button"]');n&&await context_namespaceObject.userEvent.click(n),await external_vitest_namespaceObject.vi.waitFor(()=>{if(!t.includes("useractioncomplete"))throw Error("useractioncomplete not received")},{timeout:2e3}),(0,external_vitest_namespaceObject.expect)(t).toContain("useractioncomplete")})})}),__webpack_exports__)exports[__rspack_i]=__webpack_exports__[__rspack_i];Object.defineProperty(exports,"__esModule",{value:!0});
@@ -1 +0,0 @@
1
- import{jsx as t,jsxs as e}from"react/jsx-runtime";import{userEvent as a}from"@vitest/browser/context";import{beforeEach as n,describe as i,expect as o,test as s,vi as r}from"vitest";import{render as c}from"vitest-browser-react";import{IABConsentBanner as d}from"../../iab-consent-banner/index.js";import{IABConsentDialog as l}from"../../iab-consent-dialog/index.js";import{ConsentManagerProvider as w,clearConsentRuntimeCache as b}from"../../../providers/consent-manager-provider.js";import{clearConsentState as p,defaultIABOptions as u,getCMPTCData as m,getStoredConsent as f,getStoredTCString as h,waitForCMP as y,waitForElement as g,waitForElementRemoved as v}from"./e2e-setup.js";i("IAB Consent Flow E2E Tests",()=>{n(()=>{p(),r.clearAllMocks(),b()}),i("Accept All Flow",()=>{s("complete flow: display → accept → signal → storage",async()=>{c(e(w,{options:u,children:[t(d,{}),t(l,{})]}));let n=await g('[data-testid="iab-consent-banner-accept-button"]');await y(),await a.click(n),await v('[data-testid="iab-consent-banner-card"]'),await r.waitFor(()=>{o(f()).toBeTruthy()},{timeout:1e3})}),s("should set all purposes to consented",async()=>{c(e(w,{options:u,children:[t(d,{}),t(l,{})]}));let n=await g('[data-testid="iab-consent-banner-accept-button"]');await y(),await a.click(n),await v('[data-testid="iab-consent-banner-card"]'),o((await m()).purpose.consents[1]).toBe(!0)})}),i("Reject All Flow",()=>{s("complete flow: display → reject → signal → storage",async()=>{c(e(w,{options:u,children:[t(d,{}),t(l,{})]}));let n=await g('[data-testid="iab-consent-banner-reject-button"]');await y(),await a.click(n),await v('[data-testid="iab-consent-banner-card"]');let i=f();o(i).toBeDefined(),o(i?.consents?.necessary).toBe(!0)})}),i("Granular Consent Flow",()=>{s("should open preference center for granular selection",async()=>{c(e(w,{options:u,children:[t(d,{}),t(l,{})]}));let n=await g('[data-testid="iab-consent-banner-customize-button"]');await y(),await a.click(n),await g('[data-testid="iab-consent-dialog-root"]')}),s("should save granular preferences",async()=>{c(e(w,{options:u,children:[t(d,{}),t(l,{})]}));let n=await g('[data-testid="iab-consent-banner-customize-button"]');await y(),await a.click(n),await g('[data-testid="iab-consent-dialog-root"]'),await r.waitFor(()=>{let t=document.querySelector('[data-testid="iab-consent-dialog-root"]');if(!t?.textContent?.includes("Store"))throw Error("Content not loaded")},{timeout:3e3});let i=Array.from(document.querySelectorAll('[data-testid="iab-consent-dialog-root"] button')).find(t=>t.textContent?.toLowerCase().includes("save")||t.textContent?.toLowerCase().includes("confirm"));i&&(await a.click(i),await v('[data-testid="iab-consent-dialog-root"]'),o(f()).toBeDefined())})}),i("Persistence & Restoration Flow",()=>{s("consent should be stored in localStorage",async()=>{c(e(w,{options:u,children:[t(d,{}),t(l,{})]}));let n=await g('[data-testid="iab-consent-banner-accept-button"]');await y(),await a.click(n),await v('[data-testid="iab-consent-banner-card"]');let i=f();o(i).toBeDefined(),o(i?.consents).toBeDefined()}),s("TC String should be stored",async()=>{c(e(w,{options:u,children:[t(d,{}),t(l,{})]}));let n=await g('[data-testid="iab-consent-banner-accept-button"]');await y(),await a.click(n),await v('[data-testid="iab-consent-banner-card"]');let i=h();o(i).toBeDefined(),o(typeof i).toBe("string"),o(i?.length).toBeGreaterThan(10)})}),i("First Visit vs Return Visit",()=>{s("first visit - banner should display",async()=>{c(e(w,{options:u,children:[t(d,{}),t(l,{})]})),await g('[data-testid="iab-consent-banner-card"]')})}),i("Event Notifications",()=>{s("should fire useractioncomplete on Accept All",async()=>{c(e(w,{options:u,children:[t(d,{}),t(l,{})]})),await g('[data-testid="iab-consent-banner-card"]'),await y();let n=0,i=[],s=window.__tcfapi;s&&s("addEventListener",2,t=>{n++,i.push(t.eventStatus)});let b=document.querySelector('[data-testid="iab-consent-banner-accept-button"]');b&&await a.click(b),await r.waitFor(()=>{if(!i.includes("useractioncomplete"))throw Error("useractioncomplete not received")},{timeout:2e3}),o(i).toContain("useractioncomplete")})})});
@@ -1 +0,0 @@
1
- "use strict";const __rslib_import_meta_url__="undefined"==typeof document?new(require("url".replace("",""))).URL("file:"+__filename).href:document.currentScript&&document.currentScript.src||new URL("main.js",document.baseURI).href;var __webpack_exports__={};const jsx_runtime_namespaceObject=require("react/jsx-runtime"),context_namespaceObject=require("@vitest/browser/context"),external_vitest_namespaceObject=require("vitest"),external_vitest_browser_react_namespaceObject=require("vitest-browser-react"),index_cjs_namespaceObject=require("../../iab-consent-banner/index.cjs"),external_iab_consent_dialog_index_cjs_namespaceObject=require("../../iab-consent-dialog/index.cjs"),consent_manager_provider_cjs_namespaceObject=require("../../../providers/consent-manager-provider.cjs"),external_e2e_setup_cjs_namespaceObject=require("./e2e-setup.cjs");for(var __rspack_i in(0,external_vitest_namespaceObject.describe)("IAB Events E2E Tests",()=>{(0,external_vitest_namespaceObject.beforeEach)(()=>{(0,external_e2e_setup_cjs_namespaceObject.clearConsentState)(),external_vitest_namespaceObject.vi.clearAllMocks(),(0,consent_manager_provider_cjs_namespaceObject.clearConsentRuntimeCache)()}),(0,external_vitest_namespaceObject.describe)("Event Status Values",()=>{(0,external_vitest_namespaceObject.test)('should emit "tcloaded" when CMP is ready',async()=>{(0,external_vitest_browser_react_namespaceObject.render)((0,jsx_runtime_namespaceObject.jsxs)(consent_manager_provider_cjs_namespaceObject.ConsentManagerProvider,{options:external_e2e_setup_cjs_namespaceObject.defaultIABOptions,children:[(0,jsx_runtime_namespaceObject.jsx)(index_cjs_namespaceObject.IABConsentBanner,{}),(0,jsx_runtime_namespaceObject.jsx)(external_iab_consent_dialog_index_cjs_namespaceObject.IABConsentDialog,{})]})),await (0,external_e2e_setup_cjs_namespaceObject.waitForElement)('[data-testid="iab-consent-banner-card"]'),await (0,external_e2e_setup_cjs_namespaceObject.waitForCMP)();let e=await (0,external_e2e_setup_cjs_namespaceObject.addCMPEventListener)();(0,external_vitest_namespaceObject.expect)(e.eventStatus).toBe("tcloaded")}),(0,external_vitest_namespaceObject.test)('should emit "cmpuishown" when UI is displayed',async()=>{let e=[];(0,external_vitest_browser_react_namespaceObject.render)((0,jsx_runtime_namespaceObject.jsxs)(consent_manager_provider_cjs_namespaceObject.ConsentManagerProvider,{options:external_e2e_setup_cjs_namespaceObject.defaultIABOptions,children:[(0,jsx_runtime_namespaceObject.jsx)(index_cjs_namespaceObject.IABConsentBanner,{}),(0,jsx_runtime_namespaceObject.jsx)(external_iab_consent_dialog_index_cjs_namespaceObject.IABConsentDialog,{})]})),await (0,external_e2e_setup_cjs_namespaceObject.waitForElement)('[data-testid="iab-consent-banner-card"]'),await (0,external_e2e_setup_cjs_namespaceObject.waitForCMP)();let t=window.__tcfapi;t&&t("addEventListener",2,t=>{e.push(t.eventStatus)}),await external_vitest_namespaceObject.vi.waitFor(()=>{if(0===e.length)throw Error("No events received")},{timeout:2e3}),(0,external_vitest_namespaceObject.expect)(e).toContain("tcloaded")}),(0,external_vitest_namespaceObject.test)('should emit "useractioncomplete" after user action',async()=>{let e=[];(0,external_vitest_browser_react_namespaceObject.render)((0,jsx_runtime_namespaceObject.jsxs)(consent_manager_provider_cjs_namespaceObject.ConsentManagerProvider,{options:external_e2e_setup_cjs_namespaceObject.defaultIABOptions,children:[(0,jsx_runtime_namespaceObject.jsx)(index_cjs_namespaceObject.IABConsentBanner,{}),(0,jsx_runtime_namespaceObject.jsx)(external_iab_consent_dialog_index_cjs_namespaceObject.IABConsentDialog,{})]})),await (0,external_e2e_setup_cjs_namespaceObject.waitForElement)('[data-testid="iab-consent-banner-card"]'),await (0,external_e2e_setup_cjs_namespaceObject.waitForCMP)();let t=window.__tcfapi;t&&t("addEventListener",2,t=>{e.push(t.eventStatus)});let a=document.querySelector('[data-testid="iab-consent-banner-accept-button"]');a&&await context_namespaceObject.userEvent.click(a),await external_vitest_namespaceObject.vi.waitFor(()=>{if(!e.includes("useractioncomplete"))throw Error("useractioncomplete not received")},{timeout:2e3}),(0,external_vitest_namespaceObject.expect)(e).toContain("useractioncomplete")})}),(0,external_vitest_namespaceObject.describe)("Event Listener Lifecycle",()=>{(0,external_vitest_namespaceObject.test)("should invoke listener immediately on registration",async()=>{(0,external_vitest_browser_react_namespaceObject.render)((0,jsx_runtime_namespaceObject.jsxs)(consent_manager_provider_cjs_namespaceObject.ConsentManagerProvider,{options:external_e2e_setup_cjs_namespaceObject.defaultIABOptions,children:[(0,jsx_runtime_namespaceObject.jsx)(index_cjs_namespaceObject.IABConsentBanner,{}),(0,jsx_runtime_namespaceObject.jsx)(external_iab_consent_dialog_index_cjs_namespaceObject.IABConsentDialog,{})]})),await (0,external_e2e_setup_cjs_namespaceObject.waitForElement)('[data-testid="iab-consent-banner-card"]'),await (0,external_e2e_setup_cjs_namespaceObject.waitForCMP)();let e=!1,t=window.__tcfapi;t&&t("addEventListener",2,()=>{e=!0}),await external_vitest_namespaceObject.vi.waitFor(()=>{if(!e)throw Error("Not called")},{timeout:100}),(0,external_vitest_namespaceObject.expect)(e).toBe(!0)}),(0,external_vitest_namespaceObject.test)("should assign unique listenerIds",async()=>{(0,external_vitest_browser_react_namespaceObject.render)((0,jsx_runtime_namespaceObject.jsxs)(consent_manager_provider_cjs_namespaceObject.ConsentManagerProvider,{options:external_e2e_setup_cjs_namespaceObject.defaultIABOptions,children:[(0,jsx_runtime_namespaceObject.jsx)(index_cjs_namespaceObject.IABConsentBanner,{}),(0,jsx_runtime_namespaceObject.jsx)(external_iab_consent_dialog_index_cjs_namespaceObject.IABConsentDialog,{})]})),await (0,external_e2e_setup_cjs_namespaceObject.waitForElement)('[data-testid="iab-consent-banner-card"]'),await (0,external_e2e_setup_cjs_namespaceObject.waitForCMP)();let e=await (0,external_e2e_setup_cjs_namespaceObject.addCMPEventListener)(),t=await (0,external_e2e_setup_cjs_namespaceObject.addCMPEventListener)(),a=await (0,external_e2e_setup_cjs_namespaceObject.addCMPEventListener)();(0,external_vitest_namespaceObject.expect)(e.listenerId).toBeDefined(),(0,external_vitest_namespaceObject.expect)(t.listenerId).toBeDefined(),(0,external_vitest_namespaceObject.expect)(a.listenerId).toBeDefined();let n=new Set([e.listenerId,t.listenerId,a.listenerId]);(0,external_vitest_namespaceObject.expect)(n.size).toBe(3)}),(0,external_vitest_namespaceObject.test)("should stop notifying after removeEventListener",async()=>{let e;(0,external_vitest_browser_react_namespaceObject.render)((0,jsx_runtime_namespaceObject.jsxs)(consent_manager_provider_cjs_namespaceObject.ConsentManagerProvider,{options:external_e2e_setup_cjs_namespaceObject.defaultIABOptions,children:[(0,jsx_runtime_namespaceObject.jsx)(index_cjs_namespaceObject.IABConsentBanner,{}),(0,jsx_runtime_namespaceObject.jsx)(external_iab_consent_dialog_index_cjs_namespaceObject.IABConsentDialog,{})]})),await (0,external_e2e_setup_cjs_namespaceObject.waitForElement)('[data-testid="iab-consent-banner-card"]'),await (0,external_e2e_setup_cjs_namespaceObject.waitForCMP)();let t=0,a=window.__tcfapi;if(a&&a("addEventListener",2,a=>{t++,e=a.listenerId}),await external_vitest_namespaceObject.vi.waitFor(()=>{if(0===t)throw Error("Not called")},{timeout:100}),(0,external_vitest_namespaceObject.expect)(t).toBe(1),void 0!==e){let t=await (0,external_e2e_setup_cjs_namespaceObject.removeCMPEventListener)(e);(0,external_vitest_namespaceObject.expect)(t).toBe(!0)}let n=document.querySelector('[data-testid="iab-consent-banner-accept-button"]');n&&await context_namespaceObject.userEvent.click(n),await new Promise(e=>setTimeout(e,100)),(0,external_vitest_namespaceObject.expect)(t).toBe(1)}),(0,external_vitest_namespaceObject.test)("multiple listeners should all receive updates",async()=>{(0,external_vitest_browser_react_namespaceObject.render)((0,jsx_runtime_namespaceObject.jsxs)(consent_manager_provider_cjs_namespaceObject.ConsentManagerProvider,{options:external_e2e_setup_cjs_namespaceObject.defaultIABOptions,children:[(0,jsx_runtime_namespaceObject.jsx)(index_cjs_namespaceObject.IABConsentBanner,{}),(0,jsx_runtime_namespaceObject.jsx)(external_iab_consent_dialog_index_cjs_namespaceObject.IABConsentDialog,{})]})),await (0,external_e2e_setup_cjs_namespaceObject.waitForElement)('[data-testid="iab-consent-banner-card"]'),await (0,external_e2e_setup_cjs_namespaceObject.waitForCMP)();let e=[],t=[],a=[],n=window.__tcfapi;n&&(n("addEventListener",2,t=>{e.push(t.eventStatus)}),n("addEventListener",2,e=>{t.push(e.eventStatus)}),n("addEventListener",2,e=>{a.push(e.eventStatus)})),await external_vitest_namespaceObject.vi.waitFor(()=>{if(0===e.length||0===t.length||0===a.length)throw Error("Not all listeners received events")},{timeout:500}),(0,external_vitest_namespaceObject.expect)(e.length).toBeGreaterThan(0),(0,external_vitest_namespaceObject.expect)(t.length).toBeGreaterThan(0),(0,external_vitest_namespaceObject.expect)(a.length).toBeGreaterThan(0)})}),(0,external_vitest_namespaceObject.describe)("Event Data Completeness",()=>{(0,external_vitest_namespaceObject.test)("each event should include complete TCData",async()=>{(0,external_vitest_browser_react_namespaceObject.render)((0,jsx_runtime_namespaceObject.jsxs)(consent_manager_provider_cjs_namespaceObject.ConsentManagerProvider,{options:external_e2e_setup_cjs_namespaceObject.defaultIABOptions,children:[(0,jsx_runtime_namespaceObject.jsx)(index_cjs_namespaceObject.IABConsentBanner,{}),(0,jsx_runtime_namespaceObject.jsx)(external_iab_consent_dialog_index_cjs_namespaceObject.IABConsentDialog,{})]})),await (0,external_e2e_setup_cjs_namespaceObject.waitForElement)('[data-testid="iab-consent-banner-card"]'),await (0,external_e2e_setup_cjs_namespaceObject.waitForCMP)();let e=null,t=window.__tcfapi;t&&t("addEventListener",2,t=>{e=t}),await external_vitest_namespaceObject.vi.waitFor(()=>{if(!e)throw Error("No data received")},{timeout:500}),(0,external_vitest_namespaceObject.expect)(e).toHaveProperty("eventStatus"),(0,external_vitest_namespaceObject.expect)(e).toHaveProperty("listenerId"),(0,external_vitest_namespaceObject.expect)(e).toHaveProperty("gdprApplies"),(0,external_vitest_namespaceObject.expect)(e).toHaveProperty("cmpStatus")}),(0,external_vitest_namespaceObject.test)("listenerId in callback should match assigned ID",async()=>{(0,external_vitest_browser_react_namespaceObject.render)((0,jsx_runtime_namespaceObject.jsxs)(consent_manager_provider_cjs_namespaceObject.ConsentManagerProvider,{options:external_e2e_setup_cjs_namespaceObject.defaultIABOptions,children:[(0,jsx_runtime_namespaceObject.jsx)(index_cjs_namespaceObject.IABConsentBanner,{}),(0,jsx_runtime_namespaceObject.jsx)(external_iab_consent_dialog_index_cjs_namespaceObject.IABConsentDialog,{})]})),await (0,external_e2e_setup_cjs_namespaceObject.waitForElement)('[data-testid="iab-consent-banner-card"]'),await (0,external_e2e_setup_cjs_namespaceObject.waitForCMP)();let e=await (0,external_e2e_setup_cjs_namespaceObject.addCMPEventListener)();(0,external_vitest_namespaceObject.expect)(e.listenerId).toBeDefined(),(0,external_vitest_namespaceObject.expect)(typeof e.listenerId).toBe("number")})})}),__webpack_exports__)exports[__rspack_i]=__webpack_exports__[__rspack_i];Object.defineProperty(exports,"__esModule",{value:!0});
@@ -1 +0,0 @@
1
- import{jsx as t,jsxs as e}from"react/jsx-runtime";import{userEvent as a}from"@vitest/browser/context";import{beforeEach as i,describe as n,expect as o,test as r,vi as s}from"vitest";import{render as d}from"vitest-browser-react";import{IABConsentBanner as c}from"../../iab-consent-banner/index.js";import{IABConsentDialog as l}from"../../iab-consent-dialog/index.js";import{ConsentManagerProvider as w,clearConsentRuntimeCache as p}from"../../../providers/consent-manager-provider.js";import{addCMPEventListener as u,clearConsentState as m,defaultIABOptions as h,removeCMPEventListener as v,waitForCMP as b,waitForElement as f}from"./e2e-setup.js";n("IAB Events E2E Tests",()=>{i(()=>{m(),s.clearAllMocks(),p()}),n("Event Status Values",()=>{r('should emit "tcloaded" when CMP is ready',async()=>{d(e(w,{options:h,children:[t(c,{}),t(l,{})]})),await f('[data-testid="iab-consent-banner-card"]'),await b(),o((await u()).eventStatus).toBe("tcloaded")}),r('should emit "cmpuishown" when UI is displayed',async()=>{let a=[];d(e(w,{options:h,children:[t(c,{}),t(l,{})]})),await f('[data-testid="iab-consent-banner-card"]'),await b();let i=window.__tcfapi;i&&i("addEventListener",2,t=>{a.push(t.eventStatus)}),await s.waitFor(()=>{if(0===a.length)throw Error("No events received")},{timeout:2e3}),o(a).toContain("tcloaded")}),r('should emit "useractioncomplete" after user action',async()=>{let i=[];d(e(w,{options:h,children:[t(c,{}),t(l,{})]})),await f('[data-testid="iab-consent-banner-card"]'),await b();let n=window.__tcfapi;n&&n("addEventListener",2,t=>{i.push(t.eventStatus)});let r=document.querySelector('[data-testid="iab-consent-banner-accept-button"]');r&&await a.click(r),await s.waitFor(()=>{if(!i.includes("useractioncomplete"))throw Error("useractioncomplete not received")},{timeout:2e3}),o(i).toContain("useractioncomplete")})}),n("Event Listener Lifecycle",()=>{r("should invoke listener immediately on registration",async()=>{d(e(w,{options:h,children:[t(c,{}),t(l,{})]})),await f('[data-testid="iab-consent-banner-card"]'),await b();let a=!1,i=window.__tcfapi;i&&i("addEventListener",2,()=>{a=!0}),await s.waitFor(()=>{if(!a)throw Error("Not called")},{timeout:100}),o(a).toBe(!0)}),r("should assign unique listenerIds",async()=>{d(e(w,{options:h,children:[t(c,{}),t(l,{})]})),await f('[data-testid="iab-consent-banner-card"]'),await b();let a=await u(),i=await u(),n=await u();o(a.listenerId).toBeDefined(),o(i.listenerId).toBeDefined(),o(n.listenerId).toBeDefined(),o(new Set([a.listenerId,i.listenerId,n.listenerId]).size).toBe(3)}),r("should stop notifying after removeEventListener",async()=>{let i;d(e(w,{options:h,children:[t(c,{}),t(l,{})]})),await f('[data-testid="iab-consent-banner-card"]'),await b();let n=0,r=window.__tcfapi;r&&r("addEventListener",2,t=>{n++,i=t.listenerId}),await s.waitFor(()=>{if(0===n)throw Error("Not called")},{timeout:100}),o(n).toBe(1),void 0!==i&&o(await v(i)).toBe(!0);let p=document.querySelector('[data-testid="iab-consent-banner-accept-button"]');p&&await a.click(p),await new Promise(t=>setTimeout(t,100)),o(n).toBe(1)}),r("multiple listeners should all receive updates",async()=>{d(e(w,{options:h,children:[t(c,{}),t(l,{})]})),await f('[data-testid="iab-consent-banner-card"]'),await b();let a=[],i=[],n=[],r=window.__tcfapi;r&&(r("addEventListener",2,t=>{a.push(t.eventStatus)}),r("addEventListener",2,t=>{i.push(t.eventStatus)}),r("addEventListener",2,t=>{n.push(t.eventStatus)})),await s.waitFor(()=>{if(0===a.length||0===i.length||0===n.length)throw Error("Not all listeners received events")},{timeout:500}),o(a.length).toBeGreaterThan(0),o(i.length).toBeGreaterThan(0),o(n.length).toBeGreaterThan(0)})}),n("Event Data Completeness",()=>{r("each event should include complete TCData",async()=>{d(e(w,{options:h,children:[t(c,{}),t(l,{})]})),await f('[data-testid="iab-consent-banner-card"]'),await b();let a=null,i=window.__tcfapi;i&&i("addEventListener",2,t=>{a=t}),await s.waitFor(()=>{if(!a)throw Error("No data received")},{timeout:500}),o(a).toHaveProperty("eventStatus"),o(a).toHaveProperty("listenerId"),o(a).toHaveProperty("gdprApplies"),o(a).toHaveProperty("cmpStatus")}),r("listenerId in callback should match assigned ID",async()=>{d(e(w,{options:h,children:[t(c,{}),t(l,{})]})),await f('[data-testid="iab-consent-banner-card"]'),await b();let a=await u();o(a.listenerId).toBeDefined(),o(typeof a.listenerId).toBe("number")})})});
@@ -1 +0,0 @@
1
- "use strict";const __rslib_import_meta_url__="undefined"==typeof document?new(require("url".replace("",""))).URL("file:"+__filename).href:document.currentScript&&document.currentScript.src||new URL("main.js",document.baseURI).href;var __webpack_exports__={};const jsx_runtime_namespaceObject=require("react/jsx-runtime"),external_vitest_namespaceObject=require("vitest"),external_vitest_browser_react_namespaceObject=require("vitest-browser-react"),index_cjs_namespaceObject=require("../../iab-consent-banner/index.cjs"),external_iab_consent_dialog_index_cjs_namespaceObject=require("../../iab-consent-dialog/index.cjs"),consent_manager_provider_cjs_namespaceObject=require("../../../providers/consent-manager-provider.cjs"),external_e2e_setup_cjs_namespaceObject=require("./e2e-setup.cjs");for(var __rspack_i in(0,external_vitest_namespaceObject.describe)("IAB GVL E2E Tests",()=>{(0,external_vitest_namespaceObject.beforeEach)(()=>{(0,external_e2e_setup_cjs_namespaceObject.clearConsentState)(),external_vitest_namespaceObject.vi.clearAllMocks(),(0,consent_manager_provider_cjs_namespaceObject.clearConsentRuntimeCache)()}),(0,external_vitest_namespaceObject.describe)("GVL Loading",()=>{(0,external_vitest_namespaceObject.test)("should fetch GVL successfully",async()=>{(0,external_vitest_browser_react_namespaceObject.render)((0,jsx_runtime_namespaceObject.jsxs)(consent_manager_provider_cjs_namespaceObject.ConsentManagerProvider,{options:external_e2e_setup_cjs_namespaceObject.defaultIABOptions,children:[(0,jsx_runtime_namespaceObject.jsx)(index_cjs_namespaceObject.IABConsentBanner,{}),(0,jsx_runtime_namespaceObject.jsx)(external_iab_consent_dialog_index_cjs_namespaceObject.IABConsentDialog,{})]})),await (0,external_e2e_setup_cjs_namespaceObject.waitForElement)('[data-testid="iab-consent-banner-card"]'),await (0,external_e2e_setup_cjs_namespaceObject.waitForCMP)();let e=await (0,external_e2e_setup_cjs_namespaceObject.tcfApiPromise)("getVendorList",2);(0,external_vitest_namespaceObject.expect)(e).toBeDefined(),(0,external_vitest_namespaceObject.expect)(e.purposes).toBeDefined(),(0,external_vitest_namespaceObject.expect)(e.vendors).toBeDefined()}),(0,external_vitest_namespaceObject.test)("should display vendor count from GVL",async()=>{(0,external_vitest_browser_react_namespaceObject.render)((0,jsx_runtime_namespaceObject.jsxs)(consent_manager_provider_cjs_namespaceObject.ConsentManagerProvider,{options:external_e2e_setup_cjs_namespaceObject.defaultIABOptions,children:[(0,jsx_runtime_namespaceObject.jsx)(index_cjs_namespaceObject.IABConsentBanner,{}),(0,jsx_runtime_namespaceObject.jsx)(external_iab_consent_dialog_index_cjs_namespaceObject.IABConsentDialog,{})]})),await (0,external_e2e_setup_cjs_namespaceObject.waitForElement)('[data-testid="iab-consent-banner-card"]'),await (0,external_e2e_setup_cjs_namespaceObject.waitForCMP)();let e=document.querySelector('[data-testid="iab-consent-banner-header"]')?.textContent||"";(0,external_vitest_namespaceObject.expect)(e).toMatch(/\d+/)})}),(0,external_vitest_namespaceObject.describe)("GVL Content - Purposes",()=>{(0,external_vitest_namespaceObject.test)("should have all 11 purposes",async()=>{(0,external_vitest_browser_react_namespaceObject.render)((0,jsx_runtime_namespaceObject.jsxs)(consent_manager_provider_cjs_namespaceObject.ConsentManagerProvider,{options:external_e2e_setup_cjs_namespaceObject.defaultIABOptions,children:[(0,jsx_runtime_namespaceObject.jsx)(index_cjs_namespaceObject.IABConsentBanner,{}),(0,jsx_runtime_namespaceObject.jsx)(external_iab_consent_dialog_index_cjs_namespaceObject.IABConsentDialog,{})]})),await (0,external_e2e_setup_cjs_namespaceObject.waitForElement)('[data-testid="iab-consent-banner-card"]'),await (0,external_e2e_setup_cjs_namespaceObject.waitForCMP)();let e=Object.keys((await (0,external_e2e_setup_cjs_namespaceObject.tcfApiPromise)("getVendorList",2)).purposes).map(Number);(0,external_vitest_namespaceObject.expect)(e).toContain(1),(0,external_vitest_namespaceObject.expect)(e).toContain(2),(0,external_vitest_namespaceObject.expect)(e).toContain(3),(0,external_vitest_namespaceObject.expect)(e).toContain(4),(0,external_vitest_namespaceObject.expect)(e).toContain(5),(0,external_vitest_namespaceObject.expect)(e).toContain(6),(0,external_vitest_namespaceObject.expect)(e).toContain(7),(0,external_vitest_namespaceObject.expect)(e).toContain(8),(0,external_vitest_namespaceObject.expect)(e).toContain(9),(0,external_vitest_namespaceObject.expect)(e).toContain(10),(0,external_vitest_namespaceObject.expect)(e).toContain(11),(0,external_vitest_namespaceObject.expect)(e.length).toBe(11)})}),(0,external_vitest_namespaceObject.describe)("GVL Content - Special Purposes",()=>{(0,external_vitest_namespaceObject.test)("should have special purposes 1-2",async()=>{(0,external_vitest_browser_react_namespaceObject.render)((0,jsx_runtime_namespaceObject.jsxs)(consent_manager_provider_cjs_namespaceObject.ConsentManagerProvider,{options:external_e2e_setup_cjs_namespaceObject.defaultIABOptions,children:[(0,jsx_runtime_namespaceObject.jsx)(index_cjs_namespaceObject.IABConsentBanner,{}),(0,jsx_runtime_namespaceObject.jsx)(external_iab_consent_dialog_index_cjs_namespaceObject.IABConsentDialog,{})]})),await (0,external_e2e_setup_cjs_namespaceObject.waitForElement)('[data-testid="iab-consent-banner-card"]'),await (0,external_e2e_setup_cjs_namespaceObject.waitForCMP)();let e=Object.keys((await (0,external_e2e_setup_cjs_namespaceObject.tcfApiPromise)("getVendorList",2)).specialPurposes).map(Number);(0,external_vitest_namespaceObject.expect)(e).toContain(1),(0,external_vitest_namespaceObject.expect)(e).toContain(2)})}),(0,external_vitest_namespaceObject.describe)("GVL Content - Features",()=>{(0,external_vitest_namespaceObject.test)("should have features 1-3",async()=>{(0,external_vitest_browser_react_namespaceObject.render)((0,jsx_runtime_namespaceObject.jsxs)(consent_manager_provider_cjs_namespaceObject.ConsentManagerProvider,{options:external_e2e_setup_cjs_namespaceObject.defaultIABOptions,children:[(0,jsx_runtime_namespaceObject.jsx)(index_cjs_namespaceObject.IABConsentBanner,{}),(0,jsx_runtime_namespaceObject.jsx)(external_iab_consent_dialog_index_cjs_namespaceObject.IABConsentDialog,{})]})),await (0,external_e2e_setup_cjs_namespaceObject.waitForElement)('[data-testid="iab-consent-banner-card"]'),await (0,external_e2e_setup_cjs_namespaceObject.waitForCMP)();let e=Object.keys((await (0,external_e2e_setup_cjs_namespaceObject.tcfApiPromise)("getVendorList",2)).features).map(Number);(0,external_vitest_namespaceObject.expect)(e).toContain(1),(0,external_vitest_namespaceObject.expect)(e).toContain(2),(0,external_vitest_namespaceObject.expect)(e).toContain(3)})}),(0,external_vitest_namespaceObject.describe)("GVL Content - Special Features",()=>{(0,external_vitest_namespaceObject.test)("should have special features 1-2",async()=>{(0,external_vitest_browser_react_namespaceObject.render)((0,jsx_runtime_namespaceObject.jsxs)(consent_manager_provider_cjs_namespaceObject.ConsentManagerProvider,{options:external_e2e_setup_cjs_namespaceObject.defaultIABOptions,children:[(0,jsx_runtime_namespaceObject.jsx)(index_cjs_namespaceObject.IABConsentBanner,{}),(0,jsx_runtime_namespaceObject.jsx)(external_iab_consent_dialog_index_cjs_namespaceObject.IABConsentDialog,{})]})),await (0,external_e2e_setup_cjs_namespaceObject.waitForElement)('[data-testid="iab-consent-banner-card"]'),await (0,external_e2e_setup_cjs_namespaceObject.waitForCMP)();let e=Object.keys((await (0,external_e2e_setup_cjs_namespaceObject.tcfApiPromise)("getVendorList",2)).specialFeatures).map(Number);(0,external_vitest_namespaceObject.expect)(e).toContain(1),(0,external_vitest_namespaceObject.expect)(e).toContain(2)})}),(0,external_vitest_namespaceObject.describe)("GVL Content - Stacks",()=>{(0,external_vitest_namespaceObject.test)("should have stacks for UI grouping",async()=>{(0,external_vitest_browser_react_namespaceObject.render)((0,jsx_runtime_namespaceObject.jsxs)(consent_manager_provider_cjs_namespaceObject.ConsentManagerProvider,{options:external_e2e_setup_cjs_namespaceObject.defaultIABOptions,children:[(0,jsx_runtime_namespaceObject.jsx)(index_cjs_namespaceObject.IABConsentBanner,{}),(0,jsx_runtime_namespaceObject.jsx)(external_iab_consent_dialog_index_cjs_namespaceObject.IABConsentDialog,{})]})),await (0,external_e2e_setup_cjs_namespaceObject.waitForElement)('[data-testid="iab-consent-banner-card"]'),await (0,external_e2e_setup_cjs_namespaceObject.waitForCMP)();let e=await (0,external_e2e_setup_cjs_namespaceObject.tcfApiPromise)("getVendorList",2);(0,external_vitest_namespaceObject.expect)(e.stacks).toBeDefined(),(0,external_vitest_namespaceObject.expect)(Object.keys(e.stacks).length).toBeGreaterThan(0)})}),(0,external_vitest_namespaceObject.describe)("GVL Content - Vendors",()=>{(0,external_vitest_namespaceObject.test)("should have vendors with required fields",async()=>{(0,external_vitest_browser_react_namespaceObject.render)((0,jsx_runtime_namespaceObject.jsxs)(consent_manager_provider_cjs_namespaceObject.ConsentManagerProvider,{options:external_e2e_setup_cjs_namespaceObject.defaultIABOptions,children:[(0,jsx_runtime_namespaceObject.jsx)(index_cjs_namespaceObject.IABConsentBanner,{}),(0,jsx_runtime_namespaceObject.jsx)(external_iab_consent_dialog_index_cjs_namespaceObject.IABConsentDialog,{})]})),await (0,external_e2e_setup_cjs_namespaceObject.waitForElement)('[data-testid="iab-consent-banner-card"]'),await (0,external_e2e_setup_cjs_namespaceObject.waitForCMP)();let e=await (0,external_e2e_setup_cjs_namespaceObject.tcfApiPromise)("getVendorList",2);(0,external_vitest_namespaceObject.expect)(Object.keys(e.vendors).length).toBeGreaterThan(0);let t=Object.values(e.vendors)[0];(0,external_vitest_namespaceObject.expect)(t).toHaveProperty("id"),(0,external_vitest_namespaceObject.expect)(t).toHaveProperty("name"),(0,external_vitest_namespaceObject.expect)(t).toHaveProperty("purposes")})}),(0,external_vitest_namespaceObject.describe)("GVL Version",()=>{(0,external_vitest_namespaceObject.test)("should have vendorListVersion",async()=>{(0,external_vitest_browser_react_namespaceObject.render)((0,jsx_runtime_namespaceObject.jsxs)(consent_manager_provider_cjs_namespaceObject.ConsentManagerProvider,{options:external_e2e_setup_cjs_namespaceObject.defaultIABOptions,children:[(0,jsx_runtime_namespaceObject.jsx)(index_cjs_namespaceObject.IABConsentBanner,{}),(0,jsx_runtime_namespaceObject.jsx)(external_iab_consent_dialog_index_cjs_namespaceObject.IABConsentDialog,{})]})),await (0,external_e2e_setup_cjs_namespaceObject.waitForElement)('[data-testid="iab-consent-banner-card"]'),await (0,external_e2e_setup_cjs_namespaceObject.waitForCMP)();let e=await (0,external_e2e_setup_cjs_namespaceObject.tcfApiPromise)("getVendorList",2);(0,external_vitest_namespaceObject.expect)(e.vendorListVersion).toBeDefined(),(0,external_vitest_namespaceObject.expect)(typeof e.vendorListVersion).toBe("number")}),(0,external_vitest_namespaceObject.test)("should have tcfPolicyVersion=5",async()=>{(0,external_vitest_browser_react_namespaceObject.render)((0,jsx_runtime_namespaceObject.jsxs)(consent_manager_provider_cjs_namespaceObject.ConsentManagerProvider,{options:external_e2e_setup_cjs_namespaceObject.defaultIABOptions,children:[(0,jsx_runtime_namespaceObject.jsx)(index_cjs_namespaceObject.IABConsentBanner,{}),(0,jsx_runtime_namespaceObject.jsx)(external_iab_consent_dialog_index_cjs_namespaceObject.IABConsentDialog,{})]})),await (0,external_e2e_setup_cjs_namespaceObject.waitForElement)('[data-testid="iab-consent-banner-card"]'),await (0,external_e2e_setup_cjs_namespaceObject.waitForCMP)();let e=await (0,external_e2e_setup_cjs_namespaceObject.tcfApiPromise)("getVendorList",2);(0,external_vitest_namespaceObject.expect)(e.tcfPolicyVersion).toBe(5)})})}),__webpack_exports__)exports[__rspack_i]=__webpack_exports__[__rspack_i];Object.defineProperty(exports,"__esModule",{value:!0});
@@ -1 +0,0 @@
1
- import{jsx as t,jsxs as e}from"react/jsx-runtime";import{beforeEach as a,describe as n,expect as o,test as i,vi as s}from"vitest";import{render as r}from"vitest-browser-react";import{IABConsentBanner as d}from"../../iab-consent-banner/index.js";import{IABConsentDialog as c}from"../../iab-consent-dialog/index.js";import{ConsentManagerProvider as l,clearConsentRuntimeCache as p}from"../../../providers/consent-manager-provider.js";import{clearConsentState as u,defaultIABOptions as b,tcfApiPromise as h,waitForCMP as w,waitForElement as m}from"./e2e-setup.js";n("IAB GVL E2E Tests",()=>{a(()=>{u(),s.clearAllMocks(),p()}),n("GVL Loading",()=>{i("should fetch GVL successfully",async()=>{r(e(l,{options:b,children:[t(d,{}),t(c,{})]})),await m('[data-testid="iab-consent-banner-card"]'),await w();let a=await h("getVendorList",2);o(a).toBeDefined(),o(a.purposes).toBeDefined(),o(a.vendors).toBeDefined()}),i("should display vendor count from GVL",async()=>{r(e(l,{options:b,children:[t(d,{}),t(c,{})]})),await m('[data-testid="iab-consent-banner-card"]'),await w(),o(document.querySelector('[data-testid="iab-consent-banner-header"]')?.textContent||"").toMatch(/\d+/)})}),n("GVL Content - Purposes",()=>{i("should have all 11 purposes",async()=>{r(e(l,{options:b,children:[t(d,{}),t(c,{})]})),await m('[data-testid="iab-consent-banner-card"]'),await w();let a=Object.keys((await h("getVendorList",2)).purposes).map(Number);o(a).toContain(1),o(a).toContain(2),o(a).toContain(3),o(a).toContain(4),o(a).toContain(5),o(a).toContain(6),o(a).toContain(7),o(a).toContain(8),o(a).toContain(9),o(a).toContain(10),o(a).toContain(11),o(a.length).toBe(11)})}),n("GVL Content - Special Purposes",()=>{i("should have special purposes 1-2",async()=>{r(e(l,{options:b,children:[t(d,{}),t(c,{})]})),await m('[data-testid="iab-consent-banner-card"]'),await w();let a=Object.keys((await h("getVendorList",2)).specialPurposes).map(Number);o(a).toContain(1),o(a).toContain(2)})}),n("GVL Content - Features",()=>{i("should have features 1-3",async()=>{r(e(l,{options:b,children:[t(d,{}),t(c,{})]})),await m('[data-testid="iab-consent-banner-card"]'),await w();let a=Object.keys((await h("getVendorList",2)).features).map(Number);o(a).toContain(1),o(a).toContain(2),o(a).toContain(3)})}),n("GVL Content - Special Features",()=>{i("should have special features 1-2",async()=>{r(e(l,{options:b,children:[t(d,{}),t(c,{})]})),await m('[data-testid="iab-consent-banner-card"]'),await w();let a=Object.keys((await h("getVendorList",2)).specialFeatures).map(Number);o(a).toContain(1),o(a).toContain(2)})}),n("GVL Content - Stacks",()=>{i("should have stacks for UI grouping",async()=>{r(e(l,{options:b,children:[t(d,{}),t(c,{})]})),await m('[data-testid="iab-consent-banner-card"]'),await w();let a=await h("getVendorList",2);o(a.stacks).toBeDefined(),o(Object.keys(a.stacks).length).toBeGreaterThan(0)})}),n("GVL Content - Vendors",()=>{i("should have vendors with required fields",async()=>{r(e(l,{options:b,children:[t(d,{}),t(c,{})]})),await m('[data-testid="iab-consent-banner-card"]'),await w();let a=await h("getVendorList",2);o(Object.keys(a.vendors).length).toBeGreaterThan(0);let n=Object.values(a.vendors)[0];o(n).toHaveProperty("id"),o(n).toHaveProperty("name"),o(n).toHaveProperty("purposes")})}),n("GVL Version",()=>{i("should have vendorListVersion",async()=>{r(e(l,{options:b,children:[t(d,{}),t(c,{})]})),await m('[data-testid="iab-consent-banner-card"]'),await w();let a=await h("getVendorList",2);o(a.vendorListVersion).toBeDefined(),o(typeof a.vendorListVersion).toBe("number")}),i("should have tcfPolicyVersion=5",async()=>{r(e(l,{options:b,children:[t(d,{}),t(c,{})]})),await m('[data-testid="iab-consent-banner-card"]'),await w(),o((await h("getVendorList",2)).tcfPolicyVersion).toBe(5)})})});
@@ -1 +0,0 @@
1
- "use strict";const __rslib_import_meta_url__="undefined"==typeof document?new(require("url".replace("",""))).URL("file:"+__filename).href:document.currentScript&&document.currentScript.src||new URL("main.js",document.baseURI).href;var __webpack_exports__={};const jsx_runtime_namespaceObject=require("react/jsx-runtime"),context_namespaceObject=require("@vitest/browser/context"),external_vitest_namespaceObject=require("vitest"),external_vitest_browser_react_namespaceObject=require("vitest-browser-react"),index_cjs_namespaceObject=require("../../iab-consent-dialog/index.cjs"),consent_manager_provider_cjs_namespaceObject=require("../../../providers/consent-manager-provider.cjs"),external_e2e_setup_cjs_namespaceObject=require("./e2e-setup.cjs");for(var __rspack_i in(0,external_vitest_namespaceObject.describe)("IAB Preference Center E2E Tests",()=>{(0,external_vitest_namespaceObject.beforeEach)(()=>{(0,external_e2e_setup_cjs_namespaceObject.clearConsentState)(),external_vitest_namespaceObject.vi.clearAllMocks(),(0,consent_manager_provider_cjs_namespaceObject.clearConsentRuntimeCache)()}),(0,external_vitest_namespaceObject.describe)("Preference Center Layout",()=>{(0,external_vitest_namespaceObject.test)("should render with purposes tab by default",async()=>{(0,external_vitest_browser_react_namespaceObject.render)((0,jsx_runtime_namespaceObject.jsx)(consent_manager_provider_cjs_namespaceObject.ConsentManagerProvider,{options:external_e2e_setup_cjs_namespaceObject.defaultIABOptions,children:(0,jsx_runtime_namespaceObject.jsx)(index_cjs_namespaceObject.IABConsentDialog,{open:!0})})),await (0,external_e2e_setup_cjs_namespaceObject.waitForElement)('[data-testid="iab-consent-dialog-root"]');let e=document.querySelectorAll('[data-testid="iab-consent-dialog-root"] button[data-state]');(0,external_vitest_namespaceObject.expect)(e.length).toBeGreaterThan(0)}),(0,external_vitest_namespaceObject.test)("should switch between purposes and vendors tabs",async()=>{(0,external_vitest_browser_react_namespaceObject.render)((0,jsx_runtime_namespaceObject.jsx)(consent_manager_provider_cjs_namespaceObject.ConsentManagerProvider,{options:external_e2e_setup_cjs_namespaceObject.defaultIABOptions,children:(0,jsx_runtime_namespaceObject.jsx)(index_cjs_namespaceObject.IABConsentDialog,{open:!0})})),await (0,external_e2e_setup_cjs_namespaceObject.waitForElement)('[data-testid="iab-consent-dialog-root"]');let e=Array.from(document.querySelectorAll('[data-testid="iab-consent-dialog-root"] button')).find(e=>e.textContent?.toLowerCase().includes("vendor"));e&&(await context_namespaceObject.userEvent.click(e),(0,external_vitest_namespaceObject.expect)(e.getAttribute("data-state")).toBe("active"))}),(0,external_vitest_namespaceObject.test)("should display loading state while GVL loads",async()=>{let e=globalThis.fetch;globalThis.fetch=external_vitest_namespaceObject.vi.fn(()=>new Promise(e=>setTimeout(()=>e(new Response(JSON.stringify({}),{status:200,headers:{"Content-Type":"application/json"}})),1e3))),(0,external_vitest_browser_react_namespaceObject.render)((0,jsx_runtime_namespaceObject.jsx)(consent_manager_provider_cjs_namespaceObject.ConsentManagerProvider,{options:external_e2e_setup_cjs_namespaceObject.defaultIABOptions,children:(0,jsx_runtime_namespaceObject.jsx)(index_cjs_namespaceObject.IABConsentDialog,{open:!0})})),await (0,external_e2e_setup_cjs_namespaceObject.waitForElement)('[data-testid="iab-consent-dialog-root"]'),globalThis.fetch=e})}),(0,external_vitest_namespaceObject.describe)("Purposes Tab - Consent",()=>{(0,external_vitest_namespaceObject.test)("should display purpose toggles",async()=>{(0,external_vitest_browser_react_namespaceObject.render)((0,jsx_runtime_namespaceObject.jsx)(consent_manager_provider_cjs_namespaceObject.ConsentManagerProvider,{options:external_e2e_setup_cjs_namespaceObject.defaultIABOptions,children:(0,jsx_runtime_namespaceObject.jsx)(index_cjs_namespaceObject.IABConsentDialog,{open:!0})})),await (0,external_e2e_setup_cjs_namespaceObject.waitForElement)('[data-testid="iab-consent-dialog-root"]');let e=document.querySelector('[data-testid="iab-consent-dialog-root"]');(0,external_vitest_namespaceObject.expect)(e).toBeInTheDocument()}),(0,external_vitest_namespaceObject.test)("all purpose consents should default to OFF (no pre-checked)",async()=>{(0,external_vitest_browser_react_namespaceObject.render)((0,jsx_runtime_namespaceObject.jsx)(consent_manager_provider_cjs_namespaceObject.ConsentManagerProvider,{options:external_e2e_setup_cjs_namespaceObject.defaultIABOptions,children:(0,jsx_runtime_namespaceObject.jsx)(index_cjs_namespaceObject.IABConsentDialog,{open:!0})})),await (0,external_e2e_setup_cjs_namespaceObject.waitForElement)('[data-testid="iab-consent-dialog-root"]');let e=document.querySelector('[data-testid="iab-consent-dialog-root"]');(0,external_vitest_namespaceObject.expect)(e).toBeInTheDocument()})}),(0,external_vitest_namespaceObject.describe)("Purposes Tab - Legitimate Interest",()=>{(0,external_vitest_namespaceObject.test)("should display LI toggles for purposes 2-11",async()=>{(0,external_vitest_browser_react_namespaceObject.render)((0,jsx_runtime_namespaceObject.jsx)(consent_manager_provider_cjs_namespaceObject.ConsentManagerProvider,{options:external_e2e_setup_cjs_namespaceObject.defaultIABOptions,children:(0,jsx_runtime_namespaceObject.jsx)(index_cjs_namespaceObject.IABConsentDialog,{open:!0})})),await (0,external_e2e_setup_cjs_namespaceObject.waitForElement)('[data-testid="iab-consent-dialog-root"]'),await external_vitest_namespaceObject.vi.waitFor(()=>{let e=document.querySelector('[data-testid="iab-consent-dialog-root"]');if(!e?.textContent?.length)throw Error("Content not loaded")},{timeout:3e3})})}),(0,external_vitest_namespaceObject.describe)("Special Features",()=>{(0,external_vitest_namespaceObject.test)("should display special features with opt-in toggles",async()=>{(0,external_vitest_browser_react_namespaceObject.render)((0,jsx_runtime_namespaceObject.jsx)(consent_manager_provider_cjs_namespaceObject.ConsentManagerProvider,{options:external_e2e_setup_cjs_namespaceObject.defaultIABOptions,children:(0,jsx_runtime_namespaceObject.jsx)(index_cjs_namespaceObject.IABConsentDialog,{open:!0})})),await (0,external_e2e_setup_cjs_namespaceObject.waitForElement)('[data-testid="iab-consent-dialog-root"]'),await external_vitest_namespaceObject.vi.waitFor(()=>{let e=document.querySelector('[data-testid="iab-consent-dialog-root"]');if(!e?.textContent?.length)throw Error("Content not loaded")},{timeout:3e3})})}),(0,external_vitest_namespaceObject.describe)("Vendors Tab",()=>{(0,external_vitest_namespaceObject.test)("should display vendor list",async()=>{(0,external_vitest_browser_react_namespaceObject.render)((0,jsx_runtime_namespaceObject.jsx)(consent_manager_provider_cjs_namespaceObject.ConsentManagerProvider,{options:external_e2e_setup_cjs_namespaceObject.defaultIABOptions,children:(0,jsx_runtime_namespaceObject.jsx)(index_cjs_namespaceObject.IABConsentDialog,{open:!0})})),await (0,external_e2e_setup_cjs_namespaceObject.waitForElement)('[data-testid="iab-consent-dialog-root"]');let e=Array.from(document.querySelectorAll('[data-testid="iab-consent-dialog-root"] button')).find(e=>e.textContent?.toLowerCase().includes("vendor"));(0,external_vitest_namespaceObject.expect)(e).toBeDefined()})}),(0,external_vitest_namespaceObject.describe)("Save & Cancel Actions",()=>{(0,external_vitest_namespaceObject.test)("should save preferences when Save button clicked",async()=>{(0,external_vitest_browser_react_namespaceObject.render)((0,jsx_runtime_namespaceObject.jsx)(consent_manager_provider_cjs_namespaceObject.ConsentManagerProvider,{options:external_e2e_setup_cjs_namespaceObject.defaultIABOptions,children:(0,jsx_runtime_namespaceObject.jsx)(index_cjs_namespaceObject.IABConsentDialog,{open:!0})})),await (0,external_e2e_setup_cjs_namespaceObject.waitForElement)('[data-testid="iab-consent-dialog-root"]');let e=Array.from(document.querySelectorAll('[data-testid="iab-consent-dialog-root"] button')).find(e=>e.textContent?.toLowerCase().includes("save")||e.textContent?.toLowerCase().includes("confirm"));(0,external_vitest_namespaceObject.expect)(e).toBeDefined()}),(0,external_vitest_namespaceObject.test)("should accept all when Accept All clicked",async()=>{(0,external_vitest_browser_react_namespaceObject.render)((0,jsx_runtime_namespaceObject.jsx)(consent_manager_provider_cjs_namespaceObject.ConsentManagerProvider,{options:external_e2e_setup_cjs_namespaceObject.defaultIABOptions,children:(0,jsx_runtime_namespaceObject.jsx)(index_cjs_namespaceObject.IABConsentDialog,{open:!0})})),await (0,external_e2e_setup_cjs_namespaceObject.waitForElement)('[data-testid="iab-consent-dialog-root"]');let e=Array.from(document.querySelectorAll('[data-testid="iab-consent-dialog-root"] button')).find(e=>e.textContent?.toLowerCase().includes("accept all"));(0,external_vitest_namespaceObject.expect)(e).toBeDefined()}),(0,external_vitest_namespaceObject.test)("should reject all when Reject All clicked",async()=>{(0,external_vitest_browser_react_namespaceObject.render)((0,jsx_runtime_namespaceObject.jsx)(consent_manager_provider_cjs_namespaceObject.ConsentManagerProvider,{options:external_e2e_setup_cjs_namespaceObject.defaultIABOptions,children:(0,jsx_runtime_namespaceObject.jsx)(index_cjs_namespaceObject.IABConsentDialog,{open:!0})})),await (0,external_e2e_setup_cjs_namespaceObject.waitForElement)('[data-testid="iab-consent-dialog-root"]');let e=Array.from(document.querySelectorAll('[data-testid="iab-consent-dialog-root"] button')).find(e=>e.textContent?.toLowerCase().includes("reject all"));(0,external_vitest_namespaceObject.expect)(e).toBeDefined()})}),(0,external_vitest_namespaceObject.describe)("Accessibility",()=>{(0,external_vitest_namespaceObject.test)("should have proper ARIA attributes",async()=>{(0,external_vitest_browser_react_namespaceObject.render)((0,jsx_runtime_namespaceObject.jsx)(consent_manager_provider_cjs_namespaceObject.ConsentManagerProvider,{options:external_e2e_setup_cjs_namespaceObject.defaultIABOptions,children:(0,jsx_runtime_namespaceObject.jsx)(index_cjs_namespaceObject.IABConsentDialog,{open:!0})}));let e=await (0,external_e2e_setup_cjs_namespaceObject.waitForElement)('[data-testid="iab-consent-dialog-card"]');(0,external_vitest_namespaceObject.expect)(e.getAttribute("role")).toBe("dialog"),(0,external_vitest_namespaceObject.expect)(e.getAttribute("aria-label")).toBeTruthy()})})}),__webpack_exports__)exports[__rspack_i]=__webpack_exports__[__rspack_i];Object.defineProperty(exports,"__esModule",{value:!0});
@@ -1 +0,0 @@
1
- import{jsx as t}from"react/jsx-runtime";import{userEvent as e}from"@vitest/browser/context";import{beforeEach as o,describe as a,expect as n,test as i,vi as s}from"vitest";import{render as r}from"vitest-browser-react";import{IABConsentDialog as d}from"../../iab-consent-dialog/index.js";import{ConsentManagerProvider as l,clearConsentRuntimeCache as c}from"../../../providers/consent-manager-provider.js";import{clearConsentState as u,defaultIABOptions as p,waitForElement as h}from"./e2e-setup.js";a("IAB Preference Center E2E Tests",()=>{o(()=>{u(),s.clearAllMocks(),c()}),a("Preference Center Layout",()=>{i("should render with purposes tab by default",async()=>{r(t(l,{options:p,children:t(d,{open:!0})})),await h('[data-testid="iab-consent-dialog-root"]'),n(document.querySelectorAll('[data-testid="iab-consent-dialog-root"] button[data-state]').length).toBeGreaterThan(0)}),i("should switch between purposes and vendors tabs",async()=>{r(t(l,{options:p,children:t(d,{open:!0})})),await h('[data-testid="iab-consent-dialog-root"]');let o=Array.from(document.querySelectorAll('[data-testid="iab-consent-dialog-root"] button')).find(t=>t.textContent?.toLowerCase().includes("vendor"));o&&(await e.click(o),n(o.getAttribute("data-state")).toBe("active"))}),i("should display loading state while GVL loads",async()=>{let e=globalThis.fetch;globalThis.fetch=s.fn(()=>new Promise(t=>setTimeout(()=>t(new Response(JSON.stringify({}),{status:200,headers:{"Content-Type":"application/json"}})),1e3))),r(t(l,{options:p,children:t(d,{open:!0})})),await h('[data-testid="iab-consent-dialog-root"]'),globalThis.fetch=e})}),a("Purposes Tab - Consent",()=>{i("should display purpose toggles",async()=>{r(t(l,{options:p,children:t(d,{open:!0})})),await h('[data-testid="iab-consent-dialog-root"]'),n(document.querySelector('[data-testid="iab-consent-dialog-root"]')).toBeInTheDocument()}),i("all purpose consents should default to OFF (no pre-checked)",async()=>{r(t(l,{options:p,children:t(d,{open:!0})})),await h('[data-testid="iab-consent-dialog-root"]'),n(document.querySelector('[data-testid="iab-consent-dialog-root"]')).toBeInTheDocument()})}),a("Purposes Tab - Legitimate Interest",()=>{i("should display LI toggles for purposes 2-11",async()=>{r(t(l,{options:p,children:t(d,{open:!0})})),await h('[data-testid="iab-consent-dialog-root"]'),await s.waitFor(()=>{let t=document.querySelector('[data-testid="iab-consent-dialog-root"]');if(!t?.textContent?.length)throw Error("Content not loaded")},{timeout:3e3})})}),a("Special Features",()=>{i("should display special features with opt-in toggles",async()=>{r(t(l,{options:p,children:t(d,{open:!0})})),await h('[data-testid="iab-consent-dialog-root"]'),await s.waitFor(()=>{let t=document.querySelector('[data-testid="iab-consent-dialog-root"]');if(!t?.textContent?.length)throw Error("Content not loaded")},{timeout:3e3})})}),a("Vendors Tab",()=>{i("should display vendor list",async()=>{r(t(l,{options:p,children:t(d,{open:!0})})),await h('[data-testid="iab-consent-dialog-root"]'),n(Array.from(document.querySelectorAll('[data-testid="iab-consent-dialog-root"] button')).find(t=>t.textContent?.toLowerCase().includes("vendor"))).toBeDefined()})}),a("Save & Cancel Actions",()=>{i("should save preferences when Save button clicked",async()=>{r(t(l,{options:p,children:t(d,{open:!0})})),await h('[data-testid="iab-consent-dialog-root"]'),n(Array.from(document.querySelectorAll('[data-testid="iab-consent-dialog-root"] button')).find(t=>t.textContent?.toLowerCase().includes("save")||t.textContent?.toLowerCase().includes("confirm"))).toBeDefined()}),i("should accept all when Accept All clicked",async()=>{r(t(l,{options:p,children:t(d,{open:!0})})),await h('[data-testid="iab-consent-dialog-root"]'),n(Array.from(document.querySelectorAll('[data-testid="iab-consent-dialog-root"] button')).find(t=>t.textContent?.toLowerCase().includes("accept all"))).toBeDefined()}),i("should reject all when Reject All clicked",async()=>{r(t(l,{options:p,children:t(d,{open:!0})})),await h('[data-testid="iab-consent-dialog-root"]'),n(Array.from(document.querySelectorAll('[data-testid="iab-consent-dialog-root"] button')).find(t=>t.textContent?.toLowerCase().includes("reject all"))).toBeDefined()})}),a("Accessibility",()=>{i("should have proper ARIA attributes",async()=>{r(t(l,{options:p,children:t(d,{open:!0})}));let e=await h('[data-testid="iab-consent-dialog-card"]');n(e.getAttribute("role")).toBe("dialog"),n(e.getAttribute("aria-label")).toBeTruthy()})})});
@@ -1 +0,0 @@
1
- "use strict";const __rslib_import_meta_url__="undefined"==typeof document?new(require("url".replace("",""))).URL("file:"+__filename).href:document.currentScript&&document.currentScript.src||new URL("main.js",document.baseURI).href;var __webpack_exports__={};const jsx_runtime_namespaceObject=require("react/jsx-runtime"),context_namespaceObject=require("@vitest/browser/context"),external_vitest_namespaceObject=require("vitest"),external_vitest_browser_react_namespaceObject=require("vitest-browser-react"),index_cjs_namespaceObject=require("../../iab-consent-banner/index.cjs"),external_iab_consent_dialog_index_cjs_namespaceObject=require("../../iab-consent-dialog/index.cjs"),consent_manager_provider_cjs_namespaceObject=require("../../../providers/consent-manager-provider.cjs"),external_e2e_setup_cjs_namespaceObject=require("./e2e-setup.cjs");for(var __rspack_i in(0,external_vitest_namespaceObject.describe)("IAB Storage E2E Tests",()=>{(0,external_vitest_namespaceObject.beforeEach)(()=>{(0,external_e2e_setup_cjs_namespaceObject.clearConsentState)(),external_vitest_namespaceObject.vi.clearAllMocks(),(0,consent_manager_provider_cjs_namespaceObject.clearConsentRuntimeCache)()}),(0,external_vitest_namespaceObject.describe)("localStorage Storage",()=>{(0,external_vitest_namespaceObject.test)("should store consent to localStorage",async()=>{(0,external_vitest_browser_react_namespaceObject.render)((0,jsx_runtime_namespaceObject.jsxs)(consent_manager_provider_cjs_namespaceObject.ConsentManagerProvider,{options:external_e2e_setup_cjs_namespaceObject.defaultIABOptions,children:[(0,jsx_runtime_namespaceObject.jsx)(index_cjs_namespaceObject.IABConsentBanner,{}),(0,jsx_runtime_namespaceObject.jsx)(external_iab_consent_dialog_index_cjs_namespaceObject.IABConsentDialog,{})]}));let e=await (0,external_e2e_setup_cjs_namespaceObject.waitForElement)('[data-testid="iab-consent-banner-accept-button"]');await (0,external_e2e_setup_cjs_namespaceObject.waitForCMP)(),await context_namespaceObject.userEvent.click(e),await (0,external_e2e_setup_cjs_namespaceObject.waitForElementRemoved)('[data-testid="iab-consent-banner-card"]'),await external_vitest_namespaceObject.vi.waitFor(()=>{let e=window.localStorage.getItem("c15t");return(0,external_vitest_namespaceObject.expect)(e).not.toBeNull(),e},{timeout:1e3});let t=JSON.parse(window.localStorage.getItem("c15t")||"{}");(0,external_vitest_namespaceObject.expect)(t.consents).toBeDefined()}),(0,external_vitest_namespaceObject.test)("should store TC string in localStorage",async()=>{(0,external_vitest_browser_react_namespaceObject.render)((0,jsx_runtime_namespaceObject.jsxs)(consent_manager_provider_cjs_namespaceObject.ConsentManagerProvider,{options:external_e2e_setup_cjs_namespaceObject.defaultIABOptions,children:[(0,jsx_runtime_namespaceObject.jsx)(index_cjs_namespaceObject.IABConsentBanner,{}),(0,jsx_runtime_namespaceObject.jsx)(external_iab_consent_dialog_index_cjs_namespaceObject.IABConsentDialog,{})]}));let e=await (0,external_e2e_setup_cjs_namespaceObject.waitForElement)('[data-testid="iab-consent-banner-accept-button"]');await (0,external_e2e_setup_cjs_namespaceObject.waitForCMP)(),await context_namespaceObject.userEvent.click(e),await (0,external_e2e_setup_cjs_namespaceObject.waitForElementRemoved)('[data-testid="iab-consent-banner-card"]');let t=(0,external_e2e_setup_cjs_namespaceObject.getStoredTCString)();(0,external_vitest_namespaceObject.expect)(t).toBeDefined(),(0,external_vitest_namespaceObject.expect)(typeof t).toBe("string")}),(0,external_vitest_namespaceObject.test)("TC string should be valid base64url format",async()=>{(0,external_vitest_browser_react_namespaceObject.render)((0,jsx_runtime_namespaceObject.jsxs)(consent_manager_provider_cjs_namespaceObject.ConsentManagerProvider,{options:external_e2e_setup_cjs_namespaceObject.defaultIABOptions,children:[(0,jsx_runtime_namespaceObject.jsx)(index_cjs_namespaceObject.IABConsentBanner,{}),(0,jsx_runtime_namespaceObject.jsx)(external_iab_consent_dialog_index_cjs_namespaceObject.IABConsentDialog,{})]}));let e=await (0,external_e2e_setup_cjs_namespaceObject.waitForElement)('[data-testid="iab-consent-banner-accept-button"]');await (0,external_e2e_setup_cjs_namespaceObject.waitForCMP)(),await context_namespaceObject.userEvent.click(e),await (0,external_e2e_setup_cjs_namespaceObject.waitForElementRemoved)('[data-testid="iab-consent-banner-card"]');let t=(0,external_e2e_setup_cjs_namespaceObject.getStoredTCString)();(0,external_vitest_namespaceObject.expect)(t).toMatch(/^[A-Za-z0-9_-]+(\.[A-Za-z0-9_-]+)*$/)})}),(0,external_vitest_namespaceObject.describe)("Storage Update on Consent Change",()=>{(0,external_vitest_namespaceObject.test)("should update storage when Accept All clicked",async()=>{(0,external_vitest_browser_react_namespaceObject.render)((0,jsx_runtime_namespaceObject.jsxs)(consent_manager_provider_cjs_namespaceObject.ConsentManagerProvider,{options:external_e2e_setup_cjs_namespaceObject.defaultIABOptions,children:[(0,jsx_runtime_namespaceObject.jsx)(index_cjs_namespaceObject.IABConsentBanner,{}),(0,jsx_runtime_namespaceObject.jsx)(external_iab_consent_dialog_index_cjs_namespaceObject.IABConsentDialog,{})]}));let e=await (0,external_e2e_setup_cjs_namespaceObject.waitForElement)('[data-testid="iab-consent-banner-accept-button"]');await (0,external_e2e_setup_cjs_namespaceObject.waitForCMP)(),(0,external_vitest_namespaceObject.expect)((0,external_e2e_setup_cjs_namespaceObject.getStoredConsent)()).toBeNull(),await context_namespaceObject.userEvent.click(e),await (0,external_e2e_setup_cjs_namespaceObject.waitForElementRemoved)('[data-testid="iab-consent-banner-card"]'),(0,external_vitest_namespaceObject.expect)((0,external_e2e_setup_cjs_namespaceObject.getStoredConsent)()).not.toBeNull()}),(0,external_vitest_namespaceObject.test)("should update storage when Reject All clicked",async()=>{(0,external_vitest_browser_react_namespaceObject.render)((0,jsx_runtime_namespaceObject.jsxs)(consent_manager_provider_cjs_namespaceObject.ConsentManagerProvider,{options:external_e2e_setup_cjs_namespaceObject.defaultIABOptions,children:[(0,jsx_runtime_namespaceObject.jsx)(index_cjs_namespaceObject.IABConsentBanner,{}),(0,jsx_runtime_namespaceObject.jsx)(external_iab_consent_dialog_index_cjs_namespaceObject.IABConsentDialog,{})]}));let e=await (0,external_e2e_setup_cjs_namespaceObject.waitForElement)('[data-testid="iab-consent-banner-reject-button"]');await (0,external_e2e_setup_cjs_namespaceObject.waitForCMP)(),(0,external_vitest_namespaceObject.expect)((0,external_e2e_setup_cjs_namespaceObject.getStoredConsent)()).toBeNull(),await context_namespaceObject.userEvent.click(e),await (0,external_e2e_setup_cjs_namespaceObject.waitForElementRemoved)('[data-testid="iab-consent-banner-card"]');let t=(0,external_e2e_setup_cjs_namespaceObject.getStoredConsent)();(0,external_vitest_namespaceObject.expect)(t).not.toBeNull(),(0,external_vitest_namespaceObject.expect)(t?.consents?.necessary).toBe(!0)})}),(0,external_vitest_namespaceObject.describe)("Storage Content",()=>{(0,external_vitest_namespaceObject.test)("should store consent info with timestamp",async()=>{(0,external_vitest_browser_react_namespaceObject.render)((0,jsx_runtime_namespaceObject.jsxs)(consent_manager_provider_cjs_namespaceObject.ConsentManagerProvider,{options:external_e2e_setup_cjs_namespaceObject.defaultIABOptions,children:[(0,jsx_runtime_namespaceObject.jsx)(index_cjs_namespaceObject.IABConsentBanner,{}),(0,jsx_runtime_namespaceObject.jsx)(external_iab_consent_dialog_index_cjs_namespaceObject.IABConsentDialog,{})]}));let e=await (0,external_e2e_setup_cjs_namespaceObject.waitForElement)('[data-testid="iab-consent-banner-accept-button"]');await (0,external_e2e_setup_cjs_namespaceObject.waitForCMP)();let t=Date.now();await context_namespaceObject.userEvent.click(e),await (0,external_e2e_setup_cjs_namespaceObject.waitForElementRemoved)('[data-testid="iab-consent-banner-card"]');let a=Date.now(),n=(0,external_e2e_setup_cjs_namespaceObject.getStoredConsent)();(0,external_vitest_namespaceObject.expect)(n?.consentInfo?.time).toBeDefined(),(0,external_vitest_namespaceObject.expect)(n?.consentInfo?.time).toBeGreaterThanOrEqual(t-1e3),(0,external_vitest_namespaceObject.expect)(n?.consentInfo?.time).toBeLessThanOrEqual(a+1e3)}),(0,external_vitest_namespaceObject.test)("should store consent info with subjectId",async()=>{(0,external_vitest_browser_react_namespaceObject.render)((0,jsx_runtime_namespaceObject.jsxs)(consent_manager_provider_cjs_namespaceObject.ConsentManagerProvider,{options:external_e2e_setup_cjs_namespaceObject.defaultIABOptions,children:[(0,jsx_runtime_namespaceObject.jsx)(index_cjs_namespaceObject.IABConsentBanner,{}),(0,jsx_runtime_namespaceObject.jsx)(external_iab_consent_dialog_index_cjs_namespaceObject.IABConsentDialog,{})]}));let e=await (0,external_e2e_setup_cjs_namespaceObject.waitForElement)('[data-testid="iab-consent-banner-accept-button"]');await (0,external_e2e_setup_cjs_namespaceObject.waitForCMP)(),await context_namespaceObject.userEvent.click(e),await (0,external_e2e_setup_cjs_namespaceObject.waitForElementRemoved)('[data-testid="iab-consent-banner-card"]');let t=(0,external_e2e_setup_cjs_namespaceObject.getStoredConsent)();(0,external_vitest_namespaceObject.expect)(t?.consentInfo?.subjectId).toBeDefined(),(0,external_vitest_namespaceObject.expect)(typeof t?.consentInfo?.subjectId).toBe("string")})}),(0,external_vitest_namespaceObject.describe)("c15t Storage Key",()=>{(0,external_vitest_namespaceObject.test)('should use "c15t" key in localStorage',async()=>{(0,external_vitest_browser_react_namespaceObject.render)((0,jsx_runtime_namespaceObject.jsxs)(consent_manager_provider_cjs_namespaceObject.ConsentManagerProvider,{options:external_e2e_setup_cjs_namespaceObject.defaultIABOptions,children:[(0,jsx_runtime_namespaceObject.jsx)(index_cjs_namespaceObject.IABConsentBanner,{}),(0,jsx_runtime_namespaceObject.jsx)(external_iab_consent_dialog_index_cjs_namespaceObject.IABConsentDialog,{})]}));let e=await (0,external_e2e_setup_cjs_namespaceObject.waitForElement)('[data-testid="iab-consent-banner-accept-button"]');await (0,external_e2e_setup_cjs_namespaceObject.waitForCMP)(),await context_namespaceObject.userEvent.click(e),await (0,external_e2e_setup_cjs_namespaceObject.waitForElementRemoved)('[data-testid="iab-consent-banner-card"]'),(0,external_vitest_namespaceObject.expect)(window.localStorage.getItem("c15t")).not.toBeNull()}),(0,external_vitest_namespaceObject.test)('should use "euconsent-v2" key for TC string',async()=>{(0,external_vitest_browser_react_namespaceObject.render)((0,jsx_runtime_namespaceObject.jsxs)(consent_manager_provider_cjs_namespaceObject.ConsentManagerProvider,{options:external_e2e_setup_cjs_namespaceObject.defaultIABOptions,children:[(0,jsx_runtime_namespaceObject.jsx)(index_cjs_namespaceObject.IABConsentBanner,{}),(0,jsx_runtime_namespaceObject.jsx)(external_iab_consent_dialog_index_cjs_namespaceObject.IABConsentDialog,{})]}));let e=await (0,external_e2e_setup_cjs_namespaceObject.waitForElement)('[data-testid="iab-consent-banner-accept-button"]');await (0,external_e2e_setup_cjs_namespaceObject.waitForCMP)(),await context_namespaceObject.userEvent.click(e),await (0,external_e2e_setup_cjs_namespaceObject.waitForElementRemoved)('[data-testid="iab-consent-banner-card"]'),(0,external_vitest_namespaceObject.expect)(window.localStorage.getItem("euconsent-v2")).not.toBeNull()})})}),__webpack_exports__)exports[__rspack_i]=__webpack_exports__[__rspack_i];Object.defineProperty(exports,"__esModule",{value:!0});
@@ -1 +0,0 @@
1
- import{jsx as t,jsxs as a}from"react/jsx-runtime";import{userEvent as e}from"@vitest/browser/context";import{beforeEach as n,describe as o,expect as i,test as c,vi as s}from"vitest";import{render as r}from"vitest-browser-react";import{IABConsentBanner as l}from"../../iab-consent-banner/index.js";import{IABConsentDialog as d}from"../../iab-consent-dialog/index.js";import{ConsentManagerProvider as b,clearConsentRuntimeCache as w}from"../../../providers/consent-manager-provider.js";import{clearConsentState as u,defaultIABOptions as p,getStoredConsent as m,getStoredTCString as g,waitForCMP as h,waitForElement as f,waitForElementRemoved as B}from"./e2e-setup.js";o("IAB Storage E2E Tests",()=>{n(()=>{u(),s.clearAllMocks(),w()}),o("localStorage Storage",()=>{c("should store consent to localStorage",async()=>{r(a(b,{options:p,children:[t(l,{}),t(d,{})]}));let n=await f('[data-testid="iab-consent-banner-accept-button"]');await h(),await e.click(n),await B('[data-testid="iab-consent-banner-card"]'),await s.waitFor(()=>{let t=window.localStorage.getItem("c15t");return i(t).not.toBeNull(),t},{timeout:1e3}),i(JSON.parse(window.localStorage.getItem("c15t")||"{}").consents).toBeDefined()}),c("should store TC string in localStorage",async()=>{r(a(b,{options:p,children:[t(l,{}),t(d,{})]}));let n=await f('[data-testid="iab-consent-banner-accept-button"]');await h(),await e.click(n),await B('[data-testid="iab-consent-banner-card"]');let o=g();i(o).toBeDefined(),i(typeof o).toBe("string")}),c("TC string should be valid base64url format",async()=>{r(a(b,{options:p,children:[t(l,{}),t(d,{})]}));let n=await f('[data-testid="iab-consent-banner-accept-button"]');await h(),await e.click(n),await B('[data-testid="iab-consent-banner-card"]'),i(g()).toMatch(/^[A-Za-z0-9_-]+(\.[A-Za-z0-9_-]+)*$/)})}),o("Storage Update on Consent Change",()=>{c("should update storage when Accept All clicked",async()=>{r(a(b,{options:p,children:[t(l,{}),t(d,{})]}));let n=await f('[data-testid="iab-consent-banner-accept-button"]');await h(),i(m()).toBeNull(),await e.click(n),await B('[data-testid="iab-consent-banner-card"]'),i(m()).not.toBeNull()}),c("should update storage when Reject All clicked",async()=>{r(a(b,{options:p,children:[t(l,{}),t(d,{})]}));let n=await f('[data-testid="iab-consent-banner-reject-button"]');await h(),i(m()).toBeNull(),await e.click(n),await B('[data-testid="iab-consent-banner-card"]');let o=m();i(o).not.toBeNull(),i(o?.consents?.necessary).toBe(!0)})}),o("Storage Content",()=>{c("should store consent info with timestamp",async()=>{r(a(b,{options:p,children:[t(l,{}),t(d,{})]}));let n=await f('[data-testid="iab-consent-banner-accept-button"]');await h();let o=Date.now();await e.click(n),await B('[data-testid="iab-consent-banner-card"]');let c=Date.now(),s=m();i(s?.consentInfo?.time).toBeDefined(),i(s?.consentInfo?.time).toBeGreaterThanOrEqual(o-1e3),i(s?.consentInfo?.time).toBeLessThanOrEqual(c+1e3)}),c("should store consent info with subjectId",async()=>{r(a(b,{options:p,children:[t(l,{}),t(d,{})]}));let n=await f('[data-testid="iab-consent-banner-accept-button"]');await h(),await e.click(n),await B('[data-testid="iab-consent-banner-card"]');let o=m();i(o?.consentInfo?.subjectId).toBeDefined(),i(typeof o?.consentInfo?.subjectId).toBe("string")})}),o("c15t Storage Key",()=>{c('should use "c15t" key in localStorage',async()=>{r(a(b,{options:p,children:[t(l,{}),t(d,{})]}));let n=await f('[data-testid="iab-consent-banner-accept-button"]');await h(),await e.click(n),await B('[data-testid="iab-consent-banner-card"]'),i(window.localStorage.getItem("c15t")).not.toBeNull()}),c('should use "euconsent-v2" key for TC string',async()=>{r(a(b,{options:p,children:[t(l,{}),t(d,{})]}));let n=await f('[data-testid="iab-consent-banner-accept-button"]');await h(),await e.click(n),await B('[data-testid="iab-consent-banner-card"]'),i(window.localStorage.getItem("euconsent-v2")).not.toBeNull()})})});