@nationalarchives/frontend 0.1.42 → 0.1.44

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 (135) hide show
  1. package/govuk-prototype-kit.config.json +10 -7
  2. package/nationalarchives/all.css +1 -1
  3. package/nationalarchives/all.css.map +1 -1
  4. package/nationalarchives/all.js +1 -1
  5. package/nationalarchives/all.js.map +1 -1
  6. package/nationalarchives/analytics.js +1 -1
  7. package/nationalarchives/analytics.js.map +1 -1
  8. package/nationalarchives/analytics.mjs +168 -73
  9. package/nationalarchives/components/breadcrumbs/breadcrumbs.css.map +1 -1
  10. package/nationalarchives/components/breadcrumbs/template.njk +2 -1
  11. package/nationalarchives/components/button/button-group.stories.js +122 -0
  12. package/nationalarchives/components/button/button.css +1 -1
  13. package/nationalarchives/components/button/button.css.map +1 -1
  14. package/nationalarchives/components/button/button.scss +4 -8
  15. package/nationalarchives/components/button/button.stories.js +36 -38
  16. package/nationalarchives/components/button/fixtures.json +3 -3
  17. package/nationalarchives/components/button/template.njk +9 -8
  18. package/nationalarchives/components/card/card.css +1 -1
  19. package/nationalarchives/components/card/card.css.map +1 -1
  20. package/nationalarchives/components/card/card.scss +10 -5
  21. package/nationalarchives/components/card/card.stories.js +39 -23
  22. package/nationalarchives/components/card/fixtures.json +16 -2
  23. package/nationalarchives/components/card/macro-options.json +0 -6
  24. package/nationalarchives/components/card/template.njk +1 -4
  25. package/nationalarchives/components/checkboxes/checkboxes.css.map +1 -1
  26. package/nationalarchives/components/compound-filters/compound-filters.css.map +1 -1
  27. package/nationalarchives/components/cookie-banner/cookie-banner.css.map +1 -1
  28. package/nationalarchives/components/cookie-banner/fixtures.json +10 -10
  29. package/nationalarchives/components/date-input/date-input.css.map +1 -1
  30. package/nationalarchives/components/date-search/date-search.css.map +1 -1
  31. package/nationalarchives/components/error-summary/error-summary.css +1 -1
  32. package/nationalarchives/components/error-summary/error-summary.css.map +1 -1
  33. package/nationalarchives/components/error-summary/error-summary.scss +1 -1
  34. package/nationalarchives/components/featured-records/featured-records.css +1 -1
  35. package/nationalarchives/components/featured-records/featured-records.css.map +1 -1
  36. package/nationalarchives/components/featured-records/featured-records.scss +1 -1
  37. package/nationalarchives/components/footer/analytics.js +95 -0
  38. package/nationalarchives/components/footer/fixtures.json +10 -10
  39. package/nationalarchives/components/footer/footer.css +1 -1
  40. package/nationalarchives/components/footer/footer.css.map +1 -1
  41. package/nationalarchives/components/footer/footer.scss +4 -3
  42. package/nationalarchives/components/footer/footer.stories.js +12 -9
  43. package/nationalarchives/components/footer/template.njk +17 -12
  44. package/nationalarchives/components/gallery/gallery.css.map +1 -1
  45. package/nationalarchives/components/gallery/template.njk +1 -1
  46. package/nationalarchives/components/global-header/README.md +1 -1
  47. package/nationalarchives/components/global-header/analytics.js +49 -3
  48. package/nationalarchives/components/global-header/fixtures.json +1 -1
  49. package/nationalarchives/components/global-header/global-header.css +1 -1
  50. package/nationalarchives/components/global-header/global-header.css.map +1 -1
  51. package/nationalarchives/components/global-header/global-header.js +1 -1
  52. package/nationalarchives/components/global-header/global-header.js.map +1 -1
  53. package/nationalarchives/components/global-header/global-header.mjs +40 -79
  54. package/nationalarchives/components/global-header/global-header.scss +9 -6
  55. package/nationalarchives/components/global-header/macro-options.json +12 -0
  56. package/nationalarchives/components/global-header/template.njk +7 -7
  57. package/nationalarchives/components/grid/grid.css +1 -1
  58. package/nationalarchives/components/grid/grid.css.map +1 -1
  59. package/nationalarchives/components/grid/grid.scss +0 -1
  60. package/nationalarchives/components/header/analytics.js +3 -8
  61. package/nationalarchives/components/header/fixtures.json +1 -1
  62. package/nationalarchives/components/header/header.css +1 -1
  63. package/nationalarchives/components/header/header.css.map +1 -1
  64. package/nationalarchives/components/header/header.js +1 -1
  65. package/nationalarchives/components/header/header.js.map +1 -1
  66. package/nationalarchives/components/header/header.mjs +32 -41
  67. package/nationalarchives/components/header/header.scss +3 -2
  68. package/nationalarchives/components/header/macro-options.json +6 -0
  69. package/nationalarchives/components/header/template.njk +6 -6
  70. package/nationalarchives/components/hero/hero.css +1 -1
  71. package/nationalarchives/components/hero/hero.css.map +1 -1
  72. package/nationalarchives/components/hero/hero.scss +1 -1
  73. package/nationalarchives/components/index-grid/fixtures.json +8 -8
  74. package/nationalarchives/components/index-grid/index-grid.css.map +1 -1
  75. package/nationalarchives/components/index-grid/macro-options.json +1 -1
  76. package/nationalarchives/components/index-grid/template.njk +41 -38
  77. package/nationalarchives/components/message/message.css +1 -1
  78. package/nationalarchives/components/message/message.css.map +1 -1
  79. package/nationalarchives/components/message/message.scss +2 -3
  80. package/nationalarchives/components/pagination/fixtures.json +1 -1
  81. package/nationalarchives/components/pagination/macro-options.json +6 -0
  82. package/nationalarchives/components/pagination/pagination.css.map +1 -1
  83. package/nationalarchives/components/pagination/pagination.stories.js +44 -0
  84. package/nationalarchives/components/pagination/template.njk +5 -2
  85. package/nationalarchives/components/phase-banner/phase-banner.css.map +1 -1
  86. package/nationalarchives/components/picture/analytics.js +5 -9
  87. package/nationalarchives/components/picture/picture.css.map +1 -1
  88. package/nationalarchives/components/quick-filters/quick-filters.css.map +1 -1
  89. package/nationalarchives/components/radios/radios.css.map +1 -1
  90. package/nationalarchives/components/search-field/search-field.css.map +1 -1
  91. package/nationalarchives/components/search-filters/search-filters.css.map +1 -1
  92. package/nationalarchives/components/select/select.css.map +1 -1
  93. package/nationalarchives/components/sensitive-image/fixtures.json +3 -3
  94. package/nationalarchives/components/sensitive-image/template.njk +1 -1
  95. package/nationalarchives/components/skip-link/skip-link.css +1 -1
  96. package/nationalarchives/components/skip-link/skip-link.css.map +1 -1
  97. package/nationalarchives/components/skip-link/skip-link.scss +1 -1
  98. package/nationalarchives/components/skip-link/skip-link.stories.js +1 -1
  99. package/nationalarchives/components/tabs/tabs.css.map +1 -1
  100. package/nationalarchives/components/text-input/text-input.css.map +1 -1
  101. package/nationalarchives/components/textarea/textarea.css.map +1 -1
  102. package/nationalarchives/global-header-package.css +1 -1
  103. package/nationalarchives/global-header-package.css.map +1 -1
  104. package/nationalarchives/global-header-package.scss +4 -6
  105. package/nationalarchives/lib/analytics-helpers.mjs +13 -8
  106. package/nationalarchives/prototype-kit.css +1 -1
  107. package/nationalarchives/prototype-kit.css.map +1 -1
  108. package/nationalarchives/stories/utilities/colour-schemes/colour-themes.stories.js +29 -15
  109. package/nationalarchives/stories/utilities/tables/tables.stories.js +30 -28
  110. package/nationalarchives/templates/fixtures.json +28 -0
  111. package/nationalarchives/templates/index-grid.njk +149 -0
  112. package/nationalarchives/templates/layouts/_generic.njk +11 -25
  113. package/nationalarchives/templates/layouts/_prototype-kit.njk +4 -4
  114. package/nationalarchives/templates/list.njk +55 -0
  115. package/nationalarchives/templates/plain.njk +94 -0
  116. package/nationalarchives/tools/_a11y.scss +11 -2
  117. package/nationalarchives/tools/_colour.scss +24 -0
  118. package/nationalarchives/tools/_spacing.scss +14 -2
  119. package/nationalarchives/utilities/_a11y.scss +4 -0
  120. package/nationalarchives/utilities/_forms.scss +1 -1
  121. package/nationalarchives/utilities/_global.scss +5 -5
  122. package/nationalarchives/utilities/_lists.scss +1 -1
  123. package/nationalarchives/utilities/_reset.scss +5 -2
  124. package/nationalarchives/utilities/_tables.scss +23 -6
  125. package/nationalarchives/utilities/_typography.scss +3 -21
  126. package/nationalarchives/variables/_a11y.scss +2 -0
  127. package/nationalarchives/variables/_grid.scss +1 -1
  128. package/nationalarchives/variables/_index.scss +1 -0
  129. package/package.json +5 -2
  130. package/nationalarchives/templates/homepage.njk +0 -17
  131. package/nationalarchives/templates/search-results.njk +0 -34
  132. package/nationalarchives/templates/topics.njk +0 -38
  133. package/nationalarchives/tests/analytics.test.js +0 -11
  134. package/nationalarchives/tests/cookies.test.js +0 -487
  135. package/nationalarchives/tests/uuid.test.js +0 -11
@@ -1,487 +0,0 @@
1
- import {
2
- jest,
3
- describe,
4
- expect,
5
- test,
6
- beforeEach,
7
- afterEach,
8
- } from "@jest/globals";
9
- import { TextEncoder, TextDecoder, store, options } from "util";
10
- import Cookies from "../lib/cookies.mjs";
11
-
12
- global.TextEncoder = TextEncoder;
13
- global.TextDecoder = TextDecoder;
14
- global.store = store;
15
- global.options = options;
16
-
17
- const addCookiesToDocument = (document) => {
18
- let _cookies = {};
19
- document.__defineGetter__("cookie", () => {
20
- return Object.keys(_cookies)
21
- .map((key) => `${key}=${_cookies[key]}`)
22
- .join("; ");
23
- });
24
- document.__defineSetter__("cookie", (s) => {
25
- const keyValue = s.trim().split("=");
26
- const key = keyValue[0].trim();
27
- const values = keyValue[1].trim().split(";");
28
- const value = values[0];
29
- _cookies[key] = value;
30
- return `${key}=${value}`;
31
- });
32
- document.clearAllCookies = () => {
33
- _cookies = {};
34
- };
35
- };
36
-
37
- addCookiesToDocument(document);
38
-
39
- describe("No existing cookies", () => {
40
- afterEach(() => {
41
- document.clearAllCookies();
42
- });
43
-
44
- test("Initialisation", async () => {
45
- expect(document.cookie).toEqual("");
46
-
47
- const cookies = new Cookies();
48
- expect(cookies).toHaveProperty("all");
49
- expect(cookies).toBeInstanceOf(Cookies);
50
-
51
- expect(document.cookie).not.toEqual("");
52
- });
53
-
54
- test("Getting/setting", async () => {
55
- const cookies = new Cookies();
56
- expect(cookies).toHaveProperty("get");
57
- expect(cookies).toHaveProperty("set");
58
- expect(cookies).toHaveProperty("exists");
59
- expect(cookies).toHaveProperty("hasValue");
60
-
61
- expect(Object.keys(cookies.all)).toHaveLength(1);
62
-
63
- const testKey = "foo";
64
- const testValue = "bar";
65
-
66
- expect(cookies.all).not.toHaveProperty(testKey);
67
- expect(cookies.exists(testKey)).toEqual(false);
68
-
69
- cookies.set(testKey, testValue);
70
-
71
- expect(Object.keys(cookies.all)).toHaveLength(2);
72
-
73
- expect(cookies.all).toHaveProperty(testKey);
74
- expect(cookies.all[testKey]).toEqual(testValue);
75
- expect(cookies.exists(testKey)).toEqual(true);
76
- expect(cookies.get(testKey)).toEqual(testValue);
77
- expect(cookies.hasValue(testKey, testValue)).toEqual(true);
78
- expect(cookies.hasValue(testKey, "different")).toEqual(false);
79
- });
80
-
81
- test("Deletion", async () => {
82
- const cookies = new Cookies();
83
- expect(cookies).toHaveProperty("delete");
84
-
85
- const testKey = "foo";
86
- const testValue = "bar";
87
-
88
- cookies.set(testKey, testValue);
89
-
90
- expect(cookies.all).toHaveProperty(testKey);
91
- expect(cookies.all[testKey]).toEqual(testValue);
92
- expect(cookies.exists(testKey)).toEqual(true);
93
- expect(cookies.get(testKey)).toEqual(testValue);
94
-
95
- cookies.delete(testKey);
96
-
97
- // expect(cookies.all).not.toHaveProperty(testKey);
98
- // expect(cookies.exists(testKey)).toEqual(false);
99
- expect(cookies.get(testKey)).toEqual("");
100
- });
101
-
102
- test("Deletion of all", async () => {
103
- const cookies = new Cookies();
104
-
105
- const testKeys = ["foo", "bar"];
106
- const testValue = "testValue";
107
-
108
- testKeys.forEach((testKey) => cookies.set(testKey, testValue));
109
-
110
- testKeys.forEach((testKey) => {
111
- expect(cookies.get(testKey)).toEqual(testValue);
112
- });
113
-
114
- cookies.deleteAll();
115
-
116
- testKeys.forEach((testKey) => {
117
- expect(cookies.get(testKey)).toEqual("");
118
- });
119
- });
120
-
121
- test("Initial policies", async () => {
122
- const cookies = new Cookies();
123
- expect(cookies).toHaveProperty("policies");
124
-
125
- expect(cookies.policies).toHaveProperty("essential");
126
- expect(cookies.policies.essential).toEqual(true);
127
- expect(JSON.parse(cookies.get("cookies_policy"))).toHaveProperty(
128
- "essential",
129
- );
130
- expect(cookies.policies).toHaveProperty("settings");
131
- expect(cookies.policies.settings).toEqual(false);
132
- expect(JSON.parse(cookies.get("cookies_policy"))).toHaveProperty(
133
- "settings",
134
- );
135
- expect(cookies.policies).toHaveProperty("usage");
136
- expect(cookies.policies.usage).toEqual(false);
137
- expect(JSON.parse(cookies.get("cookies_policy"))).toHaveProperty("usage");
138
- });
139
-
140
- test("Accept policy", async () => {
141
- const cookies = new Cookies();
142
- expect(cookies).toHaveProperty("isPolicyAccepted");
143
-
144
- expect(cookies.policies).toHaveProperty("essential");
145
- expect(cookies.policies.essential).toEqual(true);
146
- expect(cookies.isPolicyAccepted("essential")).toEqual(true);
147
- expect(cookies.policies).toHaveProperty("settings");
148
- expect(cookies.policies.settings).toEqual(false);
149
- expect(cookies.isPolicyAccepted("settings")).toEqual(false);
150
- expect(cookies.policies).toHaveProperty("usage");
151
- expect(cookies.policies.usage).toEqual(false);
152
- expect(cookies.isPolicyAccepted("usage")).toEqual(false);
153
-
154
- cookies.acceptPolicy("settings");
155
- expect(cookies.policies.essential).toEqual(true);
156
- expect(cookies.isPolicyAccepted("essential")).toEqual(true);
157
- expect(cookies.policies.settings).toEqual(true);
158
- expect(cookies.isPolicyAccepted("settings")).toEqual(true);
159
- expect(cookies.policies.usage).toEqual(false);
160
- expect(cookies.isPolicyAccepted("usage")).toEqual(false);
161
-
162
- cookies.acceptPolicy("usage");
163
- expect(cookies.policies.essential).toEqual(true);
164
- expect(cookies.isPolicyAccepted("essential")).toEqual(true);
165
- expect(cookies.policies.settings).toEqual(true);
166
- expect(cookies.isPolicyAccepted("settings")).toEqual(true);
167
- expect(cookies.policies.usage).toEqual(true);
168
- expect(cookies.isPolicyAccepted("usage")).toEqual(true);
169
- });
170
-
171
- test("Accept all policies", async () => {
172
- const cookies = new Cookies();
173
- expect(cookies).toHaveProperty("acceptAllPolicies");
174
-
175
- expect(cookies.policies).toHaveProperty("essential");
176
- expect(cookies.policies.essential).toEqual(true);
177
- expect(cookies.isPolicyAccepted("essential")).toEqual(true);
178
- expect(cookies.policies).toHaveProperty("settings");
179
- expect(cookies.policies.settings).toEqual(false);
180
- expect(cookies.isPolicyAccepted("settings")).toEqual(false);
181
- expect(cookies.policies).toHaveProperty("usage");
182
- expect(cookies.policies.usage).toEqual(false);
183
- expect(cookies.isPolicyAccepted("usage")).toEqual(false);
184
-
185
- cookies.acceptAllPolicies();
186
- expect(cookies.policies.essential).toEqual(true);
187
- expect(cookies.isPolicyAccepted("essential")).toEqual(true);
188
- expect(cookies.policies.settings).toEqual(true);
189
- expect(cookies.isPolicyAccepted("settings")).toEqual(true);
190
- expect(cookies.policies.usage).toEqual(true);
191
- expect(cookies.isPolicyAccepted("usage")).toEqual(true);
192
- });
193
-
194
- test("Reject policy", async () => {
195
- const cookies = new Cookies();
196
-
197
- cookies.acceptPolicy("settings");
198
- cookies.acceptPolicy("usage");
199
- expect(cookies.policies.essential).toEqual(true);
200
- expect(cookies.isPolicyAccepted("essential")).toEqual(true);
201
- expect(cookies.policies.settings).toEqual(true);
202
- expect(cookies.isPolicyAccepted("settings")).toEqual(true);
203
- expect(cookies.policies.usage).toEqual(true);
204
- expect(cookies.isPolicyAccepted("usage")).toEqual(true);
205
-
206
- cookies.rejectPolicy("settings");
207
- expect(cookies.policies.essential).toEqual(true);
208
- expect(cookies.isPolicyAccepted("essential")).toEqual(true);
209
- expect(cookies.policies.settings).toEqual(false);
210
- expect(cookies.isPolicyAccepted("settings")).toEqual(false);
211
- expect(cookies.policies.usage).toEqual(true);
212
- expect(cookies.isPolicyAccepted("usage")).toEqual(true);
213
-
214
- cookies.rejectPolicy("usage");
215
- expect(cookies.policies.essential).toEqual(true);
216
- expect(cookies.isPolicyAccepted("essential")).toEqual(true);
217
- expect(cookies.policies.settings).toEqual(false);
218
- expect(cookies.isPolicyAccepted("settings")).toEqual(false);
219
- expect(cookies.policies.usage).toEqual(false);
220
- expect(cookies.isPolicyAccepted("usage")).toEqual(false);
221
- });
222
-
223
- test("Reject all policies", async () => {
224
- const cookies = new Cookies();
225
- expect(cookies).toHaveProperty("rejectAllPolicies");
226
-
227
- cookies.acceptAllPolicies();
228
- expect(cookies.policies.essential).toEqual(true);
229
- expect(cookies.isPolicyAccepted("essential")).toEqual(true);
230
- expect(cookies.policies.settings).toEqual(true);
231
- expect(cookies.isPolicyAccepted("settings")).toEqual(true);
232
- expect(cookies.policies.usage).toEqual(true);
233
- expect(cookies.isPolicyAccepted("usage")).toEqual(true);
234
-
235
- cookies.rejectAllPolicies();
236
- expect(cookies.policies.essential).toEqual(true);
237
- expect(cookies.isPolicyAccepted("essential")).toEqual(true);
238
- expect(cookies.policies.settings).toEqual(false);
239
- expect(cookies.isPolicyAccepted("settings")).toEqual(false);
240
- expect(cookies.policies.usage).toEqual(false);
241
- expect(cookies.isPolicyAccepted("usage")).toEqual(false);
242
- });
243
-
244
- test("Protected essential policy", async () => {
245
- const cookies = new Cookies();
246
-
247
- expect(cookies.policies).toHaveProperty("essential");
248
- expect(cookies.isPolicyAccepted("essential")).toEqual(true);
249
-
250
- cookies.acceptPolicy("essential");
251
- expect(cookies.isPolicyAccepted("essential")).toEqual(true);
252
-
253
- cookies.rejectPolicy("essential");
254
- expect(cookies.isPolicyAccepted("essential")).toEqual(true);
255
-
256
- cookies.rejectAllPolicies();
257
- expect(cookies.isPolicyAccepted("essential")).toEqual(true);
258
- });
259
-
260
- test("Basic events", async () => {
261
- const cookies = new Cookies();
262
- expect(cookies).toHaveProperty("on");
263
-
264
- const mockCallback = jest.fn();
265
- cookies.on("setCookie", mockCallback);
266
- const testKey = "foo";
267
- const testValue = "bar";
268
-
269
- cookies.set(testKey, testValue);
270
-
271
- expect(mockCallback.mock.calls).toHaveLength(1);
272
- expect(mockCallback.mock.calls[0][0]).toStrictEqual({
273
- key: testKey,
274
- value: testValue,
275
- domain: "",
276
- path: "/",
277
- sameSite: "Lax",
278
- secure: true,
279
- maxAge: 31536000,
280
- cookie: `${testKey}=${testValue}; samesite=Lax; path=/; max-age=31536000; secure`,
281
- });
282
-
283
- cookies.set(testKey, testValue);
284
-
285
- expect(mockCallback.mock.calls).toHaveLength(2);
286
- expect(mockCallback.mock.calls[1][0]).toStrictEqual({
287
- key: testKey,
288
- value: testValue,
289
- domain: "",
290
- path: "/",
291
- sameSite: "Lax",
292
- secure: true,
293
- maxAge: 31536000,
294
- cookie: `${testKey}=${testValue}; samesite=Lax; path=/; max-age=31536000; secure`,
295
- });
296
- });
297
-
298
- test("All events", async () => {
299
- const cookies = new Cookies();
300
-
301
- const mockSetCookieCallback = jest.fn();
302
- cookies.on("setCookie", mockSetCookieCallback);
303
- const mockDeleteCookieCallback = jest.fn();
304
- cookies.on("deleteCookie", mockDeleteCookieCallback);
305
- const mockDeleteAllCookiesCallback = jest.fn();
306
- cookies.on("deleteAllCookies", mockDeleteAllCookiesCallback);
307
- const mockAcceptPolicyCallback = jest.fn();
308
- cookies.on("acceptPolicy", mockAcceptPolicyCallback);
309
- const mockRejectPolicyCallback = jest.fn();
310
- cookies.on("rejectPolicy", mockRejectPolicyCallback);
311
- const mockAcceptAllPoliciesCallback = jest.fn();
312
- cookies.on("acceptAllPolicies", mockAcceptAllPoliciesCallback);
313
- const mockRejectAllPoliciesCallback = jest.fn();
314
- cookies.on("rejectAllPolicies", mockRejectAllPoliciesCallback);
315
- const mockChangePolicyCallback = jest.fn();
316
- cookies.on("changePolicy", mockChangePolicyCallback);
317
-
318
- const testKey = "foo";
319
- const testValue = "bar";
320
- cookies.set(testKey, testValue);
321
- cookies.delete(testKey);
322
- cookies.acceptPolicy("settings");
323
- cookies.rejectPolicy("settings");
324
- cookies.setPolicy("settings", true);
325
- cookies.acceptAllPolicies();
326
- cookies.rejectAllPolicies();
327
- cookies.deleteAll();
328
-
329
- expect(mockSetCookieCallback.mock.calls).toHaveLength(9);
330
- expect(mockDeleteCookieCallback.mock.calls).toHaveLength(3);
331
- expect(mockDeleteAllCookiesCallback.mock.calls).toHaveLength(1);
332
- expect(mockAcceptPolicyCallback.mock.calls).toHaveLength(1);
333
- expect(mockRejectPolicyCallback.mock.calls).toHaveLength(1);
334
- expect(mockAcceptAllPoliciesCallback.mock.calls).toHaveLength(1);
335
- expect(mockRejectAllPoliciesCallback.mock.calls).toHaveLength(1);
336
- expect(mockChangePolicyCallback.mock.calls).toHaveLength(7);
337
- });
338
-
339
- test("Shared events", async () => {
340
- const mockCallback = jest.fn();
341
-
342
- const cookies1 = new Cookies();
343
-
344
- const cookies2 = new Cookies();
345
- cookies2.on("setCookie", mockCallback);
346
-
347
- const testKey = "foo";
348
- const testValue = "bar";
349
-
350
- expect(mockCallback.mock.calls).toHaveLength(0);
351
-
352
- cookies1.set(testKey, testValue);
353
- expect(mockCallback.mock.calls).toHaveLength(1);
354
-
355
- cookies1.set(testKey, testValue);
356
- expect(mockCallback.mock.calls).toHaveLength(2);
357
-
358
- cookies2.set(testKey, testValue);
359
- expect(mockCallback.mock.calls).toHaveLength(3);
360
- });
361
-
362
- test("One-time events", async () => {
363
- const mockCallback = jest.fn();
364
-
365
- const cookies = new Cookies();
366
-
367
- cookies.once("setCookie", mockCallback);
368
-
369
- const testKey = "foo";
370
- const testValue = "bar";
371
-
372
- expect(mockCallback.mock.calls).toHaveLength(0);
373
-
374
- cookies.set(testKey, testValue);
375
- expect(mockCallback.mock.calls).toHaveLength(1);
376
-
377
- cookies.set(testKey, testValue);
378
- expect(mockCallback.mock.calls).toHaveLength(1);
379
- });
380
-
381
- test("Custom policies", async () => {
382
- const cookies = new Cookies({ extraPolicies: ["custom"] });
383
-
384
- expect(cookies.policies).toHaveProperty("essential");
385
- expect(cookies.policies).toHaveProperty("settings");
386
- expect(cookies.policies).toHaveProperty("usage");
387
- expect(cookies.policies).toHaveProperty("custom");
388
- expect(cookies.policies.custom).toEqual(false);
389
- expect(cookies.isPolicyAccepted("custom")).toEqual(false);
390
-
391
- cookies.acceptPolicy("custom");
392
- expect(cookies.policies.custom).toEqual(true);
393
- expect(cookies.isPolicyAccepted("custom")).toEqual(true);
394
-
395
- cookies.rejectPolicy("custom");
396
- expect(cookies.policies.custom).toEqual(false);
397
- expect(cookies.isPolicyAccepted("custom")).toEqual(false);
398
-
399
- cookies.acceptAllPolicies();
400
- expect(cookies.policies.custom).toEqual(true);
401
- expect(cookies.isPolicyAccepted("custom")).toEqual(true);
402
-
403
- cookies.rejectAllPolicies();
404
- expect(cookies.policies.custom).toEqual(false);
405
- expect(cookies.isPolicyAccepted("custom")).toEqual(false);
406
- });
407
-
408
- test("Custom policy key", async () => {
409
- const cookies = new Cookies({ policiesKey: ["custom"] });
410
-
411
- expect(cookies.all).not.toHaveProperty("cookies_policy");
412
- expect(cookies.all).toHaveProperty("custom");
413
-
414
- expect(cookies.policies.settings).toEqual(false);
415
-
416
- cookies.acceptAllPolicies();
417
- expect(cookies.policies.settings).toEqual(true);
418
- });
419
- });
420
-
421
- describe("Existing cookies", () => {
422
- beforeEach(() => {
423
- document.clearAllCookies();
424
- document.cookie =
425
- "cookies_policy=%7B%22usage%22%3Afalse%2C%22settings%22%3Atrue%2C%22essential%22%3Atrue%7D";
426
- });
427
-
428
- test("Initialisation", async () => {
429
- const cookies = new Cookies();
430
-
431
- expect(cookies.all).toHaveProperty("cookies_policy");
432
- expect(cookies.policies).toHaveProperty("essential");
433
- expect(cookies.isPolicyAccepted("essential")).toEqual(true);
434
- expect(cookies.policies).toHaveProperty("settings");
435
- expect(cookies.isPolicyAccepted("settings")).toEqual(true);
436
- expect(cookies.policies).toHaveProperty("usage");
437
- expect(cookies.isPolicyAccepted("usage")).toEqual(false);
438
- });
439
-
440
- test("Update policies", async () => {
441
- const cookies = new Cookies();
442
- cookies.acceptPolicy("usage");
443
- cookies.rejectPolicy("settings");
444
-
445
- expect(cookies.isPolicyAccepted("essential")).toEqual(true);
446
- expect(cookies.isPolicyAccepted("settings")).toEqual(false);
447
- expect(cookies.isPolicyAccepted("usage")).toEqual(true);
448
- });
449
- });
450
-
451
- describe("Existing empty cookie policies", () => {
452
- beforeEach(() => {
453
- document.clearAllCookies();
454
- document.cookie = "cookies_policy=%7B%7D";
455
- });
456
-
457
- test("Initialisation", async () => {
458
- const cookies = new Cookies();
459
-
460
- expect(cookies.all).toHaveProperty("cookies_policy");
461
- expect(cookies.policies).toHaveProperty("essential");
462
- expect(cookies.isPolicyAccepted("essential")).toEqual(true);
463
- expect(cookies.policies).toHaveProperty("settings");
464
- expect(cookies.isPolicyAccepted("settings")).toEqual(false);
465
- expect(cookies.policies).toHaveProperty("usage");
466
- expect(cookies.isPolicyAccepted("usage")).toEqual(false);
467
- });
468
- });
469
-
470
- describe("Existing malformed cookie policies", () => {
471
- beforeEach(() => {
472
- document.clearAllCookies();
473
- document.cookie = "cookies_policy=foobar";
474
- });
475
-
476
- test("Initialisation", async () => {
477
- const cookies = new Cookies();
478
-
479
- expect(cookies.all).toHaveProperty("cookies_policy");
480
- expect(cookies.policies).toHaveProperty("essential");
481
- expect(cookies.isPolicyAccepted("essential")).toEqual(true);
482
- expect(cookies.policies).toHaveProperty("settings");
483
- expect(cookies.isPolicyAccepted("settings")).toEqual(false);
484
- expect(cookies.policies).toHaveProperty("usage");
485
- expect(cookies.isPolicyAccepted("usage")).toEqual(false);
486
- });
487
- });
@@ -1,11 +0,0 @@
1
- import { describe, expect, test } from "@jest/globals";
2
- import uuidv4 from "../lib/uuid.mjs";
3
-
4
- describe("UUID", () => {
5
- test("Initialisation", async () => {
6
- const uuid1 = uuidv4();
7
- const uuid2 = uuidv4();
8
-
9
- expect(uuid1).not.toEqual(uuid2);
10
- });
11
- });