buster/apps/web/playwright-tests/dataset-list.test.ts

45 lines
1.5 KiB
TypeScript

import { expect, test } from '@playwright/test';
test.describe.serial('Dataset tests', () => {
let datasetURL = '';
test('Can navigate to a dataset chart from the dataset list', async ({ page }) => {
await page.goto('http://localhost:3000/app/home');
await page.getByRole('link', { name: 'Datasets' }).click();
//wait for url to change
await page.waitForURL((url) => url.toString().includes('datasets'));
await expect(
page
.locator('div')
.filter({ hasText: /^Title$/ })
.first()
).toBeVisible({ timeout: 3000 });
// .list-container
await page.locator('.list-container').getByRole('link').first().click();
//overview
await page.waitForURL((url) => url.toString().includes('overview'));
expect(page.url()).toContain('overview');
//set the current dataset url
datasetURL = page.url();
});
test('Can navigate to different dataset pages', async ({ page }) => {
await page.goto(datasetURL);
await page.getByRole('tab', { name: 'Permissions' }).click();
await page.waitForURL((url) => url.toString().includes('permissions'));
expect(page.url()).toContain('permissions');
await page.getByRole('tab', { name: 'Editor' }).click();
await page.waitForURL((url) => url.toString().includes('editor'));
expect(page.url()).toContain('editor');
await page.getByRole('tab', { name: 'Overview' }).click();
await page.waitForURL((url) => url.toString().includes('overview'));
expect(page.url()).toContain('overview');
});
});