-
Notifications
You must be signed in to change notification settings - Fork 7
Expand file tree
/
Copy pathonReady.js
More file actions
62 lines (56 loc) · 1.92 KB
/
Copy pathonReady.js
File metadata and controls
62 lines (56 loc) · 1.92 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
/* oxlint-disable no-await-in-loop, no-restricted-syntax */
module.exports = async (page, scenario) => {
// Enable prefers-reduced-motion to disable animations
await page.emulateMediaFeatures([
{ name: "prefers-reduced-motion", value: "reduce" },
]);
/**
* Wait for fonts to be loaded.
* Ensure that icon fonts are ready to avoid display inconsistencies
*/
await page.waitForFunction(() =>
document.fonts.ready.then(() => {
console.log("Fonts loaded");
return true;
}),
);
const keyPressSelector =
scenario.keyPressSelectors || scenario.keyPressSelector;
if (keyPressSelector) {
for (const keyPressSelectorItem of [].concat(keyPressSelector)) {
await page.waitForSelector(keyPressSelectorItem.selector);
await page.type(
keyPressSelectorItem.selector,
keyPressSelectorItem.keyPress,
);
}
}
const hoverSelector = scenario.hoverSelectors || scenario.hoverSelector;
if (hoverSelector) {
for (const hoverSelectorIndex of [].concat(hoverSelector)) {
await page.waitForSelector(hoverSelectorIndex);
await page.hover(hoverSelectorIndex);
}
}
const clickSelector = scenario.clickSelectors || scenario.clickSelector;
if (clickSelector) {
for (const clickSelectorIndex of [].concat(clickSelector)) {
await page.waitForSelector(clickSelectorIndex);
await page.click(clickSelectorIndex);
}
}
const focusSelector = scenario.focusSelectors || scenario.focusSelector;
if (focusSelector) {
for (const focusSelectorIndex of [].concat(focusSelector)) {
await page.waitForSelector(focusSelectorIndex);
await page.focus(focusSelectorIndex);
}
}
const { scrollToSelector } = scenario;
if (scrollToSelector) {
await page.waitForSelector(scrollToSelector);
await page.evaluate((_scrollToSelector) => {
document.querySelector(_scrollToSelector).scrollIntoView();
}, scrollToSelector);
}
};