@c15t/react 0.0.1-rc.21 → 0.0.1-rc.22
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.
- package/dist/components/consent-manager-dialog/__tests__/styles.spec.cjs +23 -0
- package/dist/components/consent-manager-dialog/__tests__/styles.spec.js +23 -0
- package/dist/components/consent-manager-widget/__tests__/styles.spec.cjs +28 -0
- package/dist/components/consent-manager-widget/__tests__/styles.spec.js +28 -0
- package/dist/components/consent-manager-widget/consent-manager-widget.cjs +0 -1
- package/dist/components/consent-manager-widget/consent-manager-widget.d.ts.map +1 -1
- package/dist/components/consent-manager-widget/consent-manager-widget.js +0 -1
- package/dist/hooks/__tests__/use-consent-manager.test.cjs +34 -0
- package/dist/hooks/__tests__/use-consent-manager.test.js +34 -0
- package/dist/hooks/index.cjs +2 -2
- package/dist/hooks/index.js +17 -1
- package/dist/providers/__tests__/provider-basic.test.cjs +127 -0
- package/dist/providers/__tests__/provider-basic.test.d.ts +2 -0
- package/dist/providers/__tests__/provider-basic.test.d.ts.map +1 -0
- package/dist/providers/__tests__/provider-basic.test.js +121 -0
- package/dist/providers/__tests__/provider-context.test.cjs +139 -0
- package/dist/providers/__tests__/provider-context.test.d.ts +2 -0
- package/dist/providers/__tests__/provider-context.test.d.ts.map +1 -0
- package/dist/providers/__tests__/provider-context.test.js +133 -0
- package/dist/providers/__tests__/provider-errors.test.cjs +98 -0
- package/dist/providers/__tests__/provider-errors.test.d.ts +2 -0
- package/dist/providers/__tests__/provider-errors.test.d.ts.map +1 -0
- package/dist/providers/__tests__/provider-errors.test.js +92 -0
- package/dist/providers/__tests__/test-helpers.cjs +171 -0
- package/dist/providers/__tests__/test-helpers.d.ts +6 -0
- package/dist/providers/__tests__/test-helpers.d.ts.map +1 -0
- package/dist/providers/__tests__/test-helpers.js +134 -0
- package/dist/providers/consent-manager-provider.cjs +41 -10
- package/dist/providers/consent-manager-provider.d.ts +0 -4
- package/dist/providers/consent-manager-provider.d.ts.map +1 -1
- package/dist/providers/consent-manager-provider.js +41 -10
- package/package.json +7 -6
|
@@ -63,6 +63,29 @@ const ALL_COMPONENTS = [
|
|
|
63
63
|
styles: 'custom-dialog-footer'
|
|
64
64
|
}
|
|
65
65
|
];
|
|
66
|
+
external_vitest_namespaceObject.vi.mock('~/hooks/use-consent-manager', ()=>({
|
|
67
|
+
useConsentManager: ()=>({
|
|
68
|
+
isPrivacyDialogOpen: true,
|
|
69
|
+
getDisplayedConsents: external_vitest_namespaceObject.vi.fn(()=>[]),
|
|
70
|
+
saveConsents: external_vitest_namespaceObject.vi.fn(),
|
|
71
|
+
setShowPopup: external_vitest_namespaceObject.vi.fn(),
|
|
72
|
+
setIsPrivacyDialogOpen: external_vitest_namespaceObject.vi.fn()
|
|
73
|
+
})
|
|
74
|
+
}));
|
|
75
|
+
external_vitest_namespaceObject.vi.mock('~/hooks/use-translations', ()=>({
|
|
76
|
+
useTranslations: ()=>({
|
|
77
|
+
consentManagerDialog: {
|
|
78
|
+
title: 'Dialog Title',
|
|
79
|
+
description: "Dialog Description",
|
|
80
|
+
saveButton: 'Save',
|
|
81
|
+
rejectAllButton: 'Reject All',
|
|
82
|
+
acceptAllButton: 'Accept All'
|
|
83
|
+
},
|
|
84
|
+
consentManagerWidget: {},
|
|
85
|
+
cookieBanner: {},
|
|
86
|
+
general: {}
|
|
87
|
+
})
|
|
88
|
+
}));
|
|
66
89
|
(0, external_vitest_namespaceObject.test)('Theme prop applies string classnames to all components', async ()=>{
|
|
67
90
|
const test = /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_consent_manager_dialog_cjs_namespaceObject.ConsentManagerDialog, {
|
|
68
91
|
open: true,
|
|
@@ -39,6 +39,29 @@ const ALL_COMPONENTS = [
|
|
|
39
39
|
styles: 'custom-dialog-footer'
|
|
40
40
|
}
|
|
41
41
|
];
|
|
42
|
+
__WEBPACK_EXTERNAL_MODULE_vitest__.vi.mock('~/hooks/use-consent-manager', ()=>({
|
|
43
|
+
useConsentManager: ()=>({
|
|
44
|
+
isPrivacyDialogOpen: true,
|
|
45
|
+
getDisplayedConsents: __WEBPACK_EXTERNAL_MODULE_vitest__.vi.fn(()=>[]),
|
|
46
|
+
saveConsents: __WEBPACK_EXTERNAL_MODULE_vitest__.vi.fn(),
|
|
47
|
+
setShowPopup: __WEBPACK_EXTERNAL_MODULE_vitest__.vi.fn(),
|
|
48
|
+
setIsPrivacyDialogOpen: __WEBPACK_EXTERNAL_MODULE_vitest__.vi.fn()
|
|
49
|
+
})
|
|
50
|
+
}));
|
|
51
|
+
__WEBPACK_EXTERNAL_MODULE_vitest__.vi.mock('~/hooks/use-translations', ()=>({
|
|
52
|
+
useTranslations: ()=>({
|
|
53
|
+
consentManagerDialog: {
|
|
54
|
+
title: 'Dialog Title',
|
|
55
|
+
description: "Dialog Description",
|
|
56
|
+
saveButton: 'Save',
|
|
57
|
+
rejectAllButton: 'Reject All',
|
|
58
|
+
acceptAllButton: 'Accept All'
|
|
59
|
+
},
|
|
60
|
+
consentManagerWidget: {},
|
|
61
|
+
cookieBanner: {},
|
|
62
|
+
general: {}
|
|
63
|
+
})
|
|
64
|
+
}));
|
|
42
65
|
(0, __WEBPACK_EXTERNAL_MODULE_vitest__.test)('Theme prop applies string classnames to all components', async ()=>{
|
|
43
66
|
const test = /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(__WEBPACK_EXTERNAL_MODULE__consent_manager_dialog_js_fdf416e1__.ConsentManagerDialog, {
|
|
44
67
|
open: true,
|
|
@@ -26,6 +26,34 @@ const external_vitest_namespaceObject = require("vitest");
|
|
|
26
26
|
const external_consent_manager_widget_cjs_namespaceObject = require("../consent-manager-widget.cjs");
|
|
27
27
|
const test_helpers_cjs_namespaceObject = require("../../../utils/test-helpers.cjs");
|
|
28
28
|
var test_helpers_cjs_default = /*#__PURE__*/ __webpack_require__.n(test_helpers_cjs_namespaceObject);
|
|
29
|
+
external_vitest_namespaceObject.vi.mock('~/hooks/use-consent-manager', ()=>({
|
|
30
|
+
useConsentManager: ()=>({
|
|
31
|
+
getConsentCategory: external_vitest_namespaceObject.vi.fn(()=>({
|
|
32
|
+
isEnabled: true
|
|
33
|
+
})),
|
|
34
|
+
updateConsentCategory: external_vitest_namespaceObject.vi.fn(),
|
|
35
|
+
saveConsents: external_vitest_namespaceObject.vi.fn(),
|
|
36
|
+
getDisplayedConsents: external_vitest_namespaceObject.vi.fn(()=>[])
|
|
37
|
+
})
|
|
38
|
+
}));
|
|
39
|
+
external_vitest_namespaceObject.vi.mock('~/hooks/use-translations', ()=>({
|
|
40
|
+
useTranslations: ()=>({
|
|
41
|
+
consentManagerWidget: {
|
|
42
|
+
necessaryCookies: 'Necessary',
|
|
43
|
+
marketingCookies: 'Marketing',
|
|
44
|
+
analyticsCookies: 'Analytics',
|
|
45
|
+
preferencesCookies: 'Preferences',
|
|
46
|
+
unknownIntegration: 'Unknown',
|
|
47
|
+
alwaysActive: 'Always Active',
|
|
48
|
+
rejectAllButton: 'Reject All',
|
|
49
|
+
acceptAllButton: 'Accept All',
|
|
50
|
+
saveButton: 'Save Settings'
|
|
51
|
+
},
|
|
52
|
+
consentManagerDialog: {},
|
|
53
|
+
cookieBanner: {},
|
|
54
|
+
general: {}
|
|
55
|
+
})
|
|
56
|
+
}));
|
|
29
57
|
const ALL_COMPONENTS = [
|
|
30
58
|
{
|
|
31
59
|
testId: 'consent-manager-widget-root',
|
|
@@ -2,6 +2,34 @@ import * as __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__ from "react/j
|
|
|
2
2
|
import * as __WEBPACK_EXTERNAL_MODULE_vitest__ from "vitest";
|
|
3
3
|
import * as __WEBPACK_EXTERNAL_MODULE__consent_manager_widget_js_ec34d749__ from "../consent-manager-widget.js";
|
|
4
4
|
import * as __WEBPACK_EXTERNAL_MODULE__utils_test_helpers_js_1e3d26b6__ from "../../../utils/test-helpers.js";
|
|
5
|
+
__WEBPACK_EXTERNAL_MODULE_vitest__.vi.mock('~/hooks/use-consent-manager', ()=>({
|
|
6
|
+
useConsentManager: ()=>({
|
|
7
|
+
getConsentCategory: __WEBPACK_EXTERNAL_MODULE_vitest__.vi.fn(()=>({
|
|
8
|
+
isEnabled: true
|
|
9
|
+
})),
|
|
10
|
+
updateConsentCategory: __WEBPACK_EXTERNAL_MODULE_vitest__.vi.fn(),
|
|
11
|
+
saveConsents: __WEBPACK_EXTERNAL_MODULE_vitest__.vi.fn(),
|
|
12
|
+
getDisplayedConsents: __WEBPACK_EXTERNAL_MODULE_vitest__.vi.fn(()=>[])
|
|
13
|
+
})
|
|
14
|
+
}));
|
|
15
|
+
__WEBPACK_EXTERNAL_MODULE_vitest__.vi.mock('~/hooks/use-translations', ()=>({
|
|
16
|
+
useTranslations: ()=>({
|
|
17
|
+
consentManagerWidget: {
|
|
18
|
+
necessaryCookies: 'Necessary',
|
|
19
|
+
marketingCookies: 'Marketing',
|
|
20
|
+
analyticsCookies: 'Analytics',
|
|
21
|
+
preferencesCookies: 'Preferences',
|
|
22
|
+
unknownIntegration: 'Unknown',
|
|
23
|
+
alwaysActive: 'Always Active',
|
|
24
|
+
rejectAllButton: 'Reject All',
|
|
25
|
+
acceptAllButton: 'Accept All',
|
|
26
|
+
saveButton: 'Save Settings'
|
|
27
|
+
},
|
|
28
|
+
consentManagerDialog: {},
|
|
29
|
+
cookieBanner: {},
|
|
30
|
+
general: {}
|
|
31
|
+
})
|
|
32
|
+
}));
|
|
5
33
|
const ALL_COMPONENTS = [
|
|
6
34
|
{
|
|
7
35
|
testId: 'consent-manager-widget-root',
|
|
@@ -38,7 +38,6 @@ const root_cjs_namespaceObject = require("./atoms/root.cjs");
|
|
|
38
38
|
const ConsentManagerWidget = ({ hideBrading, ...props })=>{
|
|
39
39
|
const [openItems, setOpenItems] = (0, external_react_namespaceObject.useState)([]);
|
|
40
40
|
const { consentManagerWidget } = (0, use_translations_cjs_namespaceObject.useTranslations)();
|
|
41
|
-
'undefined' != typeof window && window.location.hostname;
|
|
42
41
|
return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsxs)(root_cjs_namespaceObject.ConsentManagerWidgetRoot, {
|
|
43
42
|
...props,
|
|
44
43
|
children: [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"consent-manager-widget.d.ts","sourceRoot":"","sources":["../../../src/components/consent-manager-widget/consent-manager-widget.tsx"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAC;AAEzD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AACH,eAAO,MAAM,oBAAoB,GAAI,2BAGlC,yBAAyB,
|
|
1
|
+
{"version":3,"file":"consent-manager-widget.d.ts","sourceRoot":"","sources":["../../../src/components/consent-manager-widget/consent-manager-widget.tsx"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAC;AAEzD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AACH,eAAO,MAAM,oBAAoB,GAAI,2BAGlC,yBAAyB,4CAkC3B,CAAC"}
|
|
@@ -10,7 +10,6 @@ import * as __WEBPACK_EXTERNAL_MODULE__atoms_root_js_8443a91f__ from "./atoms/ro
|
|
|
10
10
|
const ConsentManagerWidget = ({ hideBrading, ...props })=>{
|
|
11
11
|
const [openItems, setOpenItems] = (0, __WEBPACK_EXTERNAL_MODULE_react__.useState)([]);
|
|
12
12
|
const { consentManagerWidget } = (0, __WEBPACK_EXTERNAL_MODULE__hooks_use_translations_js_036cca3c__.useTranslations)();
|
|
13
|
-
'undefined' != typeof window && window.location.hostname;
|
|
14
13
|
return /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsxs)(__WEBPACK_EXTERNAL_MODULE__atoms_root_js_8443a91f__.ConsentManagerWidgetRoot, {
|
|
15
14
|
...props,
|
|
16
15
|
children: [
|
|
@@ -5,6 +5,40 @@ const external_vitest_namespaceObject = require("vitest");
|
|
|
5
5
|
const external_vitest_browser_react_namespaceObject = require("vitest-browser-react");
|
|
6
6
|
const consent_manager_provider_cjs_namespaceObject = require("../../providers/consent-manager-provider.cjs");
|
|
7
7
|
const external_use_consent_manager_cjs_namespaceObject = require("../use-consent-manager.cjs");
|
|
8
|
+
external_vitest_namespaceObject.vi.mock('c15t', async ()=>{
|
|
9
|
+
const originalModule = await external_vitest_namespaceObject.vi.importActual('c15t');
|
|
10
|
+
return {
|
|
11
|
+
...originalModule,
|
|
12
|
+
configureConsentManager: ()=>({
|
|
13
|
+
getCallbacks: ()=>({}),
|
|
14
|
+
setCallbacks: ()=>({}),
|
|
15
|
+
showConsentBanner: async ()=>({
|
|
16
|
+
ok: true,
|
|
17
|
+
data: {
|
|
18
|
+
showConsentBanner: true
|
|
19
|
+
},
|
|
20
|
+
error: null,
|
|
21
|
+
response: null
|
|
22
|
+
}),
|
|
23
|
+
setConsent: async ()=>({
|
|
24
|
+
ok: true,
|
|
25
|
+
data: {
|
|
26
|
+
success: true
|
|
27
|
+
},
|
|
28
|
+
error: null,
|
|
29
|
+
response: null
|
|
30
|
+
}),
|
|
31
|
+
verifyConsent: async ()=>({
|
|
32
|
+
ok: true,
|
|
33
|
+
data: {
|
|
34
|
+
valid: true
|
|
35
|
+
},
|
|
36
|
+
error: null,
|
|
37
|
+
response: null
|
|
38
|
+
})
|
|
39
|
+
})
|
|
40
|
+
};
|
|
41
|
+
});
|
|
8
42
|
(0, external_vitest_namespaceObject.describe)('useConsentManager', ()=>{
|
|
9
43
|
(0, external_vitest_namespaceObject.test)('returns consent state and methods when used within provider', ()=>{
|
|
10
44
|
const { result } = (0, external_vitest_browser_react_namespaceObject.renderHook)(()=>(0, external_use_consent_manager_cjs_namespaceObject.useConsentManager)(), {
|
|
@@ -3,6 +3,40 @@ import * as __WEBPACK_EXTERNAL_MODULE_vitest__ from "vitest";
|
|
|
3
3
|
import * as __WEBPACK_EXTERNAL_MODULE_vitest_browser_react_6a851916__ from "vitest-browser-react";
|
|
4
4
|
import * as __WEBPACK_EXTERNAL_MODULE__providers_consent_manager_provider_js_f2c81711__ from "../../providers/consent-manager-provider.js";
|
|
5
5
|
import * as __WEBPACK_EXTERNAL_MODULE__use_consent_manager_js_56ece2ee__ from "../use-consent-manager.js";
|
|
6
|
+
__WEBPACK_EXTERNAL_MODULE_vitest__.vi.mock('c15t', async ()=>{
|
|
7
|
+
const originalModule = await __WEBPACK_EXTERNAL_MODULE_vitest__.vi.importActual('c15t');
|
|
8
|
+
return {
|
|
9
|
+
...originalModule,
|
|
10
|
+
configureConsentManager: ()=>({
|
|
11
|
+
getCallbacks: ()=>({}),
|
|
12
|
+
setCallbacks: ()=>({}),
|
|
13
|
+
showConsentBanner: async ()=>({
|
|
14
|
+
ok: true,
|
|
15
|
+
data: {
|
|
16
|
+
showConsentBanner: true
|
|
17
|
+
},
|
|
18
|
+
error: null,
|
|
19
|
+
response: null
|
|
20
|
+
}),
|
|
21
|
+
setConsent: async ()=>({
|
|
22
|
+
ok: true,
|
|
23
|
+
data: {
|
|
24
|
+
success: true
|
|
25
|
+
},
|
|
26
|
+
error: null,
|
|
27
|
+
response: null
|
|
28
|
+
}),
|
|
29
|
+
verifyConsent: async ()=>({
|
|
30
|
+
ok: true,
|
|
31
|
+
data: {
|
|
32
|
+
valid: true
|
|
33
|
+
},
|
|
34
|
+
error: null,
|
|
35
|
+
response: null
|
|
36
|
+
})
|
|
37
|
+
})
|
|
38
|
+
};
|
|
39
|
+
});
|
|
6
40
|
(0, __WEBPACK_EXTERNAL_MODULE_vitest__.describe)('useConsentManager', ()=>{
|
|
7
41
|
(0, __WEBPACK_EXTERNAL_MODULE_vitest__.test)('returns consent state and methods when used within provider', ()=>{
|
|
8
42
|
const { result } = (0, __WEBPACK_EXTERNAL_MODULE_vitest_browser_react_6a851916__.renderHook)(()=>(0, __WEBPACK_EXTERNAL_MODULE__use_consent_manager_js_56ece2ee__.useConsentManager)(), {
|
package/dist/hooks/index.cjs
CHANGED
|
@@ -6,7 +6,7 @@ var __webpack_modules__ = {
|
|
|
6
6
|
"./use-focus-trap": function(module) {
|
|
7
7
|
module.exports = require("./use-focus-trap.cjs");
|
|
8
8
|
},
|
|
9
|
-
"
|
|
9
|
+
"./use-theme": function(module) {
|
|
10
10
|
module.exports = require("./use-theme.cjs");
|
|
11
11
|
},
|
|
12
12
|
"./use-translations": function(module) {
|
|
@@ -68,7 +68,7 @@ var __webpack_exports__ = {};
|
|
|
68
68
|
return _use_focus_trap__WEBPACK_IMPORTED_MODULE_1__[key];
|
|
69
69
|
}).bind(0, __WEBPACK_IMPORT_KEY__);
|
|
70
70
|
__webpack_require__.d(__webpack_exports__, __WEBPACK_REEXPORT_OBJECT__);
|
|
71
|
-
var _use_theme__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("
|
|
71
|
+
var _use_theme__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./use-theme");
|
|
72
72
|
var __WEBPACK_REEXPORT_OBJECT__ = {};
|
|
73
73
|
for(var __WEBPACK_IMPORT_KEY__ in _use_theme__WEBPACK_IMPORTED_MODULE_2__)if ("default" !== __WEBPACK_IMPORT_KEY__) __WEBPACK_REEXPORT_OBJECT__[__WEBPACK_IMPORT_KEY__] = (function(key) {
|
|
74
74
|
return _use_theme__WEBPACK_IMPORTED_MODULE_2__[key];
|
package/dist/hooks/index.js
CHANGED
|
@@ -1,4 +1,20 @@
|
|
|
1
|
+
import * as __WEBPACK_EXTERNAL_MODULE__use_theme_js_d12716c7__ from "./use-theme.js";
|
|
1
2
|
export * from "./use-consent-manager.js";
|
|
2
3
|
export * from "./use-focus-trap.js";
|
|
3
|
-
export * from "./use-theme.js";
|
|
4
4
|
export * from "./use-translations.js";
|
|
5
|
+
var __webpack_modules__ = {
|
|
6
|
+
"~/hooks/use-theme": function(module) {
|
|
7
|
+
module.exports = __WEBPACK_EXTERNAL_MODULE__use_theme_js_d12716c7__;
|
|
8
|
+
}
|
|
9
|
+
};
|
|
10
|
+
var __webpack_module_cache__ = {};
|
|
11
|
+
function __webpack_require__(moduleId) {
|
|
12
|
+
var cachedModule = __webpack_module_cache__[moduleId];
|
|
13
|
+
if (void 0 !== cachedModule) return cachedModule.exports;
|
|
14
|
+
var module = __webpack_module_cache__[moduleId] = {
|
|
15
|
+
exports: {}
|
|
16
|
+
};
|
|
17
|
+
__webpack_modules__[moduleId](module, module.exports, __webpack_require__);
|
|
18
|
+
return module.exports;
|
|
19
|
+
}
|
|
20
|
+
__webpack_require__("~/hooks/use-theme");
|
|
@@ -0,0 +1,127 @@
|
|
|
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 external_index_cjs_namespaceObject = require("../../index.cjs");
|
|
7
|
+
const mockFetch = external_vitest_namespaceObject.vi.fn();
|
|
8
|
+
window.fetch = mockFetch;
|
|
9
|
+
(0, external_vitest_namespaceObject.describe)('ConsentManagerProvider Basic Request Behavior', ()=>{
|
|
10
|
+
(0, external_vitest_namespaceObject.beforeEach)(()=>{
|
|
11
|
+
external_vitest_namespaceObject.vi.resetAllMocks();
|
|
12
|
+
external_vitest_namespaceObject.vi.useFakeTimers();
|
|
13
|
+
mockFetch.mockResolvedValue(new Response(JSON.stringify({
|
|
14
|
+
showConsentBanner: true
|
|
15
|
+
}), {
|
|
16
|
+
status: 200,
|
|
17
|
+
headers: {
|
|
18
|
+
'Content-Type': 'application/json'
|
|
19
|
+
}
|
|
20
|
+
}));
|
|
21
|
+
});
|
|
22
|
+
(0, external_vitest_namespaceObject.afterEach)(()=>{
|
|
23
|
+
external_vitest_namespaceObject.vi.clearAllMocks();
|
|
24
|
+
external_vitest_namespaceObject.vi.useRealTimers();
|
|
25
|
+
});
|
|
26
|
+
(0, external_vitest_namespaceObject.it)('should only make one initial request for consent banner status', async ()=>{
|
|
27
|
+
(0, external_vitest_browser_react_namespaceObject.render)(/*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_index_cjs_namespaceObject.ConsentManagerProvider, {
|
|
28
|
+
options: {
|
|
29
|
+
mode: 'c15t',
|
|
30
|
+
backendURL: '/api/c15t'
|
|
31
|
+
},
|
|
32
|
+
children: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("div", {
|
|
33
|
+
children: "Test Component"
|
|
34
|
+
})
|
|
35
|
+
}));
|
|
36
|
+
await external_vitest_namespaceObject.vi.runAllTimersAsync();
|
|
37
|
+
(0, external_vitest_namespaceObject.expect)(mockFetch).toHaveBeenCalledTimes(1);
|
|
38
|
+
(0, external_vitest_namespaceObject.expect)(mockFetch).toHaveBeenCalledWith(external_vitest_namespaceObject.expect.stringContaining('/api/c15t/show-consent-banner'), external_vitest_namespaceObject.expect.any(Object));
|
|
39
|
+
});
|
|
40
|
+
(0, external_vitest_namespaceObject.it)('should not make additional requests when props change but core options remain same', async ()=>{
|
|
41
|
+
mockFetch.mockClear();
|
|
42
|
+
const { rerender } = (0, external_vitest_browser_react_namespaceObject.render)(/*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_index_cjs_namespaceObject.ConsentManagerProvider, {
|
|
43
|
+
options: {
|
|
44
|
+
mode: 'offline',
|
|
45
|
+
react: {
|
|
46
|
+
theme: 'light'
|
|
47
|
+
}
|
|
48
|
+
},
|
|
49
|
+
children: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("div", {
|
|
50
|
+
children: "Light theme"
|
|
51
|
+
})
|
|
52
|
+
}));
|
|
53
|
+
await external_vitest_namespaceObject.vi.runAllTimersAsync();
|
|
54
|
+
(0, external_vitest_namespaceObject.expect)(mockFetch).not.toHaveBeenCalled();
|
|
55
|
+
rerender(/*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_index_cjs_namespaceObject.ConsentManagerProvider, {
|
|
56
|
+
options: {
|
|
57
|
+
mode: 'offline',
|
|
58
|
+
react: {
|
|
59
|
+
theme: 'dark'
|
|
60
|
+
}
|
|
61
|
+
},
|
|
62
|
+
children: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("div", {
|
|
63
|
+
children: "Dark theme"
|
|
64
|
+
})
|
|
65
|
+
}));
|
|
66
|
+
await external_vitest_namespaceObject.vi.runAllTimersAsync();
|
|
67
|
+
(0, external_vitest_namespaceObject.expect)(mockFetch).not.toHaveBeenCalled();
|
|
68
|
+
});
|
|
69
|
+
(0, external_vitest_namespaceObject.it)('should make a new request when core options change', async ()=>{
|
|
70
|
+
const { rerender } = (0, external_vitest_browser_react_namespaceObject.render)(/*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_index_cjs_namespaceObject.ConsentManagerProvider, {
|
|
71
|
+
options: {
|
|
72
|
+
mode: 'c15t',
|
|
73
|
+
backendURL: '/api/c15t-1'
|
|
74
|
+
},
|
|
75
|
+
children: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("div", {
|
|
76
|
+
children: "First URL"
|
|
77
|
+
})
|
|
78
|
+
}));
|
|
79
|
+
await external_vitest_namespaceObject.vi.runAllTimersAsync();
|
|
80
|
+
(0, external_vitest_namespaceObject.expect)(mockFetch).toHaveBeenCalledTimes(1);
|
|
81
|
+
(0, external_vitest_namespaceObject.expect)(mockFetch).toHaveBeenCalledWith(external_vitest_namespaceObject.expect.stringContaining('/api/c15t-1/show-consent-banner'), external_vitest_namespaceObject.expect.any(Object));
|
|
82
|
+
mockFetch.mockClear();
|
|
83
|
+
rerender(/*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_index_cjs_namespaceObject.ConsentManagerProvider, {
|
|
84
|
+
options: {
|
|
85
|
+
mode: 'c15t',
|
|
86
|
+
backendURL: '/api/c15t-2'
|
|
87
|
+
},
|
|
88
|
+
children: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("div", {
|
|
89
|
+
children: "Second URL"
|
|
90
|
+
})
|
|
91
|
+
}));
|
|
92
|
+
await external_vitest_namespaceObject.vi.runAllTimersAsync();
|
|
93
|
+
(0, external_vitest_namespaceObject.expect)(mockFetch).toHaveBeenCalledWith(external_vitest_namespaceObject.expect.stringContaining('/api/c15t-2/show-consent-banner'), external_vitest_namespaceObject.expect.any(Object));
|
|
94
|
+
});
|
|
95
|
+
(0, external_vitest_namespaceObject.it)('should handle rapid re-renders without making duplicate requests', async ()=>{
|
|
96
|
+
mockFetch.mockClear();
|
|
97
|
+
const { rerender } = (0, external_vitest_browser_react_namespaceObject.render)(/*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_index_cjs_namespaceObject.ConsentManagerProvider, {
|
|
98
|
+
options: {
|
|
99
|
+
mode: 'offline'
|
|
100
|
+
},
|
|
101
|
+
children: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("div", {
|
|
102
|
+
children: "Counter: 0"
|
|
103
|
+
})
|
|
104
|
+
}));
|
|
105
|
+
await external_vitest_namespaceObject.vi.runAllTimersAsync();
|
|
106
|
+
(0, external_vitest_namespaceObject.expect)(mockFetch).not.toHaveBeenCalled();
|
|
107
|
+
for(let i = 1; i <= 5; i++){
|
|
108
|
+
rerender(/*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_index_cjs_namespaceObject.ConsentManagerProvider, {
|
|
109
|
+
options: {
|
|
110
|
+
mode: 'offline'
|
|
111
|
+
},
|
|
112
|
+
children: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsxs)("div", {
|
|
113
|
+
children: [
|
|
114
|
+
"Counter: ",
|
|
115
|
+
i
|
|
116
|
+
]
|
|
117
|
+
})
|
|
118
|
+
}));
|
|
119
|
+
await external_vitest_namespaceObject.vi.runAllTimersAsync();
|
|
120
|
+
}
|
|
121
|
+
(0, external_vitest_namespaceObject.expect)(mockFetch).not.toHaveBeenCalled();
|
|
122
|
+
});
|
|
123
|
+
});
|
|
124
|
+
for(var __webpack_i__ in __webpack_exports__)exports[__webpack_i__] = __webpack_exports__[__webpack_i__];
|
|
125
|
+
Object.defineProperty(exports, '__esModule', {
|
|
126
|
+
value: true
|
|
127
|
+
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider-basic.test.d.ts","sourceRoot":"","sources":["../../../src/providers/__tests__/provider-basic.test.tsx"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,121 @@
|
|
|
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__index_js_cbfda0f6__ from "../../index.js";
|
|
5
|
+
const mockFetch = __WEBPACK_EXTERNAL_MODULE_vitest__.vi.fn();
|
|
6
|
+
window.fetch = mockFetch;
|
|
7
|
+
(0, __WEBPACK_EXTERNAL_MODULE_vitest__.describe)('ConsentManagerProvider Basic Request Behavior', ()=>{
|
|
8
|
+
(0, __WEBPACK_EXTERNAL_MODULE_vitest__.beforeEach)(()=>{
|
|
9
|
+
__WEBPACK_EXTERNAL_MODULE_vitest__.vi.resetAllMocks();
|
|
10
|
+
__WEBPACK_EXTERNAL_MODULE_vitest__.vi.useFakeTimers();
|
|
11
|
+
mockFetch.mockResolvedValue(new Response(JSON.stringify({
|
|
12
|
+
showConsentBanner: true
|
|
13
|
+
}), {
|
|
14
|
+
status: 200,
|
|
15
|
+
headers: {
|
|
16
|
+
'Content-Type': 'application/json'
|
|
17
|
+
}
|
|
18
|
+
}));
|
|
19
|
+
});
|
|
20
|
+
(0, __WEBPACK_EXTERNAL_MODULE_vitest__.afterEach)(()=>{
|
|
21
|
+
__WEBPACK_EXTERNAL_MODULE_vitest__.vi.clearAllMocks();
|
|
22
|
+
__WEBPACK_EXTERNAL_MODULE_vitest__.vi.useRealTimers();
|
|
23
|
+
});
|
|
24
|
+
(0, __WEBPACK_EXTERNAL_MODULE_vitest__.it)('should only make one initial request for consent banner status', async ()=>{
|
|
25
|
+
(0, __WEBPACK_EXTERNAL_MODULE_vitest_browser_react_6a851916__.render)(/*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(__WEBPACK_EXTERNAL_MODULE__index_js_cbfda0f6__.ConsentManagerProvider, {
|
|
26
|
+
options: {
|
|
27
|
+
mode: 'c15t',
|
|
28
|
+
backendURL: '/api/c15t'
|
|
29
|
+
},
|
|
30
|
+
children: /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)("div", {
|
|
31
|
+
children: "Test Component"
|
|
32
|
+
})
|
|
33
|
+
}));
|
|
34
|
+
await __WEBPACK_EXTERNAL_MODULE_vitest__.vi.runAllTimersAsync();
|
|
35
|
+
(0, __WEBPACK_EXTERNAL_MODULE_vitest__.expect)(mockFetch).toHaveBeenCalledTimes(1);
|
|
36
|
+
(0, __WEBPACK_EXTERNAL_MODULE_vitest__.expect)(mockFetch).toHaveBeenCalledWith(__WEBPACK_EXTERNAL_MODULE_vitest__.expect.stringContaining('/api/c15t/show-consent-banner'), __WEBPACK_EXTERNAL_MODULE_vitest__.expect.any(Object));
|
|
37
|
+
});
|
|
38
|
+
(0, __WEBPACK_EXTERNAL_MODULE_vitest__.it)('should not make additional requests when props change but core options remain same', async ()=>{
|
|
39
|
+
mockFetch.mockClear();
|
|
40
|
+
const { rerender } = (0, __WEBPACK_EXTERNAL_MODULE_vitest_browser_react_6a851916__.render)(/*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(__WEBPACK_EXTERNAL_MODULE__index_js_cbfda0f6__.ConsentManagerProvider, {
|
|
41
|
+
options: {
|
|
42
|
+
mode: 'offline',
|
|
43
|
+
react: {
|
|
44
|
+
theme: 'light'
|
|
45
|
+
}
|
|
46
|
+
},
|
|
47
|
+
children: /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)("div", {
|
|
48
|
+
children: "Light theme"
|
|
49
|
+
})
|
|
50
|
+
}));
|
|
51
|
+
await __WEBPACK_EXTERNAL_MODULE_vitest__.vi.runAllTimersAsync();
|
|
52
|
+
(0, __WEBPACK_EXTERNAL_MODULE_vitest__.expect)(mockFetch).not.toHaveBeenCalled();
|
|
53
|
+
rerender(/*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(__WEBPACK_EXTERNAL_MODULE__index_js_cbfda0f6__.ConsentManagerProvider, {
|
|
54
|
+
options: {
|
|
55
|
+
mode: 'offline',
|
|
56
|
+
react: {
|
|
57
|
+
theme: 'dark'
|
|
58
|
+
}
|
|
59
|
+
},
|
|
60
|
+
children: /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)("div", {
|
|
61
|
+
children: "Dark theme"
|
|
62
|
+
})
|
|
63
|
+
}));
|
|
64
|
+
await __WEBPACK_EXTERNAL_MODULE_vitest__.vi.runAllTimersAsync();
|
|
65
|
+
(0, __WEBPACK_EXTERNAL_MODULE_vitest__.expect)(mockFetch).not.toHaveBeenCalled();
|
|
66
|
+
});
|
|
67
|
+
(0, __WEBPACK_EXTERNAL_MODULE_vitest__.it)('should make a new request when core options change', async ()=>{
|
|
68
|
+
const { rerender } = (0, __WEBPACK_EXTERNAL_MODULE_vitest_browser_react_6a851916__.render)(/*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(__WEBPACK_EXTERNAL_MODULE__index_js_cbfda0f6__.ConsentManagerProvider, {
|
|
69
|
+
options: {
|
|
70
|
+
mode: 'c15t',
|
|
71
|
+
backendURL: '/api/c15t-1'
|
|
72
|
+
},
|
|
73
|
+
children: /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)("div", {
|
|
74
|
+
children: "First URL"
|
|
75
|
+
})
|
|
76
|
+
}));
|
|
77
|
+
await __WEBPACK_EXTERNAL_MODULE_vitest__.vi.runAllTimersAsync();
|
|
78
|
+
(0, __WEBPACK_EXTERNAL_MODULE_vitest__.expect)(mockFetch).toHaveBeenCalledTimes(1);
|
|
79
|
+
(0, __WEBPACK_EXTERNAL_MODULE_vitest__.expect)(mockFetch).toHaveBeenCalledWith(__WEBPACK_EXTERNAL_MODULE_vitest__.expect.stringContaining('/api/c15t-1/show-consent-banner'), __WEBPACK_EXTERNAL_MODULE_vitest__.expect.any(Object));
|
|
80
|
+
mockFetch.mockClear();
|
|
81
|
+
rerender(/*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(__WEBPACK_EXTERNAL_MODULE__index_js_cbfda0f6__.ConsentManagerProvider, {
|
|
82
|
+
options: {
|
|
83
|
+
mode: 'c15t',
|
|
84
|
+
backendURL: '/api/c15t-2'
|
|
85
|
+
},
|
|
86
|
+
children: /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)("div", {
|
|
87
|
+
children: "Second URL"
|
|
88
|
+
})
|
|
89
|
+
}));
|
|
90
|
+
await __WEBPACK_EXTERNAL_MODULE_vitest__.vi.runAllTimersAsync();
|
|
91
|
+
(0, __WEBPACK_EXTERNAL_MODULE_vitest__.expect)(mockFetch).toHaveBeenCalledWith(__WEBPACK_EXTERNAL_MODULE_vitest__.expect.stringContaining('/api/c15t-2/show-consent-banner'), __WEBPACK_EXTERNAL_MODULE_vitest__.expect.any(Object));
|
|
92
|
+
});
|
|
93
|
+
(0, __WEBPACK_EXTERNAL_MODULE_vitest__.it)('should handle rapid re-renders without making duplicate requests', async ()=>{
|
|
94
|
+
mockFetch.mockClear();
|
|
95
|
+
const { rerender } = (0, __WEBPACK_EXTERNAL_MODULE_vitest_browser_react_6a851916__.render)(/*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(__WEBPACK_EXTERNAL_MODULE__index_js_cbfda0f6__.ConsentManagerProvider, {
|
|
96
|
+
options: {
|
|
97
|
+
mode: 'offline'
|
|
98
|
+
},
|
|
99
|
+
children: /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)("div", {
|
|
100
|
+
children: "Counter: 0"
|
|
101
|
+
})
|
|
102
|
+
}));
|
|
103
|
+
await __WEBPACK_EXTERNAL_MODULE_vitest__.vi.runAllTimersAsync();
|
|
104
|
+
(0, __WEBPACK_EXTERNAL_MODULE_vitest__.expect)(mockFetch).not.toHaveBeenCalled();
|
|
105
|
+
for(let i = 1; i <= 5; i++){
|
|
106
|
+
rerender(/*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(__WEBPACK_EXTERNAL_MODULE__index_js_cbfda0f6__.ConsentManagerProvider, {
|
|
107
|
+
options: {
|
|
108
|
+
mode: 'offline'
|
|
109
|
+
},
|
|
110
|
+
children: /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsxs)("div", {
|
|
111
|
+
children: [
|
|
112
|
+
"Counter: ",
|
|
113
|
+
i
|
|
114
|
+
]
|
|
115
|
+
})
|
|
116
|
+
}));
|
|
117
|
+
await __WEBPACK_EXTERNAL_MODULE_vitest__.vi.runAllTimersAsync();
|
|
118
|
+
}
|
|
119
|
+
(0, __WEBPACK_EXTERNAL_MODULE_vitest__.expect)(mockFetch).not.toHaveBeenCalled();
|
|
120
|
+
});
|
|
121
|
+
});
|