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

Isolate the ink editor integration tests

To avoid being able to introduce dependencies between tests, and to
bring existing dependencies to the surface, this commit makes sure that
we close the document between tests so that we can't accidentally rely
on state set by a previous test. This prevents multiple tests from
failing if one of them fails and makes debugging easier by being able to
run each test on their own independent of other tests.

This commit, combined with the previous one, is enough to make the ink
editor integration test suite pass consistently if random mode in
Jasmine is enabled, proving that the tests are fully isolated now.
This commit is contained in:
Tim van der Meij 2025-02-09 16:35:55 +01:00
parent ced1268ec3
commit 6d9ff34611
No known key found for this signature in database
GPG key ID: 8C3FD2925A5F2762

View file

@ -68,11 +68,11 @@ describe("Ink Editor", () => {
describe("Basic operations", () => {
let pages;
beforeAll(async () => {
beforeEach(async () => {
pages = await loadAndWait("aboutstacks.pdf", ".annotationEditorLayer");
});
afterAll(async () => {
afterEach(async () => {
await closePages(pages);
});
@ -111,8 +111,6 @@ describe("Ink Editor", () => {
it("must draw, undo/redo and check that the editor don't move", async () => {
await Promise.all(
pages.map(async ([browserName, page]) => {
await clearAll(page);
await switchToInk(page);
const rect = await getRect(page, ".annotationEditorLayer");
@ -154,11 +152,11 @@ describe("Ink Editor", () => {
describe("with a rotated pdf", () => {
let pages;
beforeAll(async () => {
beforeEach(async () => {
pages = await loadAndWait("issue16278.pdf", ".annotationEditorLayer");
});
afterAll(async () => {
afterEach(async () => {
await closePages(pages);
});
@ -193,11 +191,11 @@ describe("Ink Editor", () => {
describe("Invisible layers must be disabled", () => {
let pages;
beforeAll(async () => {
beforeEach(async () => {
pages = await loadAndWait("tracemonkey.pdf", ".annotationEditorLayer");
});
afterAll(async () => {
afterEach(async () => {
await closePages(pages);
});
@ -248,11 +246,11 @@ describe("Ink Editor", () => {
describe("Ink editor must be committed when blurred", () => {
let pages;
beforeAll(async () => {
beforeEach(async () => {
pages = await loadAndWait("tracemonkey.pdf", ".annotationEditorLayer");
});
afterAll(async () => {
afterEach(async () => {
await closePages(pages);
});
@ -282,11 +280,11 @@ describe("Ink Editor", () => {
describe("Undo a draw", () => {
let pages;
beforeAll(async () => {
beforeEach(async () => {
pages = await loadAndWait("tracemonkey.pdf", ".annotationEditorLayer");
});
afterAll(async () => {
afterEach(async () => {
await closePages(pages);
});
@ -326,11 +324,11 @@ describe("Ink Editor", () => {
describe("Delete a draw and undo it on another page", () => {
let pages;
beforeAll(async () => {
beforeEach(async () => {
pages = await loadAndWait("tracemonkey.pdf", ".annotationEditorLayer");
});
afterAll(async () => {
afterEach(async () => {
await closePages(pages);
});
@ -383,11 +381,11 @@ describe("Ink Editor", () => {
describe("Delete a draw, scroll and undo it", () => {
let pages;
beforeAll(async () => {
beforeEach(async () => {
pages = await loadAndWait("tracemonkey.pdf", ".annotationEditorLayer");
});
afterAll(async () => {
afterEach(async () => {
await closePages(pages);
});
@ -435,11 +433,11 @@ describe("Ink Editor", () => {
describe("Draw several times in the same editor", () => {
let pages;
beforeAll(async () => {
beforeEach(async () => {
pages = await loadAndWait("empty.pdf", ".annotationEditorLayer");
});
afterAll(async () => {
afterEach(async () => {
await closePages(pages);
});
@ -471,11 +469,11 @@ describe("Ink Editor", () => {
describe("Drawing must unselect all", () => {
let pages;
beforeAll(async () => {
beforeEach(async () => {
pages = await loadAndWait("empty.pdf", ".annotationEditorLayer");
});
afterAll(async () => {
afterEach(async () => {
await closePages(pages);
});
@ -510,11 +508,11 @@ describe("Ink Editor", () => {
describe("Selected editor must be updated even if the page has been destroyed", () => {
let pages;
beforeAll(async () => {
beforeEach(async () => {
pages = await loadAndWait("tracemonkey.pdf", ".annotationEditorLayer");
});
afterAll(async () => {
afterEach(async () => {
await closePages(pages);
});
@ -585,11 +583,11 @@ describe("Ink Editor", () => {
describe("Can delete the drawing in progress and undo the deletion", () => {
let pages;
beforeAll(async () => {
beforeEach(async () => {
pages = await loadAndWait("empty.pdf", ".annotationEditorLayer");
});
afterAll(async () => {
afterEach(async () => {
await closePages(pages);
});
@ -629,11 +627,11 @@ describe("Ink Editor", () => {
describe("Annotation mustn't take focus if it isn't visible", () => {
let pages;
beforeAll(async () => {
beforeEach(async () => {
pages = await loadAndWait("tracemonkey.pdf", ".annotationEditorLayer");
});
afterAll(async () => {
afterEach(async () => {
await closePages(pages);
});
@ -686,11 +684,11 @@ describe("Ink Editor", () => {
describe("Ink (update existing)", () => {
let pages;
beforeAll(async () => {
beforeEach(async () => {
pages = await loadAndWait("inks.pdf", ".annotationEditorLayer");
});
afterAll(async () => {
afterEach(async () => {
await closePages(pages);
});
@ -787,11 +785,11 @@ describe("Ink Editor", () => {
describe("Ink (move existing)", () => {
let pages;
beforeAll(async () => {
beforeEach(async () => {
pages = await loadAndWait("inks.pdf", getAnnotationSelector("277R"));
});
afterAll(async () => {
afterEach(async () => {
await closePages(pages);
});
@ -955,11 +953,11 @@ describe("Ink Editor", () => {
describe("Ink must update its stroke width when not the current active layer", () => {
let pages;
beforeAll(async () => {
beforeEach(async () => {
pages = await loadAndWait("tracemonkey.pdf", ".annotationEditorLayer");
});
afterAll(async () => {
afterEach(async () => {
await closePages(pages);
});
@ -1017,7 +1015,7 @@ describe("Ink Editor", () => {
describe("Draw annotations on several page, move one of them and delete it", () => {
let pages;
beforeAll(async () => {
beforeEach(async () => {
pages = await loadAndWait(
"tracemonkey.pdf",
".annotationEditorLayer",
@ -1025,7 +1023,7 @@ describe("Ink Editor", () => {
);
});
afterAll(async () => {
afterEach(async () => {
await closePages(pages);
});
@ -1081,11 +1079,11 @@ describe("Ink Editor", () => {
describe("Page position should remain unchanged after drawing", () => {
let pages;
beforeAll(async () => {
beforeEach(async () => {
pages = await loadAndWait("tracemonkey.pdf", ".annotationEditorLayer");
});
afterAll(async () => {
afterEach(async () => {
await closePages(pages);
});
@ -1132,11 +1130,11 @@ describe("Ink Editor", () => {
describe("The pen-drawn shape must maintain correct curvature regardless of the page it is drawn on or whether the curve's endpoint lies within or beyond the page boundaries", () => {
let pages;
beforeAll(async () => {
beforeEach(async () => {
pages = await loadAndWait("tracemonkey.pdf", ".annotationEditorLayer");
});
afterAll(async () => {
afterEach(async () => {
await closePages(pages);
});