Try to add a test for network download

This commit is contained in:
Arnaud 2025-02-13 16:10:34 +01:00
parent 5d6ffddb78
commit 9ec80c3dc8
No known key found for this signature in database
GPG Key ID: 69D6CE281FCAE663

View File

@ -1,29 +1,53 @@
import { test, expect } from '@playwright/test';
import path, { dirname } from 'path';
import { fileURLToPath } from 'url';
import { test, expect } from "@playwright/test";
import path, { dirname } from "path";
import { fileURLToPath } from "url";
const __filename = fileURLToPath(import.meta.url);
const __dirname = dirname(__filename);
test('download a file', async ({ page, browserName }) => {
// https://github.com/microsoft/playwright/issues/13037
test.skip(browserName.toLowerCase() !== 'chromium',
`Test only for chromium!`);
test("download a file", async ({ page, browserName }) => {
// https://github.com/microsoft/playwright/issues/13037
test.skip(
browserName.toLowerCase() !== "chromium",
`Test only for chromium!`
);
await page.goto('/dashboard');
await page.locator('div').getByTestId("upload").setInputFiles([
path.join(__dirname, "assets", 'chatgpt.jpg'),
]);
await page.context().grantPermissions(["clipboard-read", "clipboard-write"]);
await page.locator('.file-cell button').first().click();
const handle = await page.evaluateHandle(() => navigator.clipboard.readText());
const cid = await handle.jsonValue()
await page.goto("/dashboard");
await page
.locator("div")
.getByTestId("upload")
.setInputFiles([path.join(__dirname, "assets", "chatgpt.jpg")]);
await page.context().grantPermissions(["clipboard-read", "clipboard-write"]);
await page.locator(".file-cell button").first().click();
const handle = await page.evaluateHandle(() =>
navigator.clipboard.readText()
);
const cid = await handle.jsonValue();
await page.locator('.download-input input').fill(cid);
// const page1Promise = page.waitForEvent('popup');
const downloadPromise = page.waitForEvent('download');
await page.locator('.download-input + button').click();
// const page1 = await page1Promise;
const download = await downloadPromise;
expect(await download.failure()).toBeNull()
});
await page.locator(".download-input input").fill(cid);
// const page1Promise = page.waitForEvent('popup');
const downloadPromise = page.waitForEvent("download");
await page.locator(".download-input + button").click();
// const page1 = await page1Promise;
const download = await downloadPromise;
expect(await download.failure()).toBeNull();
});
test("download a file over the network", async ({ page, browserName }) => {
// https://github.com/microsoft/playwright/issues/13037
test.skip(
browserName.toLowerCase() !== "chromium",
`Test only for chromium!`
);
await page.goto("/dashboard");
const cid = "zDvZRwzm6eV1thx6zkL5Es3FZKEq8qjinti9Y6QD1qZRKiAGjCZ7";
await page.locator(".download-input input").fill(cid);
const downloadPromise = page.waitForEvent("download");
await page.locator(".download-input + button").click();
const download = await downloadPromise;
expect(await download.failure()).toBeNull();
});