Skip to content

Commit 190123c

Browse files
committed
Remove waitForTimeout usage from the scripting integration tests
This commit replaces all `waitForTimeout` occurrences with the appropriate `waitForFunction` calls. Note that in some places we could simply remove the `waitForTimeout` call altogether because the action that is being performed is either an instant Puppeteer action (such as switching tabs) or shouldn't lead to any noticeable change that can be awaited (such as a text field that is expected to be unchanged upon a focus change).
1 parent 5ad42c1 commit 190123c

File tree

1 file changed

+23
-47
lines changed

1 file changed

+23
-47
lines changed

test/integration/scripting_spec.mjs

+23-47
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@ import {
2828
scrollIntoView,
2929
waitForEntryInStorage,
3030
waitForSandboxTrip,
31-
waitForTimeout,
3231
} from "./test_utils.mjs";
3332

3433
describe("Interaction", () => {
@@ -1713,8 +1712,9 @@ describe("Interaction", () => {
17131712
await clearInput(page, getSelector("27R"));
17141713
await page.type(getSelector("27R"), exportValue);
17151714
await page.click("[data-annotation-id='28R']");
1716-
// eslint-disable-next-line no-restricted-syntax
1717-
await waitForTimeout(10);
1715+
await page.waitForFunction(
1716+
`${getQuerySelector("24R")}.value === "${exportValue}"`
1717+
);
17181718

17191719
value = await page.$eval(getSelector("24R"), el => el.value);
17201720
expect(value).withContext(`In ${browserName}`).toEqual(exportValue);
@@ -1761,9 +1761,10 @@ describe("Interaction", () => {
17611761
await page.waitForFunction(
17621762
`${getQuerySelector("30R")}.value !== "abc"`
17631763
);
1764-
// eslint-disable-next-line no-restricted-syntax
1765-
await waitForTimeout(100);
17661764

1765+
await page.waitForFunction(
1766+
`window.document.activeElement.getAttribute("data-element-id") !== "30R"`
1767+
);
17671768
const focusedId = await page.evaluate(_ =>
17681769
window.document.activeElement.getAttribute("data-element-id")
17691770
);
@@ -1858,8 +1859,6 @@ describe("Interaction", () => {
18581859
expect(text).withContext(`In ${browserName}`).toEqual("00000000123");
18591860

18601861
await page.click(getSelector("26R"));
1861-
// eslint-disable-next-line no-restricted-syntax
1862-
await waitForTimeout(10);
18631862

18641863
text = await page.$eval(getSelector("25R"), el => el.value);
18651864
expect(text).withContext(`In ${browserName}`).toEqual("00000000123");
@@ -1893,15 +1892,14 @@ describe("Interaction", () => {
18931892
expect(text).withContext(`In ${browserName}`).toEqual("5,25");
18941893

18951894
await page.click(getSelector("22R"));
1896-
// eslint-disable-next-line no-restricted-syntax
1897-
await waitForTimeout(10);
18981895

18991896
text = await page.$eval(getSelector("22R"), el => el.value);
19001897
expect(text).withContext(`In ${browserName}`).toEqual("5,25");
19011898

19021899
await page.click(getSelector("31R"));
1903-
// eslint-disable-next-line no-restricted-syntax
1904-
await waitForTimeout(10);
1900+
await page.waitForFunction(
1901+
`${getQuerySelector("31R")}.value !== "5,25"`
1902+
);
19051903

19061904
text = await page.$eval(getSelector("31R"), el => el.value);
19071905
expect(text).withContext(`In ${browserName}`).toEqual("5.25");
@@ -1993,18 +1991,9 @@ describe("Interaction", () => {
19931991

19941992
await page.click(getSelector("26R"));
19951993
await page.type(getSelector("26R"), "abcde", { delay: 10 });
1996-
19971994
await page.click(getSelector("23R"));
1998-
// eslint-disable-next-line no-restricted-syntax
1999-
await waitForTimeout(10);
2000-
await page.click(getSelector("26R"));
2001-
2002-
await kbSelectAll(page);
2003-
await page.keyboard.press("Backspace");
2004-
1995+
await clearInput(page, getSelector("26R"));
20051996
await page.click(getSelector("23R"));
2006-
// eslint-disable-next-line no-restricted-syntax
2007-
await waitForTimeout(10);
20081997

20091998
text = await page.$eval(getSelector("26R"), el => el.value);
20101999
expect(text).withContext(`In ${browserName}`).toEqual("");
@@ -2151,33 +2140,35 @@ describe("Interaction", () => {
21512140
);
21522141
expect(readonly).withContext(`In ${browserName}`).toEqual(true);
21532142
await page.click(getSelector("334R"));
2154-
// eslint-disable-next-line no-restricted-syntax
2155-
await waitForTimeout(10);
21562143

21572144
readonly = await page.$eval(getSelector("353R"), el => el.disabled);
21582145
expect(readonly).withContext(`In ${browserName}`).toEqual(true);
21592146
await page.click(getSelector("351R"));
2160-
// eslint-disable-next-line no-restricted-syntax
2161-
await waitForTimeout(10);
21622147

21632148
readonly = await page.$eval(getSelector("353R"), el => el.disabled);
21642149
expect(readonly).withContext(`In ${browserName}`).toEqual(true);
21652150
await page.click(getSelector("352R"));
2166-
// eslint-disable-next-line no-restricted-syntax
2167-
await waitForTimeout(10);
2151+
await page.waitForFunction(
2152+
`${getQuerySelector("353R")}.disabled !== true`
2153+
);
21682154

21692155
readonly = await page.$eval(getSelector("353R"), el => el.disabled);
21702156
expect(readonly).withContext(`In ${browserName}`).toEqual(false);
21712157

21722158
await page.click(getSelector("353R"));
2173-
// eslint-disable-next-line no-restricted-syntax
2174-
await waitForTimeout(10);
2159+
await page.waitForFunction(
2160+
`${getQuerySelector("353R")}.checked !== false`
2161+
);
21752162

21762163
let checked = await page.$eval(getSelector("353R"), el => el.checked);
21772164
expect(checked).withContext(`In ${browserName}`).toEqual(true);
21782165
await page.click(getSelector("334R"));
2179-
// eslint-disable-next-line no-restricted-syntax
2180-
await waitForTimeout(10);
2166+
await page.waitForFunction(
2167+
`${getQuerySelector("353R")}.disabled !== false`
2168+
);
2169+
await page.waitForFunction(
2170+
`${getQuerySelector("353R")}.checked !== true`
2171+
);
21812172

21822173
readonly = await page.$eval(getSelector("353R"), el => el.disabled);
21832174
expect(readonly).withContext(`In ${browserName}`).toEqual(true);
@@ -2216,20 +2207,12 @@ describe("Interaction", () => {
22162207
await page.click(getSelector("55R"));
22172208
await page.type(getSelector("55R"), "Hello", { delay: 10 });
22182209
await page.click(getSelector("56R"));
2219-
// eslint-disable-next-line no-restricted-syntax
2220-
await waitForTimeout(10);
22212210

22222211
await page.click(getSelector("55R"));
22232212
await page.type(getSelector("55R"), " World", { delay: 10 });
2224-
// eslint-disable-next-line no-restricted-syntax
2225-
await waitForTimeout(10);
22262213

22272214
await otherPages[i].bringToFront();
2228-
// eslint-disable-next-line no-restricted-syntax
2229-
await waitForTimeout(100);
22302215
await page.bringToFront();
2231-
// eslint-disable-next-line no-restricted-syntax
2232-
await waitForTimeout(100);
22332216

22342217
const text = await page.$eval(getSelector("55R"), el => el.value);
22352218
expect(text).withContext(`In ${browserName}`).toEqual("Hello World");
@@ -2264,16 +2247,9 @@ describe("Interaction", () => {
22642247
);
22652248

22662249
await page.click(getSelector("25R"));
2267-
// eslint-disable-next-line no-restricted-syntax
2268-
await waitForTimeout(10);
22692250
await page.click(getSelector("26R"));
22702251

2271-
await page.waitForFunction(
2272-
sel => document.querySelector(sel).value !== "",
2273-
{},
2274-
getSelector("26R")
2275-
);
2276-
2252+
await page.waitForFunction(`${getQuerySelector("26R")}.value !== ""`);
22772253
const text = await page.$eval(getSelector("26R"), el => el.value);
22782254
expect(text).withContext(`In ${browserName}`).toEqual("hello");
22792255
})

0 commit comments

Comments
 (0)