@c15t/react 1.0.5 → 1.1.0

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 (153) hide show
  1. package/dist/components/consent-manager-dialog/__tests__/styles.spec.cjs +1 -239
  2. package/dist/components/consent-manager-dialog/__tests__/styles.spec.js +1 -211
  3. package/dist/components/consent-manager-dialog/atoms/dialog-card.cjs +1 -188
  4. package/dist/components/consent-manager-dialog/atoms/dialog-card.js +1 -108
  5. package/dist/components/consent-manager-dialog/atoms/overlay.cjs +1 -84
  6. package/dist/components/consent-manager-dialog/atoms/overlay.d.ts +1 -1
  7. package/dist/components/consent-manager-dialog/atoms/overlay.d.ts.map +1 -1
  8. package/dist/components/consent-manager-dialog/atoms/overlay.js +1 -37
  9. package/dist/components/consent-manager-dialog/consent-manager-dialog.cjs +1 -143
  10. package/dist/components/consent-manager-dialog/consent-manager-dialog.d.ts +5 -0
  11. package/dist/components/consent-manager-dialog/consent-manager-dialog.d.ts.map +1 -1
  12. package/dist/components/consent-manager-dialog/consent-manager-dialog.js +1 -99
  13. package/dist/components/consent-manager-dialog/consent-manager-dialog.module.cjs +1 -52
  14. package/dist/components/consent-manager-dialog/consent-manager-dialog.module.js +1 -18
  15. package/dist/components/consent-manager-dialog/consent-manager-dialog_module.css +1 -217
  16. package/dist/components/consent-manager-dialog/index.cjs +1 -76
  17. package/dist/components/consent-manager-dialog/index.js +1 -17
  18. package/dist/components/consent-manager-dialog/theme.cjs +1 -18
  19. package/dist/components/consent-manager-widget/__tests__/styles.spec.cjs +1 -249
  20. package/dist/components/consent-manager-widget/__tests__/styles.spec.js +1 -221
  21. package/dist/components/consent-manager-widget/atoms/accordion.cjs +1 -195
  22. package/dist/components/consent-manager-widget/atoms/accordion.js +1 -106
  23. package/dist/components/consent-manager-widget/atoms/button.cjs +1 -107
  24. package/dist/components/consent-manager-widget/atoms/button.js +1 -52
  25. package/dist/components/consent-manager-widget/atoms/footer.cjs +1 -76
  26. package/dist/components/consent-manager-widget/atoms/footer.js +1 -23
  27. package/dist/components/consent-manager-widget/atoms/root.cjs +1 -61
  28. package/dist/components/consent-manager-widget/atoms/root.js +1 -24
  29. package/dist/components/consent-manager-widget/consent-manager-widget.cjs +1 -84
  30. package/dist/components/consent-manager-widget/consent-manager-widget.js +1 -50
  31. package/dist/components/consent-manager-widget/consent-manager-widget.module.cjs +1 -60
  32. package/dist/components/consent-manager-widget/consent-manager-widget.module.js +1 -26
  33. package/dist/components/consent-manager-widget/consent-manager-widget_module.css +1 -332
  34. package/dist/components/consent-manager-widget/index.cjs +1 -126
  35. package/dist/components/consent-manager-widget/index.js +1 -35
  36. package/dist/components/consent-manager-widget/theme.cjs +1 -18
  37. package/dist/components/consent-manager-widget/types.cjs +1 -18
  38. package/dist/components/cookie-banner/__tests__/cookie-banner.e2e.test.cjs +1 -189
  39. package/dist/components/cookie-banner/__tests__/cookie-banner.e2e.test.js +1 -183
  40. package/dist/components/cookie-banner/__tests__/styles.spec.cjs +1 -251
  41. package/dist/components/cookie-banner/__tests__/styles.spec.js +1 -223
  42. package/dist/components/cookie-banner/atoms/overlay.cjs +1 -87
  43. package/dist/components/cookie-banner/atoms/overlay.d.ts.map +1 -1
  44. package/dist/components/cookie-banner/atoms/overlay.js +1 -40
  45. package/dist/components/cookie-banner/atoms/root.cjs +1 -129
  46. package/dist/components/cookie-banner/atoms/root.d.ts.map +1 -1
  47. package/dist/components/cookie-banner/atoms/root.js +1 -82
  48. package/dist/components/cookie-banner/components.cjs +1 -216
  49. package/dist/components/cookie-banner/components.js +1 -121
  50. package/dist/components/cookie-banner/cookie-banner.cjs +1 -99
  51. package/dist/components/cookie-banner/cookie-banner.js +1 -65
  52. package/dist/components/cookie-banner/cookie-banner.module.cjs +1 -55
  53. package/dist/components/cookie-banner/cookie-banner.module.js +1 -21
  54. package/dist/components/cookie-banner/cookie-banner_module.css +1 -224
  55. package/dist/components/cookie-banner/error-boundary.cjs +1 -66
  56. package/dist/components/cookie-banner/error-boundary.js +1 -32
  57. package/dist/components/cookie-banner/index.cjs +1 -101
  58. package/dist/components/cookie-banner/index.js +1 -26
  59. package/dist/components/cookie-banner/theme.cjs +1 -18
  60. package/dist/components/shared/libs/polymorphic.cjs +1 -18
  61. package/dist/components/shared/libs/recursive-clone-children.cjs +1 -49
  62. package/dist/components/shared/libs/recursive-clone-children.js +1 -15
  63. package/dist/components/shared/primitives/box.cjs +1 -53
  64. package/dist/components/shared/primitives/box.js +1 -19
  65. package/dist/components/shared/primitives/button.cjs +1 -96
  66. package/dist/components/shared/primitives/button.d.ts +2 -86
  67. package/dist/components/shared/primitives/button.d.ts.map +1 -1
  68. package/dist/components/shared/primitives/button.js +1 -62
  69. package/dist/components/shared/primitives/button.types.cjs +1 -18
  70. package/dist/components/shared/ui/accordion/accordion.cjs +1 -226
  71. package/dist/components/shared/ui/accordion/accordion.js +1 -164
  72. package/dist/components/shared/ui/accordion/accordion.module.cjs +1 -49
  73. package/dist/components/shared/ui/accordion/accordion.module.js +1 -15
  74. package/dist/components/shared/ui/accordion/accordion.types.cjs +1 -18
  75. package/dist/components/shared/ui/accordion/accordion_module.css +1 -216
  76. package/dist/components/shared/ui/accordion/index.cjs +1 -69
  77. package/dist/components/shared/ui/accordion/index.js +1 -2
  78. package/dist/components/shared/ui/button/button.cjs +1 -199
  79. package/dist/components/shared/ui/button/button.d.ts +36 -182
  80. package/dist/components/shared/ui/button/button.d.ts.map +1 -1
  81. package/dist/components/shared/ui/button/button.js +1 -149
  82. package/dist/components/shared/ui/button/button.module.cjs +1 -65
  83. package/dist/components/shared/ui/button/button.module.js +1 -31
  84. package/dist/components/shared/ui/button/button.types.cjs +1 -18
  85. package/dist/components/shared/ui/button/button.types.d.ts +2 -0
  86. package/dist/components/shared/ui/button/button.types.d.ts.map +1 -1
  87. package/dist/components/shared/ui/button/button_module.css +1 -268
  88. package/dist/components/shared/ui/button/index.cjs +1 -69
  89. package/dist/components/shared/ui/button/index.js +1 -2
  90. package/dist/components/shared/ui/icon.cjs +1 -57
  91. package/dist/components/shared/ui/icon.js +1 -23
  92. package/dist/components/shared/ui/logo.cjs +1 -90
  93. package/dist/components/shared/ui/logo.js +1 -53
  94. package/dist/components/shared/ui/switch/index.cjs +1 -69
  95. package/dist/components/shared/ui/switch/index.js +1 -2
  96. package/dist/components/shared/ui/switch/switch.cjs +1 -91
  97. package/dist/components/shared/ui/switch/switch.js +1 -47
  98. package/dist/components/shared/ui/switch/switch.module.cjs +1 -45
  99. package/dist/components/shared/ui/switch/switch.module.js +1 -11
  100. package/dist/components/shared/ui/switch/switch.types.cjs +1 -18
  101. package/dist/components/shared/ui/switch/switch_module.css +1 -197
  102. package/dist/context/consent-manager-context.cjs +1 -37
  103. package/dist/context/consent-manager-context.js +1 -3
  104. package/dist/context/theme-context.cjs +1 -47
  105. package/dist/context/theme-context.js +1 -10
  106. package/dist/hooks/__tests__/use-consent-manager.test.cjs +1 -76
  107. package/dist/hooks/__tests__/use-consent-manager.test.js +1 -70
  108. package/dist/hooks/__tests__/use-styles.test.cjs +1 -76
  109. package/dist/hooks/__tests__/use-styles.test.js +1 -70
  110. package/dist/hooks/__tests__/use-theme.test.cjs +1 -86
  111. package/dist/hooks/__tests__/use-theme.test.js +1 -80
  112. package/dist/hooks/index.cjs +1 -87
  113. package/dist/hooks/index.js +1 -20
  114. package/dist/hooks/use-color-scheme.cjs +1 -66
  115. package/dist/hooks/use-color-scheme.js +1 -32
  116. package/dist/hooks/use-consent-manager.cjs +1 -49
  117. package/dist/hooks/use-consent-manager.js +1 -15
  118. package/dist/hooks/use-focus-trap.cjs +1 -76
  119. package/dist/hooks/use-focus-trap.js +1 -42
  120. package/dist/hooks/use-scroll-lock.cjs +1 -55
  121. package/dist/hooks/use-scroll-lock.js +1 -21
  122. package/dist/hooks/use-styles.cjs +1 -94
  123. package/dist/hooks/use-styles.js +1 -60
  124. package/dist/hooks/use-theme.cjs +1 -53
  125. package/dist/hooks/use-theme.js +1 -19
  126. package/dist/hooks/use-translations.cjs +1 -57
  127. package/dist/hooks/use-translations.js +1 -23
  128. package/dist/index.cjs +1 -137
  129. package/dist/index.js +1 -20
  130. package/dist/providers/__tests__/provider-basic.test.cjs +1 -127
  131. package/dist/providers/__tests__/provider-basic.test.js +1 -121
  132. package/dist/providers/__tests__/provider-context.test.cjs +1 -139
  133. package/dist/providers/__tests__/provider-context.test.js +1 -133
  134. package/dist/providers/__tests__/provider-errors.test.cjs +1 -98
  135. package/dist/providers/__tests__/provider-errors.test.js +1 -92
  136. package/dist/providers/__tests__/test-helpers.cjs +1 -171
  137. package/dist/providers/__tests__/test-helpers.js +1 -134
  138. package/dist/providers/consent-manager-provider.cjs +1 -162
  139. package/dist/providers/consent-manager-provider.js +1 -128
  140. package/dist/types/consent-manager.cjs +1 -18
  141. package/dist/types/theme/index.cjs +1 -69
  142. package/dist/types/theme/index.js +1 -2
  143. package/dist/types/theme/style-keys.cjs +1 -18
  144. package/dist/types/theme/style-types.cjs +1 -18
  145. package/dist/utils/cn.cjs +1 -49
  146. package/dist/utils/cn.js +1 -5
  147. package/dist/utils/merge-styles.cjs +1 -62
  148. package/dist/utils/merge-styles.js +1 -28
  149. package/dist/utils/test-helpers.cjs +1 -70
  150. package/dist/utils/test-helpers.js +1 -33
  151. package/dist/utils/translations.cjs +1 -89
  152. package/dist/utils/translations.js +1 -49
  153. package/package.json +4 -6
@@ -1,189 +1 @@
1
- "use strict";
2
- var __webpack_exports__ = {};
3
- const jsx_runtime_namespaceObject = require("react/jsx-runtime");
4
- const external_vitest_namespaceObject = require("vitest");
5
- const external_vitest_browser_react_namespaceObject = require("vitest-browser-react");
6
- const consent_manager_dialog_cjs_namespaceObject = require("../../consent-manager-dialog/consent-manager-dialog.cjs");
7
- const consent_manager_provider_cjs_namespaceObject = require("../../../providers/consent-manager-provider.cjs");
8
- const external_cookie_banner_cjs_namespaceObject = require("../cookie-banner.cjs");
9
- let mockShowPopup = true;
10
- let mockIsPrivacyDialogOpen = false;
11
- external_vitest_namespaceObject.vi.mock('~/hooks/use-consent-manager', async (importOriginal)=>{
12
- const realModule = await importOriginal();
13
- return {
14
- useConsentManager: ()=>({
15
- ...realModule.useConsentManager(),
16
- showPopup: mockShowPopup,
17
- isPrivacyDialogOpen: mockIsPrivacyDialogOpen,
18
- setShowPopup: (value)=>{
19
- mockShowPopup = value;
20
- },
21
- setIsPrivacyDialogOpen: (value)=>{
22
- mockIsPrivacyDialogOpen = value;
23
- }
24
- })
25
- };
26
- });
27
- const localStorageMock = (()=>{
28
- let store = {};
29
- return {
30
- getItem: (key)=>store[key] || null,
31
- setItem: (key, value)=>{
32
- store[key] = value.toString();
33
- },
34
- removeItem: (key)=>{
35
- delete store[key];
36
- },
37
- clear: ()=>{
38
- store = {};
39
- }
40
- };
41
- })();
42
- Object.defineProperty(window, 'localStorage', {
43
- value: localStorageMock
44
- });
45
- const defaultOptions = {
46
- mode: 'offline'
47
- };
48
- (0, external_vitest_namespaceObject.describe)('CookieBanner E2E Tests', ()=>{
49
- (0, external_vitest_namespaceObject.beforeEach)(()=>{
50
- window.localStorage.clear();
51
- mockShowPopup = true;
52
- external_vitest_namespaceObject.vi.clearAllMocks();
53
- });
54
- (0, external_vitest_namespaceObject.test)('should show cookie banner on first visit', async ()=>{
55
- (0, external_vitest_browser_react_namespaceObject.render)(/*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsxs)(consent_manager_provider_cjs_namespaceObject.ConsentManagerProvider, {
56
- options: defaultOptions,
57
- children: [
58
- /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_cookie_banner_cjs_namespaceObject.CookieBanner, {}),
59
- /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(consent_manager_dialog_cjs_namespaceObject.ConsentManagerDialog, {})
60
- ]
61
- }));
62
- const element = document.body.querySelector('[data-testid="cookie-banner-root"]');
63
- (0, external_vitest_namespaceObject.expect)(element).toBeInTheDocument();
64
- (0, external_vitest_namespaceObject.expect)(mockShowPopup).toBe(true);
65
- (0, external_vitest_namespaceObject.expect)(document.querySelector('[data-testid="cookie-banner-title"]')).toBeInTheDocument();
66
- (0, external_vitest_namespaceObject.expect)(document.querySelector('[data-testid="cookie-banner-description"]')).toBeInTheDocument();
67
- (0, external_vitest_namespaceObject.expect)(document.querySelector('[data-testid="cookie-banner-reject-button"]')).toBeInTheDocument();
68
- (0, external_vitest_namespaceObject.expect)(document.querySelector('[data-testid="cookie-banner-customize-button"]')).toBeInTheDocument();
69
- (0, external_vitest_namespaceObject.expect)(document.querySelector('[data-testid="cookie-banner-accept-button"]')).toBeInTheDocument();
70
- });
71
- (0, external_vitest_namespaceObject.test)('should accept all cookies when clicking Accept All', async ()=>{
72
- (0, external_vitest_browser_react_namespaceObject.render)(/*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsxs)(consent_manager_provider_cjs_namespaceObject.ConsentManagerProvider, {
73
- options: defaultOptions,
74
- children: [
75
- /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_cookie_banner_cjs_namespaceObject.CookieBanner, {}),
76
- /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(consent_manager_dialog_cjs_namespaceObject.ConsentManagerDialog, {})
77
- ]
78
- }));
79
- const acceptButton = document.querySelector('[data-testid="cookie-banner-accept-button"]');
80
- acceptButton?.dispatchEvent(new MouseEvent('click', {
81
- bubbles: true
82
- }));
83
- await new Promise((resolve)=>setTimeout(resolve, 100));
84
- (0, external_vitest_namespaceObject.expect)(mockShowPopup).toBe(false);
85
- (0, external_vitest_namespaceObject.expect)(document.querySelector('[data-testid="cookie-banner-root"]')).not.toBeInTheDocument();
86
- const consent = JSON.parse(window.localStorage.getItem('privacy-consent-storage') || '{}');
87
- (0, external_vitest_namespaceObject.expect)(consent.consents).toBeTruthy();
88
- (0, external_vitest_namespaceObject.expect)(consent.consentInfo.type).toBe('all');
89
- });
90
- (0, external_vitest_namespaceObject.test)('should reject non-essential cookies when clicking Reject All', async ()=>{
91
- (0, external_vitest_browser_react_namespaceObject.render)(/*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsxs)(consent_manager_provider_cjs_namespaceObject.ConsentManagerProvider, {
92
- options: defaultOptions,
93
- children: [
94
- /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_cookie_banner_cjs_namespaceObject.CookieBanner, {}),
95
- /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(consent_manager_dialog_cjs_namespaceObject.ConsentManagerDialog, {})
96
- ]
97
- }));
98
- const rejectButton = document.querySelector('[data-testid="cookie-banner-reject-button"]');
99
- rejectButton?.dispatchEvent(new MouseEvent('click', {
100
- bubbles: true
101
- }));
102
- await new Promise((resolve)=>setTimeout(resolve, 100));
103
- (0, external_vitest_namespaceObject.expect)(mockShowPopup).toBe(false);
104
- (0, external_vitest_namespaceObject.expect)(document.querySelector('[data-testid="cookie-banner-root"]')).not.toBeInTheDocument();
105
- const consent = JSON.parse(window.localStorage.getItem('privacy-consent-storage') || '{}');
106
- (0, external_vitest_namespaceObject.expect)(consent.consents).toBeTruthy();
107
- (0, external_vitest_namespaceObject.expect)(consent.consentInfo.type).toBe('necessary');
108
- (0, external_vitest_namespaceObject.expect)(consent.consents.necessary).toBe(true);
109
- (0, external_vitest_namespaceObject.expect)(consent.consents.experience).toBe(false);
110
- (0, external_vitest_namespaceObject.expect)(consent.consents.functionality).toBe(false);
111
- (0, external_vitest_namespaceObject.expect)(consent.consents.marketing).toBe(false);
112
- (0, external_vitest_namespaceObject.expect)(consent.consents.measurement).toBe(false);
113
- });
114
- (0, external_vitest_namespaceObject.test)('should open consent manager dialog when clicking Customize', async ()=>{
115
- (0, external_vitest_browser_react_namespaceObject.render)(/*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsxs)(consent_manager_provider_cjs_namespaceObject.ConsentManagerProvider, {
116
- options: defaultOptions,
117
- children: [
118
- /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_cookie_banner_cjs_namespaceObject.CookieBanner, {}),
119
- /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(consent_manager_dialog_cjs_namespaceObject.ConsentManagerDialog, {})
120
- ]
121
- }));
122
- const customizeButton = document.querySelector('[data-testid="cookie-banner-customize-button"]');
123
- customizeButton?.dispatchEvent(new MouseEvent('click', {
124
- bubbles: true
125
- }));
126
- await new Promise((resolve)=>setTimeout(resolve, 100));
127
- (0, external_vitest_namespaceObject.expect)(mockShowPopup).toBe(false);
128
- (0, external_vitest_namespaceObject.expect)(document.querySelector('[data-testid="cookie-banner-root"]')).not.toBeInTheDocument();
129
- (0, external_vitest_namespaceObject.expect)(mockIsPrivacyDialogOpen).toBe(true);
130
- const dialog = document.querySelector('[data-testid="consent-manager-dialog-root"]');
131
- (0, external_vitest_namespaceObject.expect)(dialog).toBeInTheDocument();
132
- (0, external_vitest_namespaceObject.expect)(document.querySelector('[data-testid="consent-manager-widget-switch-necessary"]')).toBeInTheDocument();
133
- (0, external_vitest_namespaceObject.expect)(document.querySelector('[data-testid="consent-manager-widget-switch-marketing"]')).toBeInTheDocument();
134
- const marketingSwitch = document.querySelector('[data-testid="consent-manager-widget-switch-marketing"]');
135
- marketingSwitch?.dispatchEvent(new MouseEvent('click', {
136
- bubbles: true
137
- }));
138
- const saveButton = document.querySelector('[data-testid="consent-manager-widget-footer-save-button"]');
139
- saveButton?.dispatchEvent(new MouseEvent('click', {
140
- bubbles: true
141
- }));
142
- await new Promise((resolve)=>setTimeout(resolve, 100));
143
- (0, external_vitest_namespaceObject.expect)(mockIsPrivacyDialogOpen).toBe(false);
144
- const consent = JSON.parse(window.localStorage.getItem('privacy-consent-storage') || '{}');
145
- (0, external_vitest_namespaceObject.expect)(consent.consents).toBeTruthy();
146
- (0, external_vitest_namespaceObject.expect)(consent.consentInfo.type).toBe('custom');
147
- (0, external_vitest_namespaceObject.expect)(consent.consents.marketing).toBe(true);
148
- });
149
- (0, external_vitest_namespaceObject.test)('should be keyboard accessible', async ()=>{
150
- (0, external_vitest_browser_react_namespaceObject.render)(/*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsxs)(consent_manager_provider_cjs_namespaceObject.ConsentManagerProvider, {
151
- options: defaultOptions,
152
- children: [
153
- /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_cookie_banner_cjs_namespaceObject.CookieBanner, {}),
154
- /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(consent_manager_dialog_cjs_namespaceObject.ConsentManagerDialog, {})
155
- ]
156
- }));
157
- const rejectButton = document.querySelector('[data-testid="cookie-banner-reject-button"]');
158
- const customizeButton = document.querySelector('[data-testid="cookie-banner-customize-button"]');
159
- const acceptButton = document.querySelector('[data-testid="cookie-banner-accept-button"]');
160
- rejectButton.focus();
161
- (0, external_vitest_namespaceObject.expect)(document.activeElement).toBe(rejectButton);
162
- customizeButton.focus();
163
- (0, external_vitest_namespaceObject.expect)(document.activeElement).toBe(customizeButton);
164
- acceptButton.focus();
165
- (0, external_vitest_namespaceObject.expect)(document.activeElement).toBe(acceptButton);
166
- });
167
- (0, external_vitest_namespaceObject.test)('should handle scroll lock properly', async ()=>{
168
- (0, external_vitest_browser_react_namespaceObject.render)(/*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsxs)(consent_manager_provider_cjs_namespaceObject.ConsentManagerProvider, {
169
- options: defaultOptions,
170
- children: [
171
- /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_cookie_banner_cjs_namespaceObject.CookieBanner, {
172
- scrollLock: true
173
- }),
174
- /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(consent_manager_dialog_cjs_namespaceObject.ConsentManagerDialog, {})
175
- ]
176
- }));
177
- (0, external_vitest_namespaceObject.expect)(document.querySelector('[data-testid="cookie-banner-overlay"]')).toBeInTheDocument();
178
- const acceptButton = document.querySelector('[data-testid="cookie-banner-accept-button"]');
179
- acceptButton?.dispatchEvent(new MouseEvent('click', {
180
- bubbles: true
181
- }));
182
- await new Promise((resolve)=>setTimeout(resolve, 100));
183
- (0, external_vitest_namespaceObject.expect)(document.querySelector('[data-testid="cookie-banner-overlay"]')).not.toBeInTheDocument();
184
- });
185
- });
186
- for(var __webpack_i__ in __webpack_exports__)exports[__webpack_i__] = __webpack_exports__[__webpack_i__];
187
- Object.defineProperty(exports, '__esModule', {
188
- value: true
189
- });
1
+ "use strict";let __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__={};let jsx_runtime_namespaceObject=require("react/jsx-runtime"),external_vitest_namespaceObject=require("vitest"),external_vitest_browser_react_namespaceObject=require("vitest-browser-react"),consent_manager_dialog_cjs_namespaceObject=require("../../consent-manager-dialog/consent-manager-dialog.cjs"),consent_manager_provider_cjs_namespaceObject=require("../../../providers/consent-manager-provider.cjs"),external_cookie_banner_cjs_namespaceObject=require("../cookie-banner.cjs"),mockShowPopup=!0,mockIsPrivacyDialogOpen=!1;external_vitest_namespaceObject.vi.mock("~/hooks/use-consent-manager",async e=>{let t=await e();return{useConsentManager:()=>({...t.useConsentManager(),showPopup:mockShowPopup,isPrivacyDialogOpen:mockIsPrivacyDialogOpen,setShowPopup:e=>{mockShowPopup=e},setIsPrivacyDialogOpen:e=>{mockIsPrivacyDialogOpen=e}})}});let localStorageMock=(()=>{let e={};return{getItem:t=>e[t]||null,setItem:(t,n)=>{e[t]=n.toString()},removeItem:t=>{delete e[t]},clear:()=>{e={}}}})();Object.defineProperty(window,"localStorage",{value:localStorageMock});let defaultOptions={mode:"offline"};for(var __webpack_i__ in(0,external_vitest_namespaceObject.describe)("CookieBanner E2E Tests",()=>{(0,external_vitest_namespaceObject.beforeEach)(()=>{window.localStorage.clear(),mockShowPopup=!0,external_vitest_namespaceObject.vi.clearAllMocks()}),(0,external_vitest_namespaceObject.test)("should show cookie banner on first visit",async()=>{(0,external_vitest_browser_react_namespaceObject.render)((0,jsx_runtime_namespaceObject.jsxs)(consent_manager_provider_cjs_namespaceObject.ConsentManagerProvider,{options:defaultOptions,children:[(0,jsx_runtime_namespaceObject.jsx)(external_cookie_banner_cjs_namespaceObject.CookieBanner,{}),(0,jsx_runtime_namespaceObject.jsx)(consent_manager_dialog_cjs_namespaceObject.ConsentManagerDialog,{})]}));let e=document.body.querySelector('[data-testid="cookie-banner-root"]');(0,external_vitest_namespaceObject.expect)(e).toBeInTheDocument(),(0,external_vitest_namespaceObject.expect)(mockShowPopup).toBe(!0),(0,external_vitest_namespaceObject.expect)(document.querySelector('[data-testid="cookie-banner-title"]')).toBeInTheDocument(),(0,external_vitest_namespaceObject.expect)(document.querySelector('[data-testid="cookie-banner-description"]')).toBeInTheDocument(),(0,external_vitest_namespaceObject.expect)(document.querySelector('[data-testid="cookie-banner-reject-button"]')).toBeInTheDocument(),(0,external_vitest_namespaceObject.expect)(document.querySelector('[data-testid="cookie-banner-customize-button"]')).toBeInTheDocument(),(0,external_vitest_namespaceObject.expect)(document.querySelector('[data-testid="cookie-banner-accept-button"]')).toBeInTheDocument()}),(0,external_vitest_namespaceObject.test)("should accept all cookies when clicking Accept All",async()=>{(0,external_vitest_browser_react_namespaceObject.render)((0,jsx_runtime_namespaceObject.jsxs)(consent_manager_provider_cjs_namespaceObject.ConsentManagerProvider,{options:defaultOptions,children:[(0,jsx_runtime_namespaceObject.jsx)(external_cookie_banner_cjs_namespaceObject.CookieBanner,{}),(0,jsx_runtime_namespaceObject.jsx)(consent_manager_dialog_cjs_namespaceObject.ConsentManagerDialog,{})]}));let e=document.querySelector('[data-testid="cookie-banner-accept-button"]');e?.dispatchEvent(new MouseEvent("click",{bubbles:!0})),await new Promise(e=>setTimeout(e,100)),(0,external_vitest_namespaceObject.expect)(mockShowPopup).toBe(!1),(0,external_vitest_namespaceObject.expect)(document.querySelector('[data-testid="cookie-banner-root"]')).not.toBeInTheDocument();let t=JSON.parse(window.localStorage.getItem("privacy-consent-storage")||"{}");(0,external_vitest_namespaceObject.expect)(t.consents).toBeTruthy(),(0,external_vitest_namespaceObject.expect)(t.consentInfo.type).toBe("all")}),(0,external_vitest_namespaceObject.test)("should reject non-essential cookies when clicking Reject All",async()=>{(0,external_vitest_browser_react_namespaceObject.render)((0,jsx_runtime_namespaceObject.jsxs)(consent_manager_provider_cjs_namespaceObject.ConsentManagerProvider,{options:defaultOptions,children:[(0,jsx_runtime_namespaceObject.jsx)(external_cookie_banner_cjs_namespaceObject.CookieBanner,{}),(0,jsx_runtime_namespaceObject.jsx)(consent_manager_dialog_cjs_namespaceObject.ConsentManagerDialog,{})]}));let e=document.querySelector('[data-testid="cookie-banner-reject-button"]');e?.dispatchEvent(new MouseEvent("click",{bubbles:!0})),await new Promise(e=>setTimeout(e,100)),(0,external_vitest_namespaceObject.expect)(mockShowPopup).toBe(!1),(0,external_vitest_namespaceObject.expect)(document.querySelector('[data-testid="cookie-banner-root"]')).not.toBeInTheDocument();let t=JSON.parse(window.localStorage.getItem("privacy-consent-storage")||"{}");(0,external_vitest_namespaceObject.expect)(t.consents).toBeTruthy(),(0,external_vitest_namespaceObject.expect)(t.consentInfo.type).toBe("necessary"),(0,external_vitest_namespaceObject.expect)(t.consents.necessary).toBe(!0),(0,external_vitest_namespaceObject.expect)(t.consents.experience).toBe(!1),(0,external_vitest_namespaceObject.expect)(t.consents.functionality).toBe(!1),(0,external_vitest_namespaceObject.expect)(t.consents.marketing).toBe(!1),(0,external_vitest_namespaceObject.expect)(t.consents.measurement).toBe(!1)}),(0,external_vitest_namespaceObject.test)("should open consent manager dialog when clicking Customize",async()=>{(0,external_vitest_browser_react_namespaceObject.render)((0,jsx_runtime_namespaceObject.jsxs)(consent_manager_provider_cjs_namespaceObject.ConsentManagerProvider,{options:defaultOptions,children:[(0,jsx_runtime_namespaceObject.jsx)(external_cookie_banner_cjs_namespaceObject.CookieBanner,{}),(0,jsx_runtime_namespaceObject.jsx)(consent_manager_dialog_cjs_namespaceObject.ConsentManagerDialog,{})]}));let e=document.querySelector('[data-testid="cookie-banner-customize-button"]');e?.dispatchEvent(new MouseEvent("click",{bubbles:!0})),await new Promise(e=>setTimeout(e,100)),(0,external_vitest_namespaceObject.expect)(mockShowPopup).toBe(!1),(0,external_vitest_namespaceObject.expect)(document.querySelector('[data-testid="cookie-banner-root"]')).not.toBeInTheDocument(),(0,external_vitest_namespaceObject.expect)(mockIsPrivacyDialogOpen).toBe(!0);let t=document.querySelector('[data-testid="consent-manager-dialog-root"]');(0,external_vitest_namespaceObject.expect)(t).toBeInTheDocument(),(0,external_vitest_namespaceObject.expect)(document.querySelector('[data-testid="consent-manager-widget-switch-necessary"]')).toBeInTheDocument(),(0,external_vitest_namespaceObject.expect)(document.querySelector('[data-testid="consent-manager-widget-switch-marketing"]')).toBeInTheDocument();let n=document.querySelector('[data-testid="consent-manager-widget-switch-marketing"]');n?.dispatchEvent(new MouseEvent("click",{bubbles:!0}));let a=document.querySelector('[data-testid="consent-manager-widget-footer-save-button"]');a?.dispatchEvent(new MouseEvent("click",{bubbles:!0})),await new Promise(e=>setTimeout(e,100)),(0,external_vitest_namespaceObject.expect)(mockIsPrivacyDialogOpen).toBe(!1);let c=JSON.parse(window.localStorage.getItem("privacy-consent-storage")||"{}");(0,external_vitest_namespaceObject.expect)(c.consents).toBeTruthy(),(0,external_vitest_namespaceObject.expect)(c.consentInfo.type).toBe("custom"),(0,external_vitest_namespaceObject.expect)(c.consents.marketing).toBe(!0)}),(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:defaultOptions,children:[(0,jsx_runtime_namespaceObject.jsx)(external_cookie_banner_cjs_namespaceObject.CookieBanner,{}),(0,jsx_runtime_namespaceObject.jsx)(consent_manager_dialog_cjs_namespaceObject.ConsentManagerDialog,{})]}));let e=document.querySelector('[data-testid="cookie-banner-reject-button"]'),t=document.querySelector('[data-testid="cookie-banner-customize-button"]'),n=document.querySelector('[data-testid="cookie-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),n.focus(),(0,external_vitest_namespaceObject.expect)(document.activeElement).toBe(n)}),(0,external_vitest_namespaceObject.test)("should handle scroll lock properly",async()=>{(0,external_vitest_browser_react_namespaceObject.render)((0,jsx_runtime_namespaceObject.jsxs)(consent_manager_provider_cjs_namespaceObject.ConsentManagerProvider,{options:defaultOptions,children:[(0,jsx_runtime_namespaceObject.jsx)(external_cookie_banner_cjs_namespaceObject.CookieBanner,{scrollLock:!0}),(0,jsx_runtime_namespaceObject.jsx)(consent_manager_dialog_cjs_namespaceObject.ConsentManagerDialog,{})]})),(0,external_vitest_namespaceObject.expect)(document.querySelector('[data-testid="cookie-banner-overlay"]')).toBeInTheDocument();let e=document.querySelector('[data-testid="cookie-banner-accept-button"]');e?.dispatchEvent(new MouseEvent("click",{bubbles:!0})),await new Promise(e=>setTimeout(e,100)),(0,external_vitest_namespaceObject.expect)(document.querySelector('[data-testid="cookie-banner-overlay"]')).not.toBeInTheDocument()})}),__webpack_exports__)exports[__webpack_i__]=__webpack_exports__[__webpack_i__];Object.defineProperty(exports,"__esModule",{value:!0});
@@ -1,183 +1 @@
1
- import * as __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__ from "react/jsx-runtime";
2
- import * as __WEBPACK_EXTERNAL_MODULE_vitest__ from "vitest";
3
- import * as __WEBPACK_EXTERNAL_MODULE_vitest_browser_react_6a851916__ from "vitest-browser-react";
4
- import * as __WEBPACK_EXTERNAL_MODULE__consent_manager_dialog_consent_manager_dialog_js_9cbc4f9a__ from "../../consent-manager-dialog/consent-manager-dialog.js";
5
- import * as __WEBPACK_EXTERNAL_MODULE__providers_consent_manager_provider_js_47c65d87__ from "../../../providers/consent-manager-provider.js";
6
- import * as __WEBPACK_EXTERNAL_MODULE__cookie_banner_js_0a2d98b7__ from "../cookie-banner.js";
7
- let mockShowPopup = true;
8
- let mockIsPrivacyDialogOpen = false;
9
- __WEBPACK_EXTERNAL_MODULE_vitest__.vi.mock('~/hooks/use-consent-manager', async (importOriginal)=>{
10
- const realModule = await importOriginal();
11
- return {
12
- useConsentManager: ()=>({
13
- ...realModule.useConsentManager(),
14
- showPopup: mockShowPopup,
15
- isPrivacyDialogOpen: mockIsPrivacyDialogOpen,
16
- setShowPopup: (value)=>{
17
- mockShowPopup = value;
18
- },
19
- setIsPrivacyDialogOpen: (value)=>{
20
- mockIsPrivacyDialogOpen = value;
21
- }
22
- })
23
- };
24
- });
25
- const localStorageMock = (()=>{
26
- let store = {};
27
- return {
28
- getItem: (key)=>store[key] || null,
29
- setItem: (key, value)=>{
30
- store[key] = value.toString();
31
- },
32
- removeItem: (key)=>{
33
- delete store[key];
34
- },
35
- clear: ()=>{
36
- store = {};
37
- }
38
- };
39
- })();
40
- Object.defineProperty(window, 'localStorage', {
41
- value: localStorageMock
42
- });
43
- const defaultOptions = {
44
- mode: 'offline'
45
- };
46
- (0, __WEBPACK_EXTERNAL_MODULE_vitest__.describe)('CookieBanner E2E Tests', ()=>{
47
- (0, __WEBPACK_EXTERNAL_MODULE_vitest__.beforeEach)(()=>{
48
- window.localStorage.clear();
49
- mockShowPopup = true;
50
- __WEBPACK_EXTERNAL_MODULE_vitest__.vi.clearAllMocks();
51
- });
52
- (0, __WEBPACK_EXTERNAL_MODULE_vitest__.test)('should show cookie banner on first visit', async ()=>{
53
- (0, __WEBPACK_EXTERNAL_MODULE_vitest_browser_react_6a851916__.render)(/*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsxs)(__WEBPACK_EXTERNAL_MODULE__providers_consent_manager_provider_js_47c65d87__.ConsentManagerProvider, {
54
- options: defaultOptions,
55
- children: [
56
- /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(__WEBPACK_EXTERNAL_MODULE__cookie_banner_js_0a2d98b7__.CookieBanner, {}),
57
- /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(__WEBPACK_EXTERNAL_MODULE__consent_manager_dialog_consent_manager_dialog_js_9cbc4f9a__.ConsentManagerDialog, {})
58
- ]
59
- }));
60
- const element = document.body.querySelector('[data-testid="cookie-banner-root"]');
61
- (0, __WEBPACK_EXTERNAL_MODULE_vitest__.expect)(element).toBeInTheDocument();
62
- (0, __WEBPACK_EXTERNAL_MODULE_vitest__.expect)(mockShowPopup).toBe(true);
63
- (0, __WEBPACK_EXTERNAL_MODULE_vitest__.expect)(document.querySelector('[data-testid="cookie-banner-title"]')).toBeInTheDocument();
64
- (0, __WEBPACK_EXTERNAL_MODULE_vitest__.expect)(document.querySelector('[data-testid="cookie-banner-description"]')).toBeInTheDocument();
65
- (0, __WEBPACK_EXTERNAL_MODULE_vitest__.expect)(document.querySelector('[data-testid="cookie-banner-reject-button"]')).toBeInTheDocument();
66
- (0, __WEBPACK_EXTERNAL_MODULE_vitest__.expect)(document.querySelector('[data-testid="cookie-banner-customize-button"]')).toBeInTheDocument();
67
- (0, __WEBPACK_EXTERNAL_MODULE_vitest__.expect)(document.querySelector('[data-testid="cookie-banner-accept-button"]')).toBeInTheDocument();
68
- });
69
- (0, __WEBPACK_EXTERNAL_MODULE_vitest__.test)('should accept all cookies when clicking Accept All', async ()=>{
70
- (0, __WEBPACK_EXTERNAL_MODULE_vitest_browser_react_6a851916__.render)(/*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsxs)(__WEBPACK_EXTERNAL_MODULE__providers_consent_manager_provider_js_47c65d87__.ConsentManagerProvider, {
71
- options: defaultOptions,
72
- children: [
73
- /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(__WEBPACK_EXTERNAL_MODULE__cookie_banner_js_0a2d98b7__.CookieBanner, {}),
74
- /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(__WEBPACK_EXTERNAL_MODULE__consent_manager_dialog_consent_manager_dialog_js_9cbc4f9a__.ConsentManagerDialog, {})
75
- ]
76
- }));
77
- const acceptButton = document.querySelector('[data-testid="cookie-banner-accept-button"]');
78
- acceptButton?.dispatchEvent(new MouseEvent('click', {
79
- bubbles: true
80
- }));
81
- await new Promise((resolve)=>setTimeout(resolve, 100));
82
- (0, __WEBPACK_EXTERNAL_MODULE_vitest__.expect)(mockShowPopup).toBe(false);
83
- (0, __WEBPACK_EXTERNAL_MODULE_vitest__.expect)(document.querySelector('[data-testid="cookie-banner-root"]')).not.toBeInTheDocument();
84
- const consent = JSON.parse(window.localStorage.getItem('privacy-consent-storage') || '{}');
85
- (0, __WEBPACK_EXTERNAL_MODULE_vitest__.expect)(consent.consents).toBeTruthy();
86
- (0, __WEBPACK_EXTERNAL_MODULE_vitest__.expect)(consent.consentInfo.type).toBe('all');
87
- });
88
- (0, __WEBPACK_EXTERNAL_MODULE_vitest__.test)('should reject non-essential cookies when clicking Reject All', async ()=>{
89
- (0, __WEBPACK_EXTERNAL_MODULE_vitest_browser_react_6a851916__.render)(/*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsxs)(__WEBPACK_EXTERNAL_MODULE__providers_consent_manager_provider_js_47c65d87__.ConsentManagerProvider, {
90
- options: defaultOptions,
91
- children: [
92
- /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(__WEBPACK_EXTERNAL_MODULE__cookie_banner_js_0a2d98b7__.CookieBanner, {}),
93
- /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(__WEBPACK_EXTERNAL_MODULE__consent_manager_dialog_consent_manager_dialog_js_9cbc4f9a__.ConsentManagerDialog, {})
94
- ]
95
- }));
96
- const rejectButton = document.querySelector('[data-testid="cookie-banner-reject-button"]');
97
- rejectButton?.dispatchEvent(new MouseEvent('click', {
98
- bubbles: true
99
- }));
100
- await new Promise((resolve)=>setTimeout(resolve, 100));
101
- (0, __WEBPACK_EXTERNAL_MODULE_vitest__.expect)(mockShowPopup).toBe(false);
102
- (0, __WEBPACK_EXTERNAL_MODULE_vitest__.expect)(document.querySelector('[data-testid="cookie-banner-root"]')).not.toBeInTheDocument();
103
- const consent = JSON.parse(window.localStorage.getItem('privacy-consent-storage') || '{}');
104
- (0, __WEBPACK_EXTERNAL_MODULE_vitest__.expect)(consent.consents).toBeTruthy();
105
- (0, __WEBPACK_EXTERNAL_MODULE_vitest__.expect)(consent.consentInfo.type).toBe('necessary');
106
- (0, __WEBPACK_EXTERNAL_MODULE_vitest__.expect)(consent.consents.necessary).toBe(true);
107
- (0, __WEBPACK_EXTERNAL_MODULE_vitest__.expect)(consent.consents.experience).toBe(false);
108
- (0, __WEBPACK_EXTERNAL_MODULE_vitest__.expect)(consent.consents.functionality).toBe(false);
109
- (0, __WEBPACK_EXTERNAL_MODULE_vitest__.expect)(consent.consents.marketing).toBe(false);
110
- (0, __WEBPACK_EXTERNAL_MODULE_vitest__.expect)(consent.consents.measurement).toBe(false);
111
- });
112
- (0, __WEBPACK_EXTERNAL_MODULE_vitest__.test)('should open consent manager dialog when clicking Customize', async ()=>{
113
- (0, __WEBPACK_EXTERNAL_MODULE_vitest_browser_react_6a851916__.render)(/*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsxs)(__WEBPACK_EXTERNAL_MODULE__providers_consent_manager_provider_js_47c65d87__.ConsentManagerProvider, {
114
- options: defaultOptions,
115
- children: [
116
- /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(__WEBPACK_EXTERNAL_MODULE__cookie_banner_js_0a2d98b7__.CookieBanner, {}),
117
- /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(__WEBPACK_EXTERNAL_MODULE__consent_manager_dialog_consent_manager_dialog_js_9cbc4f9a__.ConsentManagerDialog, {})
118
- ]
119
- }));
120
- const customizeButton = document.querySelector('[data-testid="cookie-banner-customize-button"]');
121
- customizeButton?.dispatchEvent(new MouseEvent('click', {
122
- bubbles: true
123
- }));
124
- await new Promise((resolve)=>setTimeout(resolve, 100));
125
- (0, __WEBPACK_EXTERNAL_MODULE_vitest__.expect)(mockShowPopup).toBe(false);
126
- (0, __WEBPACK_EXTERNAL_MODULE_vitest__.expect)(document.querySelector('[data-testid="cookie-banner-root"]')).not.toBeInTheDocument();
127
- (0, __WEBPACK_EXTERNAL_MODULE_vitest__.expect)(mockIsPrivacyDialogOpen).toBe(true);
128
- const dialog = document.querySelector('[data-testid="consent-manager-dialog-root"]');
129
- (0, __WEBPACK_EXTERNAL_MODULE_vitest__.expect)(dialog).toBeInTheDocument();
130
- (0, __WEBPACK_EXTERNAL_MODULE_vitest__.expect)(document.querySelector('[data-testid="consent-manager-widget-switch-necessary"]')).toBeInTheDocument();
131
- (0, __WEBPACK_EXTERNAL_MODULE_vitest__.expect)(document.querySelector('[data-testid="consent-manager-widget-switch-marketing"]')).toBeInTheDocument();
132
- const marketingSwitch = document.querySelector('[data-testid="consent-manager-widget-switch-marketing"]');
133
- marketingSwitch?.dispatchEvent(new MouseEvent('click', {
134
- bubbles: true
135
- }));
136
- const saveButton = document.querySelector('[data-testid="consent-manager-widget-footer-save-button"]');
137
- saveButton?.dispatchEvent(new MouseEvent('click', {
138
- bubbles: true
139
- }));
140
- await new Promise((resolve)=>setTimeout(resolve, 100));
141
- (0, __WEBPACK_EXTERNAL_MODULE_vitest__.expect)(mockIsPrivacyDialogOpen).toBe(false);
142
- const consent = JSON.parse(window.localStorage.getItem('privacy-consent-storage') || '{}');
143
- (0, __WEBPACK_EXTERNAL_MODULE_vitest__.expect)(consent.consents).toBeTruthy();
144
- (0, __WEBPACK_EXTERNAL_MODULE_vitest__.expect)(consent.consentInfo.type).toBe('custom');
145
- (0, __WEBPACK_EXTERNAL_MODULE_vitest__.expect)(consent.consents.marketing).toBe(true);
146
- });
147
- (0, __WEBPACK_EXTERNAL_MODULE_vitest__.test)('should be keyboard accessible', async ()=>{
148
- (0, __WEBPACK_EXTERNAL_MODULE_vitest_browser_react_6a851916__.render)(/*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsxs)(__WEBPACK_EXTERNAL_MODULE__providers_consent_manager_provider_js_47c65d87__.ConsentManagerProvider, {
149
- options: defaultOptions,
150
- children: [
151
- /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(__WEBPACK_EXTERNAL_MODULE__cookie_banner_js_0a2d98b7__.CookieBanner, {}),
152
- /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(__WEBPACK_EXTERNAL_MODULE__consent_manager_dialog_consent_manager_dialog_js_9cbc4f9a__.ConsentManagerDialog, {})
153
- ]
154
- }));
155
- const rejectButton = document.querySelector('[data-testid="cookie-banner-reject-button"]');
156
- const customizeButton = document.querySelector('[data-testid="cookie-banner-customize-button"]');
157
- const acceptButton = document.querySelector('[data-testid="cookie-banner-accept-button"]');
158
- rejectButton.focus();
159
- (0, __WEBPACK_EXTERNAL_MODULE_vitest__.expect)(document.activeElement).toBe(rejectButton);
160
- customizeButton.focus();
161
- (0, __WEBPACK_EXTERNAL_MODULE_vitest__.expect)(document.activeElement).toBe(customizeButton);
162
- acceptButton.focus();
163
- (0, __WEBPACK_EXTERNAL_MODULE_vitest__.expect)(document.activeElement).toBe(acceptButton);
164
- });
165
- (0, __WEBPACK_EXTERNAL_MODULE_vitest__.test)('should handle scroll lock properly', async ()=>{
166
- (0, __WEBPACK_EXTERNAL_MODULE_vitest_browser_react_6a851916__.render)(/*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsxs)(__WEBPACK_EXTERNAL_MODULE__providers_consent_manager_provider_js_47c65d87__.ConsentManagerProvider, {
167
- options: defaultOptions,
168
- children: [
169
- /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(__WEBPACK_EXTERNAL_MODULE__cookie_banner_js_0a2d98b7__.CookieBanner, {
170
- scrollLock: true
171
- }),
172
- /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(__WEBPACK_EXTERNAL_MODULE__consent_manager_dialog_consent_manager_dialog_js_9cbc4f9a__.ConsentManagerDialog, {})
173
- ]
174
- }));
175
- (0, __WEBPACK_EXTERNAL_MODULE_vitest__.expect)(document.querySelector('[data-testid="cookie-banner-overlay"]')).toBeInTheDocument();
176
- const acceptButton = document.querySelector('[data-testid="cookie-banner-accept-button"]');
177
- acceptButton?.dispatchEvent(new MouseEvent('click', {
178
- bubbles: true
179
- }));
180
- await new Promise((resolve)=>setTimeout(resolve, 100));
181
- (0, __WEBPACK_EXTERNAL_MODULE_vitest__.expect)(document.querySelector('[data-testid="cookie-banner-overlay"]')).not.toBeInTheDocument();
182
- });
183
- });
1
+ let e;import*as t from"react/jsx-runtime";import*as o from"vitest";import*as n from"vitest-browser-react";import*as c from"../../consent-manager-dialog/consent-manager-dialog.js";import*as a from"../../../providers/consent-manager-provider.js";import*as s from"../cookie-banner.js";let r=!0,i=!1;o.vi.mock("~/hooks/use-consent-manager",async e=>{let t=await e();return{useConsentManager:()=>({...t.useConsentManager(),showPopup:r,isPrivacyDialogOpen:i,setShowPopup:e=>{r=e},setIsPrivacyDialogOpen:e=>{i=e}})}}),Object.defineProperty(window,"localStorage",{value:(e={},{getItem:t=>e[t]||null,setItem:(t,o)=>{e[t]=o.toString()},removeItem:t=>{delete e[t]},clear:()=>{e={}}})});let d={mode:"offline"};(0,o.describe)("CookieBanner E2E Tests",()=>{(0,o.beforeEach)(()=>{window.localStorage.clear(),r=!0,o.vi.clearAllMocks()}),(0,o.test)("should show cookie banner on first visit",async()=>{(0,n.render)((0,t.jsxs)(a.ConsentManagerProvider,{options:d,children:[(0,t.jsx)(s.CookieBanner,{}),(0,t.jsx)(c.ConsentManagerDialog,{})]}));let e=document.body.querySelector('[data-testid="cookie-banner-root"]');(0,o.expect)(e).toBeInTheDocument(),(0,o.expect)(r).toBe(!0),(0,o.expect)(document.querySelector('[data-testid="cookie-banner-title"]')).toBeInTheDocument(),(0,o.expect)(document.querySelector('[data-testid="cookie-banner-description"]')).toBeInTheDocument(),(0,o.expect)(document.querySelector('[data-testid="cookie-banner-reject-button"]')).toBeInTheDocument(),(0,o.expect)(document.querySelector('[data-testid="cookie-banner-customize-button"]')).toBeInTheDocument(),(0,o.expect)(document.querySelector('[data-testid="cookie-banner-accept-button"]')).toBeInTheDocument()}),(0,o.test)("should accept all cookies when clicking Accept All",async()=>{(0,n.render)((0,t.jsxs)(a.ConsentManagerProvider,{options:d,children:[(0,t.jsx)(s.CookieBanner,{}),(0,t.jsx)(c.ConsentManagerDialog,{})]}));let e=document.querySelector('[data-testid="cookie-banner-accept-button"]');e?.dispatchEvent(new MouseEvent("click",{bubbles:!0})),await new Promise(e=>setTimeout(e,100)),(0,o.expect)(r).toBe(!1),(0,o.expect)(document.querySelector('[data-testid="cookie-banner-root"]')).not.toBeInTheDocument();let i=JSON.parse(window.localStorage.getItem("privacy-consent-storage")||"{}");(0,o.expect)(i.consents).toBeTruthy(),(0,o.expect)(i.consentInfo.type).toBe("all")}),(0,o.test)("should reject non-essential cookies when clicking Reject All",async()=>{(0,n.render)((0,t.jsxs)(a.ConsentManagerProvider,{options:d,children:[(0,t.jsx)(s.CookieBanner,{}),(0,t.jsx)(c.ConsentManagerDialog,{})]}));let e=document.querySelector('[data-testid="cookie-banner-reject-button"]');e?.dispatchEvent(new MouseEvent("click",{bubbles:!0})),await new Promise(e=>setTimeout(e,100)),(0,o.expect)(r).toBe(!1),(0,o.expect)(document.querySelector('[data-testid="cookie-banner-root"]')).not.toBeInTheDocument();let i=JSON.parse(window.localStorage.getItem("privacy-consent-storage")||"{}");(0,o.expect)(i.consents).toBeTruthy(),(0,o.expect)(i.consentInfo.type).toBe("necessary"),(0,o.expect)(i.consents.necessary).toBe(!0),(0,o.expect)(i.consents.experience).toBe(!1),(0,o.expect)(i.consents.functionality).toBe(!1),(0,o.expect)(i.consents.marketing).toBe(!1),(0,o.expect)(i.consents.measurement).toBe(!1)}),(0,o.test)("should open consent manager dialog when clicking Customize",async()=>{(0,n.render)((0,t.jsxs)(a.ConsentManagerProvider,{options:d,children:[(0,t.jsx)(s.CookieBanner,{}),(0,t.jsx)(c.ConsentManagerDialog,{})]}));let e=document.querySelector('[data-testid="cookie-banner-customize-button"]');e?.dispatchEvent(new MouseEvent("click",{bubbles:!0})),await new Promise(e=>setTimeout(e,100)),(0,o.expect)(r).toBe(!1),(0,o.expect)(document.querySelector('[data-testid="cookie-banner-root"]')).not.toBeInTheDocument(),(0,o.expect)(i).toBe(!0);let l=document.querySelector('[data-testid="consent-manager-dialog-root"]');(0,o.expect)(l).toBeInTheDocument(),(0,o.expect)(document.querySelector('[data-testid="consent-manager-widget-switch-necessary"]')).toBeInTheDocument(),(0,o.expect)(document.querySelector('[data-testid="consent-manager-widget-switch-marketing"]')).toBeInTheDocument();let u=document.querySelector('[data-testid="consent-manager-widget-switch-marketing"]');u?.dispatchEvent(new MouseEvent("click",{bubbles:!0}));let m=document.querySelector('[data-testid="consent-manager-widget-footer-save-button"]');m?.dispatchEvent(new MouseEvent("click",{bubbles:!0})),await new Promise(e=>setTimeout(e,100)),(0,o.expect)(i).toBe(!1);let p=JSON.parse(window.localStorage.getItem("privacy-consent-storage")||"{}");(0,o.expect)(p.consents).toBeTruthy(),(0,o.expect)(p.consentInfo.type).toBe("custom"),(0,o.expect)(p.consents.marketing).toBe(!0)}),(0,o.test)("should be keyboard accessible",async()=>{(0,n.render)((0,t.jsxs)(a.ConsentManagerProvider,{options:d,children:[(0,t.jsx)(s.CookieBanner,{}),(0,t.jsx)(c.ConsentManagerDialog,{})]}));let e=document.querySelector('[data-testid="cookie-banner-reject-button"]'),r=document.querySelector('[data-testid="cookie-banner-customize-button"]'),i=document.querySelector('[data-testid="cookie-banner-accept-button"]');e.focus(),(0,o.expect)(document.activeElement).toBe(e),r.focus(),(0,o.expect)(document.activeElement).toBe(r),i.focus(),(0,o.expect)(document.activeElement).toBe(i)}),(0,o.test)("should handle scroll lock properly",async()=>{(0,n.render)((0,t.jsxs)(a.ConsentManagerProvider,{options:d,children:[(0,t.jsx)(s.CookieBanner,{scrollLock:!0}),(0,t.jsx)(c.ConsentManagerDialog,{})]})),(0,o.expect)(document.querySelector('[data-testid="cookie-banner-overlay"]')).toBeInTheDocument();let e=document.querySelector('[data-testid="cookie-banner-accept-button"]');e?.dispatchEvent(new MouseEvent("click",{bubbles:!0})),await new Promise(e=>setTimeout(e,100)),(0,o.expect)(document.querySelector('[data-testid="cookie-banner-overlay"]')).not.toBeInTheDocument()})});