diff --git a/tests/e2e/mobile-result-image.spec.js b/tests/e2e/mobile-result-image.spec.js
index 05f9d2f..b063720 100644
--- a/tests/e2e/mobile-result-image.spec.js
+++ b/tests/e2e/mobile-result-image.spec.js
@@ -3,31 +3,43 @@ const { baseUrls } = require("./helpers/env");
test.use({ viewport: { width: 360, height: 800 } });
-test.describe("Mobile result-image sharing", () => {
- test("keeps the result image within the share dialog", async ({ page }) => {
- await page.goto(`${baseUrls.standaloneNew}/index-modern.html`);
+async function openResultImage(page, width, height) {
+ await page.goto(`${baseUrls.standaloneNew}/index-modern.html`);
- await page.locator("#results").evaluate(image => {
+ await page.locator("#results").evaluate(
+ (image, dimensions) => {
image.src =
"data:image/svg+xml," +
encodeURIComponent(
- ''
+ ``
);
- });
- await page.locator("#share").evaluate(dialog => dialog.showModal());
+ },
+ { width, height }
+ );
+ await page.locator("#share").evaluate(dialog => dialog.showModal());
- const image = page.locator("#results");
- await expect(image).toBeVisible();
- await expect(image).toHaveJSProperty("complete", true);
+ const image = page.locator("#results");
+ await expect(image).toBeVisible();
+ await expect(image).toHaveJSProperty("complete", true);
- const dimensions = await image.evaluate(element => ({
- width: element.getBoundingClientRect().width,
- height: element.getBoundingClientRect().height,
- dialogWidth: element.closest("dialog").clientWidth,
- dialogHeight: element.closest("dialog").clientHeight
- }));
+ return image.evaluate(element => ({
+ width: element.getBoundingClientRect().width,
+ height: element.getBoundingClientRect().height,
+ dialogWidth: element.closest("dialog").clientWidth,
+ dialogHeight: element.closest("dialog").clientHeight
+ }));
+}
+
+test.describe("Mobile result-image sharing", () => {
+ test("keeps the landscape result image within the share dialog width", async ({ page }) => {
+ const dimensions = await openResultImage(page, 800, 480);
expect(dimensions.width).toBeLessThanOrEqual(dimensions.dialogWidth);
+ });
+
+ test("keeps a tall result image within the share dialog height", async ({ page }) => {
+ const dimensions = await openResultImage(page, 480, 1600);
+
expect(dimensions.height).toBeLessThanOrEqual(dimensions.dialogHeight);
});
});