@prosopo/procaptcha-react 2.11.3 → 2.12.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 (117) hide show
  1. package/.turbo/turbo-build$colon$cjs.log +13 -13
  2. package/.turbo/turbo-build$colon$tsc.log +21 -21
  3. package/.turbo/turbo-build.log +14 -13
  4. package/CHANGELOG.md +41 -0
  5. package/dist/cjs/components/button.cjs +100 -0
  6. package/dist/cjs/components/captchaComponent.cjs +210 -0
  7. package/dist/cjs/components/captchaWidget.cjs +203 -0
  8. package/dist/cjs/components/collector.cjs +49 -0
  9. package/dist/cjs/components/index.cjs +15 -6
  10. package/dist/cjs/components/modal.cjs +35 -0
  11. package/dist/cjs/components/procaptcha.cjs +23 -0
  12. package/dist/cjs/components/procaptchaWidget.cjs +166 -0
  13. package/dist/cjs/index.cjs +15 -6
  14. package/dist/cjs/util/index.cjs +6 -4
  15. package/dist/components/button.d.ts +9 -0
  16. package/dist/components/button.d.ts.map +1 -0
  17. package/dist/components/button.js +100 -0
  18. package/dist/components/button.js.map +1 -0
  19. package/dist/components/{CaptchaComponent.d.ts → captchaComponent.d.ts} +5 -3
  20. package/dist/components/captchaComponent.d.ts.map +1 -0
  21. package/dist/components/captchaComponent.js +210 -0
  22. package/dist/components/captchaComponent.js.map +1 -0
  23. package/dist/components/{CaptchaWidget.d.ts → captchaWidget.d.ts} +3 -2
  24. package/dist/components/captchaWidget.d.ts.map +1 -0
  25. package/dist/components/captchaWidget.js +203 -0
  26. package/dist/components/captchaWidget.js.map +1 -0
  27. package/dist/components/collector.d.ts +5 -4
  28. package/dist/components/collector.d.ts.map +1 -1
  29. package/dist/components/collector.js +46 -24
  30. package/dist/components/collector.js.map +1 -1
  31. package/dist/components/index.d.ts +7 -5
  32. package/dist/components/index.d.ts.map +1 -1
  33. package/dist/components/index.js +8 -4
  34. package/dist/components/index.js.map +1 -1
  35. package/dist/components/modal.d.ts +14 -0
  36. package/dist/components/modal.d.ts.map +1 -0
  37. package/dist/components/modal.js +35 -0
  38. package/dist/components/modal.js.map +1 -0
  39. package/dist/components/procaptcha.d.ts +7 -0
  40. package/dist/components/procaptcha.d.ts.map +1 -0
  41. package/dist/components/procaptcha.js +22 -0
  42. package/dist/components/procaptcha.js.map +1 -0
  43. package/dist/components/procaptchaWidget.d.ts +7 -0
  44. package/dist/components/procaptchaWidget.d.ts.map +1 -0
  45. package/dist/components/procaptchaWidget.js +166 -0
  46. package/dist/components/procaptchaWidget.js.map +1 -0
  47. package/dist/index.js +8 -4
  48. package/dist/tests/button.unit.test.d.ts.map +1 -1
  49. package/dist/tests/button.unit.test.js +69 -49
  50. package/dist/tests/button.unit.test.js.map +1 -1
  51. package/dist/tests/captchaComponent.unit.test.d.ts.map +1 -1
  52. package/dist/tests/captchaComponent.unit.test.js +31 -9
  53. package/dist/tests/captchaComponent.unit.test.js.map +1 -1
  54. package/dist/tests/captchaWidget.unit.test.d.ts.map +1 -1
  55. package/dist/tests/captchaWidget.unit.test.js +55 -9
  56. package/dist/tests/captchaWidget.unit.test.js.map +1 -1
  57. package/dist/tests/collector.unit.test.d.ts.map +1 -1
  58. package/dist/tests/collector.unit.test.js +43 -10
  59. package/dist/tests/collector.unit.test.js.map +1 -1
  60. package/dist/tests/harness.d.ts +2 -0
  61. package/dist/tests/harness.d.ts.map +1 -1
  62. package/dist/tests/harness.js +7 -0
  63. package/dist/tests/harness.js.map +1 -1
  64. package/dist/tests/modal.unit.test.d.ts.map +1 -1
  65. package/dist/tests/modal.unit.test.js +20 -7
  66. package/dist/tests/modal.unit.test.js.map +1 -1
  67. package/dist/tests/procaptcha.unit.test.d.ts.map +1 -1
  68. package/dist/tests/procaptcha.unit.test.js +37 -15
  69. package/dist/tests/procaptcha.unit.test.js.map +1 -1
  70. package/dist/tests/procaptchaReact.test-d.js +8 -6
  71. package/dist/tests/procaptchaReact.test-d.js.map +1 -1
  72. package/dist/tests/procaptchaWidget.unit.test.d.ts.map +1 -1
  73. package/dist/tests/procaptchaWidget.unit.test.js +112 -89
  74. package/dist/tests/procaptchaWidget.unit.test.js.map +1 -1
  75. package/dist/tests/render.d.ts +6 -7
  76. package/dist/tests/render.d.ts.map +1 -1
  77. package/dist/tests/render.js +23 -30
  78. package/dist/tests/render.js.map +1 -1
  79. package/dist/util/index.d.ts +8 -7
  80. package/dist/util/index.d.ts.map +1 -1
  81. package/dist/util/index.js +6 -4
  82. package/dist/util/index.js.map +1 -1
  83. package/package.json +8 -13
  84. package/vite.test.config.ts +1 -2
  85. package/dist/cjs/_virtual/_rolldown/runtime.cjs +0 -23
  86. package/dist/cjs/components/Button.cjs +0 -81
  87. package/dist/cjs/components/CaptchaComponent.cjs +0 -171
  88. package/dist/cjs/components/CaptchaWidget.cjs +0 -129
  89. package/dist/cjs/components/Modal.cjs +0 -35
  90. package/dist/cjs/components/Procaptcha.cjs +0 -7
  91. package/dist/cjs/components/ProcaptchaWidget.cjs +0 -168
  92. package/dist/components/Button.d.ts +0 -11
  93. package/dist/components/Button.d.ts.map +0 -1
  94. package/dist/components/Button.js +0 -81
  95. package/dist/components/Button.js.map +0 -1
  96. package/dist/components/CaptchaComponent.d.ts.map +0 -1
  97. package/dist/components/CaptchaComponent.js +0 -171
  98. package/dist/components/CaptchaComponent.js.map +0 -1
  99. package/dist/components/CaptchaWidget.d.ts.map +0 -1
  100. package/dist/components/CaptchaWidget.js +0 -129
  101. package/dist/components/CaptchaWidget.js.map +0 -1
  102. package/dist/components/Modal.d.ts +0 -13
  103. package/dist/components/Modal.d.ts.map +0 -1
  104. package/dist/components/Modal.js +0 -33
  105. package/dist/components/Modal.js.map +0 -1
  106. package/dist/components/Procaptcha.d.ts +0 -4
  107. package/dist/components/Procaptcha.d.ts.map +0 -1
  108. package/dist/components/Procaptcha.js +0 -7
  109. package/dist/components/Procaptcha.js.map +0 -1
  110. package/dist/components/ProcaptchaWidget.d.ts +0 -4
  111. package/dist/components/ProcaptchaWidget.d.ts.map +0 -1
  112. package/dist/components/ProcaptchaWidget.js +0 -168
  113. package/dist/components/ProcaptchaWidget.js.map +0 -1
  114. package/dist/tests/setup.d.ts +0 -5
  115. package/dist/tests/setup.d.ts.map +0 -1
  116. package/dist/tests/setup.js +0 -3
  117. package/dist/tests/setup.js.map +0 -1
@@ -1,11 +1,9 @@
1
- import { jsx as _jsx } from "@emotion/react/jsx-runtime";
2
1
  import { ModeEnum, } from "@prosopo/types";
3
2
  import { lightTheme } from "@prosopo/widget-skeleton";
4
- import { act } from "react";
5
- import { afterEach, beforeEach, describe, expect, test, vi, vitest, } from "vitest";
6
- import ProcaptchaWidget from "../components/ProcaptchaWidget.js";
3
+ import { afterEach, beforeEach, describe, expect, test, vi } from "vitest";
4
+ import { mountProcaptchaImageWidget, } from "../components/procaptchaWidget.js";
7
5
  import { challengeResponse, config, frictionless } from "./harness.js";
8
- import { asRgb, fire, mount } from "./render.js";
6
+ import { asRgb, fire, mount, settle } from "./render.js";
9
7
  const start = vi.fn(() => Promise.resolve());
10
8
  const cancel = vi.fn();
11
9
  const submit = vi.fn(() => Promise.resolve());
@@ -29,23 +27,33 @@ vi.mock("@prosopo/locale", async (importOriginal) => {
29
27
  const actual = await importOriginal();
30
28
  return {
31
29
  ...actual,
32
- useTranslation: () => ({ t: (key) => key, ready: true }),
30
+ createTranslator: () => ({
31
+ t: (key) => key,
32
+ isReady: () => true,
33
+ subscribe: () => () => undefined,
34
+ i18n: undefined,
35
+ }),
33
36
  loadI18next: (sync, language) => loadI18next(sync, language),
34
37
  };
35
38
  });
36
39
  let mounted;
40
+ let widget;
37
41
  const i18n = (language) => ({ language, changeLanguage });
38
42
  const render = (overrides = {}) => {
39
- mounted.render(_jsx(ProcaptchaWidget, { config: config(), callbacks: {}, i18n: undefined, ...overrides }));
43
+ widget = mountProcaptchaImageWidget(mounted.container, {
44
+ config: config(),
45
+ callbacks: {},
46
+ i18n: undefined,
47
+ ...overrides,
48
+ });
40
49
  };
41
50
  const openChallenge = () => ({
42
51
  challenge: challengeResponse(),
43
52
  solutions: [[]],
44
53
  });
45
- const setState = (next) => {
46
- act(() => {
47
- update?.(next);
48
- });
54
+ const setState = async (next) => {
55
+ update?.(next);
56
+ await settle();
49
57
  };
50
58
  const checkbox = () => {
51
59
  const element = mounted.container.querySelector('[data-cy="captcha-checkbox"]');
@@ -53,21 +61,20 @@ const checkbox = () => {
53
61
  throw new Error("expected the checkbox to be rendered");
54
62
  return element;
55
63
  };
64
+ const spinner = () => mounted.container.querySelector('[role="status"]');
56
65
  const modalText = () => document.querySelector(".prosopo-modalOuter")?.textContent ?? "";
57
- const flush = async () => {
58
- await act(async () => {
59
- await Promise.resolve();
60
- });
61
- };
62
66
  beforeEach(() => {
63
67
  vi.clearAllMocks();
64
68
  managerArgs.length = 0;
65
69
  update = undefined;
66
70
  readHoneypot = undefined;
71
+ widget = undefined;
67
72
  start.mockImplementation(() => Promise.resolve());
68
73
  mounted = mount();
69
74
  });
70
75
  afterEach(() => {
76
+ widget?.destroy();
77
+ widget = undefined;
71
78
  mounted.unmount();
72
79
  vi.useRealTimers();
73
80
  });
@@ -85,9 +92,9 @@ describe("what the user sees at rest", () => {
85
92
  const outer = document.querySelector(".prosopo-modalOuter");
86
93
  expect(outer?.style.display).toBe("none");
87
94
  });
88
- test("says so when the modal opens with no challenge", () => {
95
+ test("says so when the modal opens with no challenge", async () => {
89
96
  render();
90
- setState({ showModal: true });
97
+ await setState({ showModal: true });
91
98
  expect(modalText()).toContain("No challenge set.");
92
99
  });
93
100
  test("shows no honeypot unless the provider asked for one", () => {
@@ -111,14 +118,14 @@ describe("invisible mode", () => {
111
118
  render(invisible());
112
119
  expect(mounted.container.querySelector(".image-captcha")).toBeNull();
113
120
  });
114
- test("stays silent rather than announcing a missing challenge", () => {
121
+ test("stays silent rather than announcing a missing challenge", async () => {
115
122
  render(invisible());
116
- setState({ showModal: true });
123
+ await setState({ showModal: true });
117
124
  expect(modalText()).toBe("");
118
125
  });
119
- test("still shows the challenge when one arrives", () => {
126
+ test("still shows the challenge when one arrives", async () => {
120
127
  render(invisible());
121
- setState({ showModal: true, ...openChallenge() });
128
+ await setState({ showModal: true, ...openChallenge() });
122
129
  expect(modalText()).toContain("WIDGET.SELECT_ALL");
123
130
  });
124
131
  });
@@ -143,6 +150,12 @@ describe("the honeypot", () => {
143
150
  render();
144
151
  expect(readHoneypot?.()).toBeUndefined();
145
152
  });
153
+ test("is removed from the page when the widget is destroyed", () => {
154
+ render({ frictionlessState: frictionless({ hp: btoa("dit dah") }) });
155
+ widget?.destroy();
156
+ widget = undefined;
157
+ expect(document.body.textContent).not.toContain("dit dah");
158
+ });
146
159
  });
147
160
  describe("clicking the checkbox", () => {
148
161
  test("starts the challenge where the user clicked", () => {
@@ -155,24 +168,25 @@ describe("clicking the checkbox", () => {
155
168
  fire(checkbox(), "click", { trusted: false });
156
169
  expect(start).not.toHaveBeenCalled();
157
170
  });
158
- test("only starts once while a start is still in flight", () => {
171
+ test("only starts once while a start is still in flight", async () => {
159
172
  let finish;
160
173
  start.mockImplementation(() => new Promise((resolve) => {
161
174
  finish = resolve;
162
175
  }));
163
176
  render();
164
177
  fire(checkbox(), "click", { clientX: 1, clientY: 1 });
165
- expect(mounted.container.querySelector('[role="status"]')).not.toBeNull();
178
+ await settle();
179
+ expect(spinner()).not.toBeNull();
166
180
  expect(start).toHaveBeenCalledTimes(1);
167
181
  finish?.();
168
182
  });
169
183
  test("shows the checkbox again once the start resolves", async () => {
170
184
  render();
171
185
  fire(checkbox(), "click");
172
- await flush();
186
+ await settle();
173
187
  expect(checkbox()).toBeDefined();
174
188
  });
175
- test("the spinner takes over focus from the box it replaced", () => {
189
+ test("the spinner takes over focus from the box it replaced", async () => {
176
190
  let finish;
177
191
  start.mockImplementation(() => new Promise((resolve) => {
178
192
  finish = resolve;
@@ -180,22 +194,22 @@ describe("clicking the checkbox", () => {
180
194
  render();
181
195
  checkbox().focus();
182
196
  fire(checkbox(), "click", { clientX: 1, clientY: 1 });
183
- const spinner = mounted.container.querySelector('[role="status"]');
184
- expect(document.activeElement).toBe(spinner);
185
- expect(spinner?.getAttribute("aria-label")).toBe("WIDGET.CHECKING");
197
+ await settle();
198
+ expect(document.activeElement).toBe(spinner());
199
+ expect(spinner()?.getAttribute("aria-label")).toBe("WIDGET.CHECKING");
186
200
  finish?.();
187
201
  });
188
202
  test("focus comes back to the box when the check is done", async () => {
189
203
  render();
190
204
  checkbox().focus();
191
205
  fire(checkbox(), "click");
192
- await flush();
206
+ await settle();
193
207
  expect(document.activeElement).toBe(checkbox());
194
208
  });
195
209
  test("a box the user never focused does not steal focus", async () => {
196
210
  render();
197
211
  fire(checkbox(), "click");
198
- await flush();
212
+ await settle();
199
213
  expect(document.activeElement).not.toBe(checkbox());
200
214
  });
201
215
  test("focus the user moved on to is left where they put it", async () => {
@@ -210,109 +224,119 @@ describe("clicking the checkbox", () => {
210
224
  document.body.appendChild(elsewhere);
211
225
  elsewhere.focus();
212
226
  finish?.();
213
- await flush();
227
+ await settle();
214
228
  const focused = document.activeElement;
215
229
  elsewhere.remove();
216
230
  expect(focused).toBe(elsewhere);
217
231
  });
218
232
  test("shows the checkbox again when the start fails", async () => {
219
233
  start.mockImplementation(() => Promise.reject(new Error("network down")));
234
+ const consoleError = vi
235
+ .spyOn(console, "error")
236
+ .mockImplementation(() => undefined);
220
237
  render();
221
238
  fire(checkbox(), "click");
222
- await flush();
223
- expect(mounted.container.querySelector('[role="status"]')).toBeNull();
239
+ await settle();
240
+ expect(spinner()).toBeNull();
241
+ consoleError.mockRestore();
224
242
  });
225
- test("reflects a verified user as a ticked box", () => {
243
+ test("reflects a verified user as a ticked box", async () => {
226
244
  render();
227
- setState({ isHuman: true });
245
+ await setState({ isHuman: true });
228
246
  expect(checkbox().checked).toBe(true);
229
247
  });
230
248
  });
231
249
  describe("the challenge", () => {
232
- const withChallenge = () => {
250
+ const withChallenge = async () => {
233
251
  render();
234
- setState({ showModal: true, ...openChallenge() });
252
+ await setState({ showModal: true, ...openChallenge() });
235
253
  };
236
- test("wires the grid to the manager's select", () => {
237
- withChallenge();
254
+ test("wires the grid to the manager's select", async () => {
255
+ await withChallenge();
238
256
  const image = document.querySelector(".prosopo-modalOuter img");
239
257
  if (!image)
240
258
  throw new Error("expected a captcha image");
241
259
  fire(image, "click", { clientX: 3, clientY: 4 });
242
260
  expect(select).toHaveBeenCalledWith("hash-1", 3, 4);
243
261
  });
244
- test("wires cancel to the manager", () => {
245
- withChallenge();
262
+ test("wires cancel to the manager", async () => {
263
+ await withChallenge();
246
264
  const cancelButton = document.querySelector('.prosopo-modalOuter button[aria-label="WIDGET.CANCEL"]');
247
265
  if (!cancelButton)
248
266
  throw new Error("expected a cancel button");
249
267
  fire(cancelButton, "click");
250
268
  expect(cancel).toHaveBeenCalledTimes(1);
251
269
  });
252
- test("wires submit to the manager on the last round", () => {
253
- withChallenge();
270
+ test("wires submit to the manager on the last round", async () => {
271
+ await withChallenge();
254
272
  const submitButton = document.querySelector('.prosopo-modalOuter button[aria-label="WIDGET.SUBMIT"]');
255
273
  if (!submitButton)
256
274
  throw new Error("expected a submit button");
257
275
  fire(submitButton, "click");
258
276
  expect(submit).toHaveBeenCalledTimes(1);
259
277
  });
278
+ test("takes the modal with it when the widget is destroyed", () => {
279
+ render();
280
+ widget?.destroy();
281
+ widget = undefined;
282
+ expect(document.querySelector(".prosopo-modalOuter")).toBeNull();
283
+ });
260
284
  });
261
285
  describe("recovering from an error", () => {
262
- test("stops the spinner so the user can try again", () => {
286
+ test("stops the spinner so the user can try again", async () => {
263
287
  render();
264
288
  fire(checkbox(), "click");
265
- setState({ error: { message: "boom", key: "CAPTCHA.UNKNOWN" } });
266
- expect(mounted.container.querySelector('[role="status"]')).toBeNull();
289
+ await setState({ error: { message: "boom", key: "CAPTCHA.UNKNOWN" } });
290
+ expect(spinner()).toBeNull();
267
291
  });
268
- test("shows the error text against the checkbox", () => {
292
+ test("shows the error text against the checkbox", async () => {
269
293
  render();
270
- setState({ error: { message: "boom", key: "CAPTCHA.UNKNOWN" } });
294
+ await setState({ error: { message: "boom", key: "CAPTCHA.UNKNOWN" } });
271
295
  expect(mounted.container.textContent).toContain("boom");
272
296
  });
273
- test("asks the host to re-mint an invalidated session", () => {
297
+ test("asks the host to re-mint an invalidated session", async () => {
274
298
  const onSessionInvalidated = vi.fn();
275
299
  render({ onSessionInvalidated });
276
300
  fire(checkbox(), "click", { clientX: 7, clientY: 8 });
277
- setState({
301
+ await setState({
278
302
  error: { message: "gone", key: "CAPTCHA.NO_SESSION_FOUND" },
279
303
  });
280
304
  expect(onSessionInvalidated).toHaveBeenCalledWith(7, 8);
281
305
  });
282
- test("asks only once, however often the error re-renders", () => {
306
+ test("asks only once, however often the error re-renders", async () => {
283
307
  const onSessionInvalidated = vi.fn();
284
308
  render({ onSessionInvalidated });
285
- setState({ error: { message: "gone", key: "CAPTCHA.NO_SESSION_FOUND" } });
286
- setState({
309
+ await setState({
310
+ error: { message: "gone", key: "CAPTCHA.NO_SESSION_FOUND" },
311
+ });
312
+ await setState({
287
313
  error: { message: "gone again", key: "CAPTCHA.NO_SESSION_FOUND" },
288
314
  });
289
315
  expect(onSessionInvalidated).toHaveBeenCalledTimes(1);
290
316
  });
291
- test("reports no coordinates when the user never clicked", () => {
317
+ test("reports no coordinates when the user never clicked", async () => {
292
318
  const onSessionInvalidated = vi.fn();
293
319
  render({ onSessionInvalidated });
294
- setState({ error: { message: "gone", key: "CAPTCHA.NO_SESSION_FOUND" } });
320
+ await setState({
321
+ error: { message: "gone", key: "CAPTCHA.NO_SESSION_FOUND" },
322
+ });
295
323
  expect(onSessionInvalidated).toHaveBeenCalledWith(undefined, undefined);
296
324
  });
297
- test("falls back to restarting the frictionless flow", () => {
298
- vi.useFakeTimers();
325
+ test("falls back to restarting the frictionless flow", async () => {
299
326
  const restart = vi.fn();
300
327
  render({ frictionlessState: frictionless({ restart }) });
301
- setState({ error: { message: "gone", key: "CAPTCHA.NO_SESSION_FOUND" } });
302
- expect(restart).not.toHaveBeenCalled();
303
- act(() => {
304
- vi.advanceTimersByTime(100);
328
+ await setState({
329
+ error: { message: "gone", key: "CAPTCHA.NO_SESSION_FOUND" },
305
330
  });
331
+ expect(restart).not.toHaveBeenCalled();
332
+ await new Promise((resolve) => setTimeout(resolve, 150));
306
333
  expect(restart).toHaveBeenCalledTimes(1);
307
334
  });
308
- test("leaves an ordinary error to the host, restarting nothing", () => {
309
- vi.useFakeTimers();
335
+ test("leaves an ordinary error to the host, restarting nothing", async () => {
310
336
  const restart = vi.fn();
311
337
  render({ frictionlessState: frictionless({ restart }) });
312
- setState({ error: { message: "boom", key: "CAPTCHA.UNKNOWN" } });
313
- act(() => {
314
- vi.advanceTimersByTime(1000);
315
- });
338
+ await setState({ error: { message: "boom", key: "CAPTCHA.UNKNOWN" } });
339
+ await new Promise((resolve) => setTimeout(resolve, 150));
316
340
  expect(restart).not.toHaveBeenCalled();
317
341
  });
318
342
  });
@@ -329,32 +353,33 @@ describe("starting without a click", () => {
329
353
  render({ autoStart: true, startCoords: { x: 5, y: 6 } });
330
354
  expect(start).toHaveBeenCalledWith(5, 6);
331
355
  });
332
- test("remembers those coordinates for a session re-mint", () => {
356
+ test("remembers those coordinates for a session re-mint", async () => {
333
357
  const onSessionInvalidated = vi.fn();
334
358
  render({
335
359
  autoStart: true,
336
360
  startCoords: { x: 5, y: 6 },
337
361
  onSessionInvalidated,
338
362
  });
339
- setState({ error: { message: "gone", key: "CAPTCHA.NO_SESSION_FOUND" } });
363
+ await setState({
364
+ error: { message: "gone", key: "CAPTCHA.NO_SESSION_FOUND" },
365
+ });
340
366
  expect(onSessionInvalidated).toHaveBeenCalledWith(5, 6);
341
367
  });
342
368
  test("clears the spinner when an auto start fails", async () => {
343
369
  start.mockImplementation(() => Promise.reject(new Error("network down")));
344
370
  render({ autoStart: true });
345
- await flush();
346
- expect(mounted.container.querySelector('[role="status"]')).toBeNull();
371
+ await settle();
372
+ expect(spinner()).toBeNull();
347
373
  });
348
374
  });
349
375
  describe("the execute event", () => {
350
376
  const execute = () => {
351
- act(() => {
352
- document.dispatchEvent(new Event("procaptcha:execute"));
353
- });
377
+ document.dispatchEvent(new Event("procaptcha:execute"));
354
378
  };
355
- test("opens the modal", () => {
379
+ test("opens the modal", async () => {
356
380
  render();
357
381
  execute();
382
+ await settle();
358
383
  expect(document.querySelector(".prosopo-modalOuter")?.style.display).toBe("flex");
359
384
  });
360
385
  test("fetches a challenge when there is none", () => {
@@ -362,9 +387,9 @@ describe("the execute event", () => {
362
387
  execute();
363
388
  expect(start).toHaveBeenCalledTimes(1);
364
389
  });
365
- test("does not re-fetch when a challenge is already open", () => {
390
+ test("does not re-fetch when a challenge is already open", async () => {
366
391
  render();
367
- setState(openChallenge());
392
+ await setState(openChallenge());
368
393
  execute();
369
394
  expect(start).not.toHaveBeenCalled();
370
395
  });
@@ -382,10 +407,10 @@ describe("the execute event", () => {
382
407
  });
383
408
  test("stops listening once the widget is gone", () => {
384
409
  render();
385
- mounted.unmount();
386
- document.dispatchEvent(new Event("procaptcha:execute"));
410
+ widget?.destroy();
411
+ widget = undefined;
412
+ execute();
387
413
  expect(start).not.toHaveBeenCalled();
388
- mounted = mount();
389
414
  });
390
415
  });
391
416
  describe("language", () => {
@@ -402,7 +427,7 @@ describe("language", () => {
402
427
  render({ config: config({ language: "fr" }), i18n: i18n("fr") });
403
428
  expect(changeLanguage).not.toHaveBeenCalled();
404
429
  });
405
- test("boots i18n itself for a direct React consumer", () => {
430
+ test("boots i18n itself for a direct consumer", () => {
406
431
  render({ config: config({ language: "de" }) });
407
432
  expect(loadI18next).toHaveBeenCalledWith(false, "de");
408
433
  });
@@ -412,20 +437,18 @@ describe("theming", () => {
412
437
  render({ config: config({ theme: "dark" }) });
413
438
  expect(managerArgs[0]?.[0].theme).toBe("dark");
414
439
  });
415
- test("defaults an unthemed widget to the light palette", () => {
440
+ test("defaults an unthemed widget to the light palette", async () => {
416
441
  render();
417
- setState({ showModal: true, ...openChallenge() });
442
+ await setState({ showModal: true, ...openChallenge() });
418
443
  const panel = document.querySelector(".prosopo-modalInner > div");
419
444
  expect(panel?.style.backgroundColor).toBe(asRgb(lightTheme.palette.background.default));
420
445
  });
421
446
  });
422
447
  describe("the manager itself", () => {
423
- test("is built once, so the click coordinates survive a re-render", () => {
448
+ test("is built once, so the click coordinates survive a re-render", async () => {
424
449
  render();
425
- const first = managerArgs.length;
426
- setState({ isHuman: true });
427
- expect(vitest.isMockFunction(start)).toBe(true);
428
- expect(managerArgs.length).toBeGreaterThanOrEqual(first);
450
+ await setState({ isHuman: true });
451
+ expect(managerArgs).toHaveLength(1);
429
452
  fire(checkbox(), "click", { clientX: 9, clientY: 9 });
430
453
  expect(start).toHaveBeenCalledWith(9, 9);
431
454
  });
@@ -1 +1 @@
1
- {"version":3,"file":"procaptchaWidget.unit.test.js","sourceRoot":"","sources":["../../src/tests/procaptchaWidget.unit.test.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"procaptchaWidget.unit.test.js","sourceRoot":"","sources":["../../src/tests/procaptchaWidget.unit.test.ts"],"names":[],"mappings":"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"}
@@ -1,13 +1,9 @@
1
- import type { ReactElement } from "react";
2
- import { type Root } from "react-dom/client";
3
1
  export interface Mounted {
4
2
  container: HTMLDivElement;
5
- root: Root;
6
- render: (element: ReactElement) => void;
7
3
  unmount: () => void;
8
4
  }
9
5
  export declare const mount: () => Mounted;
10
- interface ClickOptions {
6
+ interface FireOptions {
11
7
  trusted?: boolean;
12
8
  clientX?: number;
13
9
  clientY?: number;
@@ -15,9 +11,12 @@ interface ClickOptions {
15
11
  clientX: number;
16
12
  clientY: number;
17
13
  }[];
14
+ key?: string;
18
15
  }
19
- export declare const fire: (element: Element, type: string, options?: ClickOptions) => void;
20
- export declare const fireAndReturn: (element: Element, type: string, options?: ClickOptions) => MouseEvent;
16
+ export declare const fire: (element: Element, type: string, options?: FireOptions) => void;
17
+ export declare const fireAndReturn: (element: Element, type: string, options?: FireOptions) => Event;
18
+ export declare const settle: () => Promise<void>;
19
+ export declare const styleSnapshot: (element: HTMLElement) => string[];
21
20
  export declare const asRgb: (hex: string) => string;
22
21
  export {};
23
22
  //# sourceMappingURL=render.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../../src/tests/render.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAE1C,OAAO,EAAE,KAAK,IAAI,EAAc,MAAM,kBAAkB,CAAC;AAQzD,MAAM,WAAW,OAAO;IACvB,SAAS,EAAE,cAAc,CAAC;IAC1B,IAAI,EAAE,IAAI,CAAC;IACX,MAAM,EAAE,CAAC,OAAO,EAAE,YAAY,KAAK,IAAI,CAAC;IACxC,OAAO,EAAE,MAAM,IAAI,CAAC;CACpB;AAED,eAAO,MAAM,KAAK,QAAO,OAwBxB,CAAC;AAEF,UAAU,YAAY;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CACjD;AA8BD,eAAO,MAAM,IAAI,YACP,OAAO,QACV,MAAM,YACH,YAAY,KACnB,IAcF,CAAC;AAIF,eAAO,MAAM,aAAa,YAChB,OAAO,QACV,MAAM,YACH,YAAY,KACnB,UAOF,CAAC;AAMF,eAAO,MAAM,KAAK,QAAS,MAAM,KAAG,MAanC,CAAC"}
1
+ {"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../../src/tests/render.ts"],"names":[],"mappings":"AAoBA,MAAM,WAAW,OAAO;IACvB,SAAS,EAAE,cAAc,CAAC;IAC1B,OAAO,EAAE,MAAM,IAAI,CAAC;CACpB;AAED,eAAO,MAAM,KAAK,QAAO,OASxB,CAAC;AAEF,UAAU,WAAW;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACjD,GAAG,CAAC,EAAE,MAAM,CAAC;CACb;AA8CD,eAAO,MAAM,IAAI,YACP,OAAO,QACV,MAAM,YACH,WAAW,KAClB,IAEF,CAAC;AAIF,eAAO,MAAM,aAAa,YAChB,OAAO,QACV,MAAM,YACH,WAAW,KAClB,KAQF,CAAC;AAMF,eAAO,MAAM,MAAM,QAAa,OAAO,CAAC,IAAI,CAK3C,CAAC;AAOF,eAAO,MAAM,aAAa,YAAa,WAAW,KAAG,MAAM,EAGlD,CAAC;AAMV,eAAO,MAAM,KAAK,QAAS,MAAM,KAAG,MAanC,CAAC"}
@@ -1,27 +1,9 @@
1
- import { act } from "react";
2
- import { createRoot } from "react-dom/client";
3
1
  export const mount = () => {
4
2
  const container = document.createElement("div");
5
3
  document.body.appendChild(container);
6
- let root;
7
- act(() => {
8
- root = createRoot(container);
9
- });
10
- if (!root)
11
- throw new Error("expected a react root");
12
- const created = root;
13
4
  return {
14
5
  container,
15
- root: created,
16
- render: (element) => {
17
- act(() => {
18
- created.render(element);
19
- });
20
- },
21
6
  unmount: () => {
22
- act(() => {
23
- created.unmount();
24
- });
25
7
  container.remove();
26
8
  },
27
9
  };
@@ -40,29 +22,40 @@ const setTrusted = (event, trusted) => {
40
22
  }
41
23
  throw new Error("could not reach the jsdom event implementation");
42
24
  };
43
- export const fire = (element, type, options = {}) => {
44
- const event = new MouseEvent(type, {
25
+ const build = (type, options) => {
26
+ if (undefined !== options.key) {
27
+ return new KeyboardEvent(type, {
28
+ bubbles: true,
29
+ cancelable: true,
30
+ key: options.key,
31
+ });
32
+ }
33
+ return new MouseEvent(type, {
45
34
  bubbles: true,
46
35
  cancelable: true,
47
36
  clientX: options.clientX ?? 0,
48
37
  clientY: options.clientY ?? 0,
49
38
  });
39
+ };
40
+ export const fire = (element, type, options = {}) => {
41
+ fireAndReturn(element, type, options);
42
+ };
43
+ export const fireAndReturn = (element, type, options = {}) => {
44
+ const event = build(type, options);
50
45
  setTrusted(event, options.trusted ?? true);
51
46
  if (options.touches) {
52
47
  Object.defineProperty(event, "touches", { value: options.touches });
53
48
  }
54
- act(() => {
55
- element.dispatchEvent(event);
56
- });
57
- };
58
- export const fireAndReturn = (element, type, options = {}) => {
59
- const event = new MouseEvent(type, { bubbles: true, cancelable: true });
60
- setTrusted(event, options.trusted ?? true);
61
- act(() => {
62
- element.dispatchEvent(event);
63
- });
49
+ element.dispatchEvent(event);
64
50
  return event;
65
51
  };
52
+ export const settle = async () => {
53
+ await new Promise((resolve) => setTimeout(resolve, 0));
54
+ await Promise.resolve();
55
+ };
56
+ export const styleSnapshot = (element) => Array.from(element.style)
57
+ .map((name) => `${name}: ${element.style.getPropertyValue(name)}`)
58
+ .sort();
66
59
  export const asRgb = (hex) => {
67
60
  const short = hex.replace("#", "");
68
61
  const value = short.length === 3