mirror of
https://github.com/mozilla/pdf.js.git
synced 2025-04-20 15:18:08 +02:00
Fix intermittent issues in the issue14307.pdf
integration tests
The `must check input for US zip format` integration test fails pretty consistently in Puppeteer 23.4.0+ with `Expected '12341' to equal '12345'`. This is reproducible with the `pdf.sandbox.external.js` hack from https://github.com/mozilla/pdf.js/issues/18396#issuecomment-2211273743. Investigation uncovered two issues at play here: 1. We do two `clearInput` calls, but don't await processing of the two sandbox events that are triggered by that action. The three tests that use `issue14307.pdf` are in different `describe` blocks and therefore reload the PDF file, so we can simply remove those calls because the inputs are already empty by default. 2. We don't await processing of the sandbox events that occur after switching to another text field. This causes the expectation failure because the typing actions will happen too soon and interfere with the sandbox event processing. We solve the issue by explicitly awaiting the sandbox roundtrip. Moreover, similar to PR #19001 and #18399 we remove any remaining room for intermittent issues by directly checking for the expected value, which also results in shorter code.
This commit is contained in:
parent
3f1d07a35e
commit
e74080915d
1 changed files with 24 additions and 56 deletions
|
@ -1060,38 +1060,26 @@ describe("Interaction", () => {
|
|||
it("must check input for US zip format", async () => {
|
||||
// Run the tests sequentially to avoid any focus issues between the two
|
||||
// browsers when an alert is displayed.
|
||||
for (const [browserName, page] of pages) {
|
||||
for (const [, page] of pages) {
|
||||
await waitForScripting(page);
|
||||
|
||||
await clearInput(page, getSelector("29R"));
|
||||
await clearInput(page, getSelector("30R"));
|
||||
|
||||
await page.focus(getSelector("29R"));
|
||||
await typeAndWaitForSandbox(page, getSelector("29R"), "12A");
|
||||
await page.waitForFunction(
|
||||
`${getQuerySelector("29R")}.value !== "12A"`
|
||||
);
|
||||
|
||||
let text = await page.$eval(getSelector(`29R`), el => el.value);
|
||||
expect(text).withContext(`In ${browserName}`).toEqual("12");
|
||||
await page.waitForFunction(`${getQuerySelector("29R")}.value === "12"`);
|
||||
|
||||
await page.focus(getSelector("29R"));
|
||||
await typeAndWaitForSandbox(page, getSelector("29R"), "34");
|
||||
await page.click("[data-annotation-id='30R']");
|
||||
|
||||
await page.waitForFunction(
|
||||
`${getQuerySelector("29R")}.value !== "1234"`
|
||||
);
|
||||
|
||||
text = await page.$eval(getSelector(`29R`), el => el.value);
|
||||
expect(text).withContext(`In ${browserName}`).toEqual("");
|
||||
await waitForSandboxTrip(page);
|
||||
await page.waitForFunction(`${getQuerySelector("29R")}.value === ""`);
|
||||
|
||||
await page.focus(getSelector("29R"));
|
||||
await typeAndWaitForSandbox(page, getSelector("29R"), "12345");
|
||||
await page.click("[data-annotation-id='30R']");
|
||||
|
||||
text = await page.$eval(getSelector(`29R`), el => el.value);
|
||||
expect(text).withContext(`In ${browserName}`).toEqual("12345");
|
||||
await waitForSandboxTrip(page);
|
||||
await page.waitForFunction(
|
||||
`${getQuerySelector("29R")}.value === "12345"`
|
||||
);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
@ -1115,38 +1103,28 @@ describe("Interaction", () => {
|
|||
it("must check input for US phone number (long) format", async () => {
|
||||
// Run the tests sequentially to avoid any focus issues between the two
|
||||
// browsers when an alert is displayed.
|
||||
for (const [browserName, page] of pages) {
|
||||
for (const [, page] of pages) {
|
||||
await waitForScripting(page);
|
||||
|
||||
await clearInput(page, getSelector("29R"));
|
||||
await clearInput(page, getSelector("30R"));
|
||||
|
||||
await page.focus(getSelector("30R"));
|
||||
await typeAndWaitForSandbox(page, getSelector("30R"), "(123) 456A");
|
||||
await page.waitForFunction(
|
||||
`${getQuerySelector("30R")}.value !== "(123) 456A"`
|
||||
`${getQuerySelector("30R")}.value === "(123) 456"`
|
||||
);
|
||||
|
||||
let text = await page.$eval(getSelector(`30R`), el => el.value);
|
||||
expect(text).withContext(`In ${browserName}`).toEqual("(123) 456");
|
||||
|
||||
await page.focus(getSelector("30R"));
|
||||
await typeAndWaitForSandbox(page, getSelector("30R"), "-789");
|
||||
await page.click("[data-annotation-id='29R']");
|
||||
|
||||
await page.waitForFunction(
|
||||
`${getQuerySelector("30R")}.value !== "(123) 456-789"`
|
||||
);
|
||||
|
||||
text = await page.$eval(getSelector(`30R`), el => el.value);
|
||||
expect(text).withContext(`In ${browserName}`).toEqual("");
|
||||
await waitForSandboxTrip(page);
|
||||
await page.waitForFunction(`${getQuerySelector("30R")}.value === ""`);
|
||||
|
||||
await page.focus(getSelector("30R"));
|
||||
await typeAndWaitForSandbox(page, getSelector("30R"), "(123) 456-7890");
|
||||
await page.click("[data-annotation-id='29R']");
|
||||
|
||||
text = await page.$eval(getSelector("30R"), el => el.value);
|
||||
expect(text).withContext(`In ${browserName}`).toEqual("(123) 456-7890");
|
||||
await waitForSandboxTrip(page);
|
||||
await page.waitForFunction(
|
||||
`${getQuerySelector("30R")}.value === "(123) 456-7890"`
|
||||
);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
@ -1170,38 +1148,28 @@ describe("Interaction", () => {
|
|||
it("must check input for US phone number (short) format", async () => {
|
||||
// Run the tests sequentially to avoid any focus issues between the two
|
||||
// browsers when an alert is displayed.
|
||||
for (const [browserName, page] of pages) {
|
||||
for (const [, page] of pages) {
|
||||
await waitForScripting(page);
|
||||
|
||||
await clearInput(page, getSelector("29R"));
|
||||
await clearInput(page, getSelector("30R"));
|
||||
|
||||
await page.focus(getSelector("30R"));
|
||||
await typeAndWaitForSandbox(page, getSelector("30R"), "123A");
|
||||
await page.waitForFunction(
|
||||
`${getQuerySelector("30R")}.value !== "123A"`
|
||||
`${getQuerySelector("30R")}.value === "123"`
|
||||
);
|
||||
|
||||
let text = await page.$eval(getSelector(`30R`), el => el.value);
|
||||
expect(text).withContext(`In ${browserName}`).toEqual("123");
|
||||
|
||||
await page.focus(getSelector("30R"));
|
||||
await typeAndWaitForSandbox(page, getSelector("30R"), "-456");
|
||||
await page.click("[data-annotation-id='29R']");
|
||||
|
||||
await page.waitForFunction(
|
||||
`${getQuerySelector("30R")}.value !== "123-456"`
|
||||
);
|
||||
|
||||
text = await page.$eval(getSelector("30R"), el => el.value);
|
||||
expect(text).withContext(`In ${browserName}`).toEqual("");
|
||||
await waitForSandboxTrip(page);
|
||||
await page.waitForFunction(`${getQuerySelector("30R")}.value === ""`);
|
||||
|
||||
await page.focus(getSelector("30R"));
|
||||
await typeAndWaitForSandbox(page, getSelector("30R"), "123-4567");
|
||||
await page.click("[data-annotation-id='29R']");
|
||||
|
||||
text = await page.$eval(getSelector("30R"), el => el.value);
|
||||
expect(text).withContext(`In ${browserName}`).toEqual("123-4567");
|
||||
await waitForSandboxTrip(page);
|
||||
await page.waitForFunction(
|
||||
`${getQuerySelector("30R")}.value === "123-4567"`
|
||||
);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue