1
0
Fork 0
mirror of https://github.com/mozilla/pdf.js.git synced 2025-04-19 22:58:07 +02:00

Fix 'must load a SVG, delete it and undo' integration test

We wait for the canvas before trying to serialize the annotation in order to make sure the image has been loaded.
This commit is contained in:
Calixte Denizet 2024-11-18 21:25:43 +01:00
parent f4061190fa
commit eefaca07c3
2 changed files with 16 additions and 7 deletions

View file

@ -195,14 +195,14 @@ describe("Stamp Editor", () => {
);
const editorSelector = getEditorSelector(0);
await waitForImage(page, editorSelector);
await waitForSerialized(page, 1);
await page.waitForSelector(`${editorSelector} button.delete`);
await page.click(`${editorSelector} button.delete`);
await waitForSerialized(page, 0);
await kbUndo(page);
await waitForImage(page, editorSelector);
await waitForSerialized(page, 1);
await waitForSelectedEditor(page, editorSelector);
@ -654,8 +654,8 @@ describe("Stamp Editor", () => {
await waitForSerialized(page, 0);
await kbUndo(page);
await waitForImage(page, selector);
await waitForSerialized(page, 1);
await page.waitForSelector(`${selector} canvas`);
}
});
});
@ -739,8 +739,8 @@ describe("Stamp Editor", () => {
}
await kbUndo(page);
await waitForImage(page, selector);
await waitForSerialized(page, 1);
await page.waitForSelector(`${selector} canvas`);
}
});
});

View file

@ -327,9 +327,18 @@ async function waitForStorageEntries(page, nEntries) {
async function waitForSerialized(page, nEntries) {
return page.waitForFunction(
n =>
(window.PDFViewerApplication.pdfDocument.annotationStorage.serializable
.map?.size ?? 0) === n,
n => {
try {
return (
(window.PDFViewerApplication.pdfDocument.annotationStorage
.serializable.map?.size ?? 0) === n
);
} catch {
// When serializing a stamp annotation with a SVG, the transfer
// can fail because of the SVG, so we just retry.
return false;
}
},
{},
nEntries
);