Skip to content

Commit

Permalink
test(Table/DownloadManager): fix event listener
Browse files Browse the repository at this point in the history
  • Loading branch information
KostyaAvtushko committed Feb 4, 2025
1 parent 93722c7 commit b1dc18b
Show file tree
Hide file tree
Showing 4 changed files with 37 additions and 25 deletions.
1 change: 1 addition & 0 deletions packages/ui/tests/.gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -3,3 +3,4 @@ node_modules/
/playwright-report/
/playwright/.cache/
.env
/downloads/
25 changes: 16 additions & 9 deletions packages/ui/tests/e2e/pages/table.download-manager.base.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -17,18 +17,25 @@ test('Download manager: downloaded file should be equal to ideal', async ({page}
await downloadButton.waitFor();
await downloadButton.click();

const downloadButtonModal = page.locator('[data-qa="download-static-table"]');
const downloadButtonModal = page.getByTestId('download-static-table');
await downloadButtonModal.waitFor();

const downloadPromise = page.waitForEvent('download');

Check failure on line 23 in packages/ui/tests/e2e/pages/table.download-manager.base.spec.ts

View workflow job for this annotation

GitHub Actions / E2E for 'Local'

[chromium] › e2e/pages/table.download-manager.base.spec.ts:9:5 › Download manager: downloaded file should be equal to ideal

1) [chromium] › e2e/pages/table.download-manager.base.spec.ts:9:5 › Download manager: downloaded file should be equal to ideal Error: page.waitForEvent: Test timeout of 10000ms exceeded. =========================== logs =========================== waiting for event "download" ============================================================ 21 | await downloadButtonModal.waitFor(); 22 | > 23 | const downloadPromise = page.waitForEvent('download'); | ^ 24 | await downloadButtonModal.click(); 25 | 26 | const download = await downloadPromise; at /actions-runner/_work/ytsaurus-ui/ytsaurus-ui/packages/ui/tests/e2e/pages/table.download-manager.base.spec.ts:23:34

Check failure on line 23 in packages/ui/tests/e2e/pages/table.download-manager.base.spec.ts

View workflow job for this annotation

GitHub Actions / E2E for 'Local'

[chromium] › e2e/pages/table.download-manager.base.spec.ts:9:5 › Download manager: downloaded file should be equal to ideal

1) [chromium] › e2e/pages/table.download-manager.base.spec.ts:9:5 › Download manager: downloaded file should be equal to ideal Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: page.waitForEvent: Test timeout of 10000ms exceeded. =========================== logs =========================== waiting for event "download" ============================================================ 21 | await downloadButtonModal.waitFor(); 22 | > 23 | const downloadPromise = page.waitForEvent('download'); | ^ 24 | await downloadButtonModal.click(); 25 | 26 | const download = await downloadPromise; at /actions-runner/_work/ytsaurus-ui/ytsaurus-ui/packages/ui/tests/e2e/pages/table.download-manager.base.spec.ts:23:34

Check failure on line 23 in packages/ui/tests/e2e/pages/table.download-manager.base.spec.ts

View workflow job for this annotation

GitHub Actions / E2E for 'Local'

[chromium] › e2e/pages/table.download-manager.base.spec.ts:9:5 › Download manager: downloaded file should be equal to ideal

1) [chromium] › e2e/pages/table.download-manager.base.spec.ts:9:5 › Download manager: downloaded file should be equal to ideal Retry #2 ─────────────────────────────────────────────────────────────────────────────────────── Error: page.waitForEvent: Test timeout of 10000ms exceeded. =========================== logs =========================== waiting for event "download" ============================================================ 21 | await downloadButtonModal.waitFor(); 22 | > 23 | const downloadPromise = page.waitForEvent('download'); | ^ 24 | await downloadButtonModal.click(); 25 | 26 | const download = await downloadPromise; at /actions-runner/_work/ytsaurus-ui/ytsaurus-ui/packages/ui/tests/e2e/pages/table.download-manager.base.spec.ts:23:34
await downloadButtonModal.click();

page.on('download', async (download) => {
const destination = './downloads/' + download.suggestedFilename();
await download.saveAs(destination);

const fileHash = getFileHash(destination);
const idealFileHash = getFileHash('./data/static-table/static-table');
expect(fileHash).toEqual(idealFileHash);
});
const download = await downloadPromise;

const toastTitle = page.locator('.g-toast__title');
await toastTitle.waitFor();
const text = await toastTitle.innerText();
expect(text).toBe('Success');

const destination = './downloads/' + download.suggestedFilename();
await download.saveAs(destination);

const fileHash = getFileHash(destination);
const idealFileHash = getFileHash('./data/static-table/static-table');
expect(fileHash).toEqual(idealFileHash);
});

function getFileHash(filePath: string) {
Expand Down
34 changes: 19 additions & 15 deletions packages/ui/tests/package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion packages/ui/tests/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,6 @@
"license": "ISC",
"private": true,
"devDependencies": {
"@playwright/test": "^1.44.1"
"@playwright/test": "^1.50.1"
}
}

0 comments on commit b1dc18b

Please sign in to comment.