@c15t/react 2.0.0-rc.3 → 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 (184) 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/shared/primitives/button.cjs +1 -1
  25. package/dist/components/shared/primitives/button.d.ts.map +1 -1
  26. package/dist/components/shared/primitives/button.js +1 -1
  27. package/dist/index.cjs +1 -1
  28. package/dist/index.d.ts +1 -0
  29. package/dist/index.d.ts.map +1 -1
  30. package/dist/index.js +1 -1
  31. package/dist/version.cjs +1 -1
  32. package/dist/version.d.ts +1 -1
  33. package/dist/version.js +1 -1
  34. package/package.json +49 -6
  35. package/dist/components/__tests__/active-ui-transitions.e2e.test.cjs +0 -1
  36. package/dist/components/__tests__/active-ui-transitions.e2e.test.js +0 -1
  37. package/dist/components/__tests__/consent-flow.e2e.test.cjs +0 -1
  38. package/dist/components/__tests__/consent-flow.e2e.test.js +0 -1
  39. package/dist/components/__tests__/models-prop.e2e.test.cjs +0 -1
  40. package/dist/components/__tests__/models-prop.e2e.test.js +0 -1
  41. package/dist/components/__tests__/ui-source-tracking.e2e.test.cjs +0 -1
  42. package/dist/components/__tests__/ui-source-tracking.e2e.test.js +0 -1
  43. package/dist/components/iab/__tests__/e2e-setup.cjs +0 -1
  44. package/dist/components/iab/__tests__/e2e-setup.js +0 -1
  45. package/dist/components/iab/__tests__/fixtures/mock-consent-state.cjs +0 -1
  46. package/dist/components/iab/__tests__/fixtures/mock-consent-state.d.ts +0 -212
  47. package/dist/components/iab/__tests__/fixtures/mock-consent-state.d.ts.map +0 -1
  48. package/dist/components/iab/__tests__/fixtures/mock-consent-state.js +0 -1
  49. package/dist/components/iab/__tests__/iab-banner.e2e.test.cjs +0 -1
  50. package/dist/components/iab/__tests__/iab-banner.e2e.test.js +0 -1
  51. package/dist/components/iab/__tests__/iab-consent-flow.e2e.test.cjs +0 -1
  52. package/dist/components/iab/__tests__/iab-consent-flow.e2e.test.js +0 -1
  53. package/dist/components/iab/__tests__/iab-events.e2e.test.cjs +0 -1
  54. package/dist/components/iab/__tests__/iab-events.e2e.test.js +0 -1
  55. package/dist/components/iab/__tests__/iab-gvl.e2e.test.cjs +0 -1
  56. package/dist/components/iab/__tests__/iab-gvl.e2e.test.js +0 -1
  57. package/dist/components/iab/__tests__/iab-preference-center.e2e.test.cjs +0 -1
  58. package/dist/components/iab/__tests__/iab-preference-center.e2e.test.js +0 -1
  59. package/dist/components/iab/__tests__/iab-storage.e2e.test.cjs +0 -1
  60. package/dist/components/iab/__tests__/iab-storage.e2e.test.js +0 -1
  61. package/dist/components/iab/__tests__/iab-stub.e2e.test.cjs +0 -1
  62. package/dist/components/iab/__tests__/iab-stub.e2e.test.js +0 -1
  63. package/dist/components/iab/__tests__/iab-tcfapi.e2e.test.cjs +0 -1
  64. package/dist/components/iab/__tests__/iab-tcfapi.e2e.test.js +0 -1
  65. package/dist/components/iab/__tests__/msw-handlers.cjs +0 -1
  66. package/dist/components/iab/__tests__/msw-handlers.js +0 -1
  67. package/dist/components/iab-consent-banner/__tests__/iab-consent-banner.test.cjs +0 -1
  68. package/dist/components/iab-consent-banner/__tests__/iab-consent-banner.test.js +0 -1
  69. package/dist/components/iab-consent-dialog/__tests__/legitimate-interest-ui.test.cjs +0 -1
  70. package/dist/components/iab-consent-dialog/__tests__/legitimate-interest-ui.test.js +0 -1
  71. package/dist/components/iab-consent-dialog/__tests__/preference-center.test.cjs +0 -1
  72. package/dist/components/iab-consent-dialog/__tests__/preference-center.test.js +0 -1
  73. package/dist/components/iab-consent-dialog/__tests__/purposes-tab.test.cjs +0 -1
  74. package/dist/components/iab-consent-dialog/__tests__/purposes-tab.test.js +0 -1
  75. package/dist/components/iab-consent-dialog/__tests__/vendors-tab.test.cjs +0 -1
  76. package/dist/components/iab-consent-dialog/__tests__/vendors-tab.test.js +0 -1
  77. package/dist/components/shared/ui/__tests__/primitives.test.cjs +0 -1
  78. package/dist/components/shared/ui/__tests__/primitives.test.js +0 -1
  79. package/dist/hooks/__tests__/__screenshots__/use-color-scheme.test.tsx/useColorScheme-cleans-up-system-preference-listener-on-unmount-1.cjs +0 -1
  80. package/dist/hooks/__tests__/__screenshots__/use-color-scheme.test.tsx/useColorScheme-cleans-up-system-preference-listener-on-unmount-1.js +0 -1
  81. package/dist/hooks/__tests__/__screenshots__/use-color-scheme.test.tsx/useColorScheme-handles-default-theme-based-on-document-class-1.cjs +0 -1
  82. package/dist/hooks/__tests__/__screenshots__/use-color-scheme.test.tsx/useColorScheme-handles-default-theme-based-on-document-class-1.js +0 -1
  83. package/dist/hooks/__tests__/__screenshots__/use-color-scheme.test.tsx/useColorScheme-responds-to-system-preference-1.cjs +0 -1
  84. package/dist/hooks/__tests__/__screenshots__/use-color-scheme.test.tsx/useColorScheme-responds-to-system-preference-1.js +0 -1
  85. package/dist/hooks/__tests__/__screenshots__/use-color-scheme.test.tsx/useColorScheme-sets-dark-theme-correctly-1.cjs +0 -1
  86. package/dist/hooks/__tests__/__screenshots__/use-color-scheme.test.tsx/useColorScheme-sets-dark-theme-correctly-1.js +0 -1
  87. package/dist/hooks/__tests__/__screenshots__/use-color-scheme.test.tsx/useColorScheme-updates-theme-when-default-theme-changes-1.cjs +0 -1
  88. package/dist/hooks/__tests__/__screenshots__/use-color-scheme.test.tsx/useColorScheme-updates-theme-when-default-theme-changes-1.js +0 -1
  89. package/dist/hooks/__tests__/__screenshots__/use-color-scheme.test.tsx/useColorScheme-updates-theme-when-system-preference-changes-1.cjs +0 -1
  90. package/dist/hooks/__tests__/__screenshots__/use-color-scheme.test.tsx/useColorScheme-updates-theme-when-system-preference-changes-1.js +0 -1
  91. package/dist/hooks/__tests__/__screenshots__/use-consent-manager.test.tsx/useConsentManager-provides-manager-object-when-configured-1.cjs +0 -1
  92. package/dist/hooks/__tests__/__screenshots__/use-consent-manager.test.tsx/useConsentManager-provides-manager-object-when-configured-1.js +0 -1
  93. package/dist/hooks/__tests__/__screenshots__/use-styles.test.tsx/useStyles-handles-string-className-correctly-1.cjs +0 -1
  94. package/dist/hooks/__tests__/__screenshots__/use-styles.test.tsx/useStyles-handles-string-className-correctly-1.js +0 -1
  95. package/dist/hooks/__tests__/__screenshots__/use-styles.test.tsx/useStyles-merges-theme-and-component-styles-correctly-1.cjs +0 -1
  96. package/dist/hooks/__tests__/__screenshots__/use-styles.test.tsx/useStyles-merges-theme-and-component-styles-correctly-1.js +0 -1
  97. 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
  98. 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
  99. 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
  100. 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
  101. package/dist/hooks/__tests__/__screenshots__/use-theme.test.tsx/useTheme-local-theme-takes-precedence-over-global-theme-1.cjs +0 -1
  102. package/dist/hooks/__tests__/__screenshots__/use-theme.test.tsx/useTheme-local-theme-takes-precedence-over-global-theme-1.js +0 -1
  103. package/dist/hooks/__tests__/__screenshots__/use-translations.test.tsx/useTranslations-Custom-English-instead-of-English-when-German-is-selected-1.cjs +0 -1
  104. package/dist/hooks/__tests__/__screenshots__/use-translations.test.tsx/useTranslations-Custom-English-instead-of-English-when-German-is-selected-1.js +0 -1
  105. package/dist/hooks/__tests__/__screenshots__/use-translations.test.tsx/useTranslations-falls-back-to-English-when-selected-language-is-not-available-1.cjs +0 -1
  106. package/dist/hooks/__tests__/__screenshots__/use-translations.test.tsx/useTranslations-falls-back-to-English-when-selected-language-is-not-available-1.js +0 -1
  107. package/dist/hooks/__tests__/__screenshots__/use-translations.test.tsx/useTranslations-merges-custom-translations-with-defaults-1.cjs +0 -1
  108. package/dist/hooks/__tests__/__screenshots__/use-translations.test.tsx/useTranslations-merges-custom-translations-with-defaults-1.js +0 -1
  109. package/dist/hooks/__tests__/__screenshots__/use-translations.test.tsx/useTranslations-returns-English-translations-by-default-1.cjs +0 -1
  110. package/dist/hooks/__tests__/__screenshots__/use-translations.test.tsx/useTranslations-returns-English-translations-by-default-1.js +0 -1
  111. package/dist/hooks/__tests__/use-color-scheme.test.cjs +0 -1
  112. package/dist/hooks/__tests__/use-color-scheme.test.js +0 -1
  113. package/dist/hooks/__tests__/use-consent-manager.test.cjs +0 -1
  114. package/dist/hooks/__tests__/use-consent-manager.test.js +0 -1
  115. package/dist/hooks/__tests__/use-focus-trap.test.cjs +0 -1
  116. package/dist/hooks/__tests__/use-focus-trap.test.js +0 -1
  117. package/dist/hooks/__tests__/use-scroll-lock.test.cjs +0 -1
  118. package/dist/hooks/__tests__/use-scroll-lock.test.js +0 -1
  119. package/dist/hooks/__tests__/use-styles.test.cjs +0 -1
  120. package/dist/hooks/__tests__/use-styles.test.js +0 -1
  121. package/dist/hooks/__tests__/use-theme.test.cjs +0 -1
  122. package/dist/hooks/__tests__/use-theme.test.js +0 -1
  123. package/dist/hooks/__tests__/use-translations.test.cjs +0 -1
  124. package/dist/hooks/__tests__/use-translations.test.js +0 -1
  125. package/dist/mockServiceWorker.js +0 -349
  126. 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
  127. 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
  128. 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
  129. 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
  130. 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
  131. 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
  132. package/dist/providers/__tests__/__screenshots__/provider-hydration.test.tsx/ConsentManagerProvider-Hydration-Behavior-should-handle-rapid-re-renders-without-blocking-children-1.cjs +0 -1
  133. package/dist/providers/__tests__/__screenshots__/provider-hydration.test.tsx/ConsentManagerProvider-Hydration-Behavior-should-handle-rapid-re-renders-without-blocking-children-1.js +0 -1
  134. 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
  135. 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
  136. package/dist/providers/__tests__/__screenshots__/provider-hydration.test.tsx/ConsentManagerProvider-Hydration-Behavior-should-render-children-immediately-without-blocking-during-hydration-1.cjs +0 -1
  137. package/dist/providers/__tests__/__screenshots__/provider-hydration.test.tsx/ConsentManagerProvider-Hydration-Behavior-should-render-children-immediately-without-blocking-during-hydration-1.js +0 -1
  138. 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
  139. 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
  140. package/dist/providers/__tests__/provider-basic.test.cjs +0 -1
  141. package/dist/providers/__tests__/provider-basic.test.js +0 -1
  142. package/dist/providers/__tests__/provider-context.test.cjs +0 -1
  143. package/dist/providers/__tests__/provider-context.test.js +0 -1
  144. package/dist/providers/__tests__/provider-errors.test.cjs +0 -1
  145. package/dist/providers/__tests__/provider-errors.test.js +0 -1
  146. package/dist/providers/__tests__/provider-hydration.test.cjs +0 -1
  147. package/dist/providers/__tests__/provider-hydration.test.js +0 -1
  148. package/dist/providers/__tests__/test-helpers.cjs +0 -1
  149. package/dist/providers/__tests__/test-helpers.js +0 -1
  150. package/dist/server/headers.test.cjs +0 -1
  151. package/dist/server/headers.test.d.ts +0 -2
  152. package/dist/server/headers.test.d.ts.map +0 -1
  153. package/dist/server/headers.test.js +0 -1
  154. package/dist/server/normalize-url.test.cjs +0 -1
  155. package/dist/server/normalize-url.test.d.ts +0 -2
  156. package/dist/server/normalize-url.test.d.ts.map +0 -1
  157. package/dist/server/normalize-url.test.js +0 -1
  158. package/dist/static/image/ConsentManagerProvider-Basic-Request-Behavior-should-make-a-new-request-when-core-options-change-1.png +0 -0
  159. 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
  160. package/dist/static/image/ConsentManagerProvider-Basic-Request-Behavior-should-only-make-one-initial-request-for-consent-banner-status-1.png +0 -0
  161. package/dist/static/image/ConsentManagerProvider-Hydration-Behavior-should-handle-rapid-re-renders-without-blocking-children-1.png +0 -0
  162. package/dist/static/image/ConsentManagerProvider-Hydration-Behavior-should-not-block-SSR-provider-content-when-SSR-provider-wraps-ConsentManager-1.png +0 -0
  163. package/dist/static/image/ConsentManagerProvider-Hydration-Behavior-should-render-children-immediately-without-blocking-during-hydration-1.png +0 -0
  164. package/dist/static/image/ConsentManagerProvider-Hydration-Behavior-should-use-startTransition-for-non-blocking-state-updates-during-hydration-1.png +0 -0
  165. package/dist/static/image/useColorScheme-cleans-up-system-preference-listener-on-unmount-1.png +0 -0
  166. package/dist/static/image/useColorScheme-handles-default-theme-based-on-document-class-1.png +0 -0
  167. package/dist/static/image/useColorScheme-responds-to-system-preference-1.png +0 -0
  168. package/dist/static/image/useColorScheme-sets-dark-theme-correctly-1.png +0 -0
  169. package/dist/static/image/useColorScheme-updates-theme-when-default-theme-changes-1.png +0 -0
  170. package/dist/static/image/useColorScheme-updates-theme-when-system-preference-changes-1.png +0 -0
  171. package/dist/static/image/useConsentManager-provides-manager-object-when-configured-1.png +0 -0
  172. package/dist/static/image/useStyles-handles-string-className-correctly-1.png +0 -0
  173. package/dist/static/image/useStyles-merges-theme-and-component-styles-correctly-1.png +0 -0
  174. package/dist/static/image/useStyles-should-remove-base-default-styles-but-keep-theme-and-component-classNames-when-noStyle--true-1.png +0 -0
  175. package/dist/static/image/useStyles-should-remove-default-styles-but-keep-custom-classNames-when-theme-object-provides-noStyle--true-1.png +0 -0
  176. package/dist/static/image/useTheme-local-theme-takes-precedence-over-global-theme-1.png +0 -0
  177. package/dist/static/image/useTranslations-Custom-English-instead-of-English-when-German-is-selected-1.png +0 -0
  178. package/dist/static/image/useTranslations-falls-back-to-English-when-selected-language-is-not-available-1.png +0 -0
  179. package/dist/static/image/useTranslations-merges-custom-translations-with-defaults-1.png +0 -0
  180. package/dist/static/image/useTranslations-returns-English-translations-by-default-1.png +0 -0
  181. package/dist/test-setup.browser.cjs +0 -1
  182. package/dist/test-setup.browser.d.ts +0 -8
  183. package/dist/test-setup.browser.d.ts.map +0 -1
  184. 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_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()})})});
@@ -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 Stub 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)("__tcfapi Availability",()=>{(0,external_vitest_namespaceObject.test)("__tcfapi should be available after CMP loads",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)(),(0,external_vitest_namespaceObject.expect)(window.__tcfapi).toBeDefined(),(0,external_vitest_namespaceObject.expect)(typeof window.__tcfapi).toBe("function")}),(0,external_vitest_namespaceObject.test)("__tcfapi should accept standard parameters",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=window.__tcfapi;(0,external_vitest_namespaceObject.expect)(e).toBeDefined(),await new Promise(t=>{e?.("ping",2,()=>{t()})})}),(0,external_vitest_namespaceObject.test)("__tcfapi should accept optional parameter",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=window.__tcfapi,t=await new Promise(t=>{e?.("removeEventListener",2,e=>{t(e)},12345)});(0,external_vitest_namespaceObject.expect)(t).toBe(!1)})}),(0,external_vitest_namespaceObject.describe)("Stub Ping Behavior",()=>{(0,external_vitest_namespaceObject.test)("ping should return cmpLoaded=true after CMP 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 new Promise(e=>{window.__tcfapi?.("ping",2,t=>{e(t)})});(0,external_vitest_namespaceObject.expect)(e.cmpLoaded).toBe(!0)}),(0,external_vitest_namespaceObject.test)('ping should return cmpStatus="loaded" after CMP 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 new Promise(e=>{window.__tcfapi?.("ping",2,t=>{e(t)})});(0,external_vitest_namespaceObject.expect)(e.cmpStatus).toBe("loaded")})}),(0,external_vitest_namespaceObject.describe)("Queue Processing",()=>{(0,external_vitest_namespaceObject.test)("calls should be processed after CMP loads",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 new Promise(e=>{window.__tcfapi?.("getTCData",2,t=>{e(t)})});(0,external_vitest_namespaceObject.expect)(e).toBeDefined(),(0,external_vitest_namespaceObject.expect)(e).toHaveProperty("tcString")})}),(0,external_vitest_namespaceObject.describe)("Command Handling",()=>{(0,external_vitest_namespaceObject.test)("should handle ping command",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 new Promise(e=>{window.__tcfapi?.("ping",2,t=>{e(t)})});(0,external_vitest_namespaceObject.expect)(e.apiVersion).toBe("2.3")}),(0,external_vitest_namespaceObject.test)("should handle getTCData command",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 new Promise(e=>{window.__tcfapi?.("getTCData",2,t=>{e(t)})});(0,external_vitest_namespaceObject.expect)(e).toBeDefined(),(0,external_vitest_namespaceObject.expect)(typeof e.gdprApplies).toBe("boolean")}),(0,external_vitest_namespaceObject.test)("should handle addEventListener command",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 new Promise(e=>{window.__tcfapi?.("addEventListener",2,t=>{e(t)})});(0,external_vitest_namespaceObject.expect)(e.listenerId).toBeDefined(),(0,external_vitest_namespaceObject.expect)(typeof e.listenerId).toBe("number")}),(0,external_vitest_namespaceObject.test)("should handle getVendorList command",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 new Promise(e=>{window.__tcfapi?.("getVendorList",2,t=>{e(t)})});(0,external_vitest_namespaceObject.expect)(e.purposes).toBeDefined()}),(0,external_vitest_namespaceObject.test)("should return false for unknown commands",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 new Promise(e=>{window.__tcfapi?.("unknownCommand",2,(t,a)=>{e({data:t,success:a})})});(0,external_vitest_namespaceObject.expect)(e.success).toBe(!1)})})}),__webpack_exports__)exports[__rspack_i]=__webpack_exports__[__rspack_i];Object.defineProperty(exports,"__esModule",{value:!0});
@@ -1 +0,0 @@
1
- import{jsx as a,jsxs as t}from"react/jsx-runtime";import{beforeEach as e,describe as n,expect as i,test as o,vi as d}from"vitest";import{render as s}from"vitest-browser-react";import{IABConsentBanner as r}from"../../iab-consent-banner/index.js";import{IABConsentDialog as c}from"../../iab-consent-dialog/index.js";import{ConsentManagerProvider as w,clearConsentRuntimeCache as p}from"../../../providers/consent-manager-provider.js";import{clearConsentState as l,defaultIABOptions as m,waitForCMP as f,waitForElement as b}from"./e2e-setup.js";n("IAB Stub E2E Tests",()=>{e(()=>{l(),d.clearAllMocks(),p()}),n("__tcfapi Availability",()=>{o("__tcfapi should be available after CMP loads",async()=>{s(t(w,{options:m,children:[a(r,{}),a(c,{})]})),await b('[data-testid="iab-consent-banner-card"]'),await f(),i(window.__tcfapi).toBeDefined(),i(typeof window.__tcfapi).toBe("function")}),o("__tcfapi should accept standard parameters",async()=>{s(t(w,{options:m,children:[a(r,{}),a(c,{})]})),await b('[data-testid="iab-consent-banner-card"]'),await f();let e=window.__tcfapi;i(e).toBeDefined(),await new Promise(a=>{e?.("ping",2,()=>{a()})})}),o("__tcfapi should accept optional parameter",async()=>{s(t(w,{options:m,children:[a(r,{}),a(c,{})]})),await b('[data-testid="iab-consent-banner-card"]'),await f();let e=window.__tcfapi;i(await new Promise(a=>{e?.("removeEventListener",2,t=>{a(t)},12345)})).toBe(!1)})}),n("Stub Ping Behavior",()=>{o("ping should return cmpLoaded=true after CMP ready",async()=>{s(t(w,{options:m,children:[a(r,{}),a(c,{})]})),await b('[data-testid="iab-consent-banner-card"]'),await f(),i((await new Promise(a=>{window.__tcfapi?.("ping",2,t=>{a(t)})})).cmpLoaded).toBe(!0)}),o('ping should return cmpStatus="loaded" after CMP ready',async()=>{s(t(w,{options:m,children:[a(r,{}),a(c,{})]})),await b('[data-testid="iab-consent-banner-card"]'),await f(),i((await new Promise(a=>{window.__tcfapi?.("ping",2,t=>{a(t)})})).cmpStatus).toBe("loaded")})}),n("Queue Processing",()=>{o("calls should be processed after CMP loads",async()=>{s(t(w,{options:m,children:[a(r,{}),a(c,{})]})),await b('[data-testid="iab-consent-banner-card"]'),await f();let e=await new Promise(a=>{window.__tcfapi?.("getTCData",2,t=>{a(t)})});i(e).toBeDefined(),i(e).toHaveProperty("tcString")})}),n("Command Handling",()=>{o("should handle ping command",async()=>{s(t(w,{options:m,children:[a(r,{}),a(c,{})]})),await b('[data-testid="iab-consent-banner-card"]'),await f(),i((await new Promise(a=>{window.__tcfapi?.("ping",2,t=>{a(t)})})).apiVersion).toBe("2.3")}),o("should handle getTCData command",async()=>{s(t(w,{options:m,children:[a(r,{}),a(c,{})]})),await b('[data-testid="iab-consent-banner-card"]'),await f();let e=await new Promise(a=>{window.__tcfapi?.("getTCData",2,t=>{a(t)})});i(e).toBeDefined(),i(typeof e.gdprApplies).toBe("boolean")}),o("should handle addEventListener command",async()=>{s(t(w,{options:m,children:[a(r,{}),a(c,{})]})),await b('[data-testid="iab-consent-banner-card"]'),await f();let e=await new Promise(a=>{window.__tcfapi?.("addEventListener",2,t=>{a(t)})});i(e.listenerId).toBeDefined(),i(typeof e.listenerId).toBe("number")}),o("should handle getVendorList command",async()=>{s(t(w,{options:m,children:[a(r,{}),a(c,{})]})),await b('[data-testid="iab-consent-banner-card"]'),await f(),i((await new Promise(a=>{window.__tcfapi?.("getVendorList",2,t=>{a(t)})})).purposes).toBeDefined()}),o("should return false for unknown commands",async()=>{s(t(w,{options:m,children:[a(r,{}),a(c,{})]})),await b('[data-testid="iab-consent-banner-card"]'),await f(),i((await new Promise(a=>{window.__tcfapi?.("unknownCommand",2,(t,e)=>{a({data:t,success:e})})})).success).toBe(!1)})})});