@multiplatform.one/test-utils 7.28.1 → 7.29.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.
- package/package.json +1 -1
- package/src/index.tsx +26 -0
- package/types/index.d.ts +8 -0
- package/types/index.d.ts.map +1 -1
package/package.json
CHANGED
package/src/index.tsx
CHANGED
|
@@ -351,6 +351,32 @@ export async function waitForElement(
|
|
|
351
351
|
throw new Error("Element not found within timeout");
|
|
352
352
|
}
|
|
353
353
|
|
|
354
|
+
/**
|
|
355
|
+
* Give jsdom, which has no `<dialog>.show()`, the one Chromium and WebKit
|
|
356
|
+
* ship: mark the dialog open and focus its first focusable descendant,
|
|
357
|
+
* `tabindex="-1"` included. Firefox and the HTML spec take the first tab stop
|
|
358
|
+
* instead, so a dialog whose first focusable is a frame opens on different
|
|
359
|
+
* elements per browser (MPO-470). Returns the restore; call it in `afterEach`.
|
|
360
|
+
*/
|
|
361
|
+
export function modelFirstFocusableShow(): () => void {
|
|
362
|
+
const proto = HTMLDialogElement.prototype as { show?: (this: HTMLDialogElement) => void };
|
|
363
|
+
const original = Object.getOwnPropertyDescriptor(proto, "show");
|
|
364
|
+
proto.show = function show(this: HTMLDialogElement) {
|
|
365
|
+
this.setAttribute("open", "");
|
|
366
|
+
const first = Array.from(this.querySelectorAll<HTMLElement>("*")).find(
|
|
367
|
+
(el) =>
|
|
368
|
+
el.hasAttribute("tabindex") ||
|
|
369
|
+
(el.matches("input, button, select, textarea, a[href]") &&
|
|
370
|
+
!(el as HTMLInputElement).disabled),
|
|
371
|
+
);
|
|
372
|
+
first?.focus();
|
|
373
|
+
};
|
|
374
|
+
return () => {
|
|
375
|
+
if (original) Object.defineProperty(proto, "show", original);
|
|
376
|
+
else delete proto.show;
|
|
377
|
+
};
|
|
378
|
+
}
|
|
379
|
+
|
|
354
380
|
// ─── Fixture Factories ───────────────────────────────────────────────────────
|
|
355
381
|
|
|
356
382
|
/**
|
package/types/index.d.ts
CHANGED
|
@@ -74,6 +74,14 @@ export declare function renderWithProviders(ui: ReactElement, options?: RenderWi
|
|
|
74
74
|
export declare function findTextInContainer(container: HTMLElement, text: string): HTMLElement | null;
|
|
75
75
|
/** Wait for an element to appear within a timeout */
|
|
76
76
|
export declare function waitForElement(getFn: () => HTMLElement | null, timeout?: number): Promise<HTMLElement>;
|
|
77
|
+
/**
|
|
78
|
+
* Give jsdom, which has no `<dialog>.show()`, the one Chromium and WebKit
|
|
79
|
+
* ship: mark the dialog open and focus its first focusable descendant,
|
|
80
|
+
* `tabindex="-1"` included. Firefox and the HTML spec take the first tab stop
|
|
81
|
+
* instead, so a dialog whose first focusable is a frame opens on different
|
|
82
|
+
* elements per browser (MPO-470). Returns the restore; call it in `afterEach`.
|
|
83
|
+
*/
|
|
84
|
+
export declare function modelFirstFocusableShow(): () => void;
|
|
77
85
|
/**
|
|
78
86
|
* Generate a test fixture for a Frappe doctype with auto-generated name
|
|
79
87
|
* and sensible defaults. Override any field via the overrides parameter.
|
package/types/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"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"}
|