Skip to content

Commit 1ae43bf

Browse files
committed
add dashboard test
1 parent 59c6c0a commit 1ae43bf

File tree

3 files changed

+35
-14
lines changed

3 files changed

+35
-14
lines changed
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
import { expect, test } from './helpers/fixtures';
2+
3+
test.describe('dashboard', () => {
4+
test.beforeEach(async ({ login, page }) => {
5+
await login();
6+
await expect(page).toHaveURL('/dashboard');
7+
});
8+
9+
test('should display the dashboard header', async ({ getPageModel }) => {
10+
const dashboardPage = getPageModel('/dashboard');
11+
await expect(dashboardPage.pageHeader).toBeVisible();
12+
await expect(dashboardPage.pageHeader).toContainText('Dashboard');
13+
});
14+
});

testing/e2e/src/global/global.setup.spec.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,8 @@ test.describe.serial(() => {
1313
await expect(response.json()).resolves.toMatchObject({ isSetup: false });
1414
});
1515
test('should successfully setup', async ({ getPageModel }) => {
16-
const setupPage = await getPageModel('/setup');
16+
const setupPage = getPageModel('/setup');
17+
await setupPage.goto('/setup');
1718
await setupPage.fillSetupForm(initAppOptions);
1819
await setupPage.expect.toHaveURL('/auth/login');
1920
});

testing/e2e/src/helpers/fixtures.ts

Lines changed: 19 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -6,16 +6,15 @@ import { LoginPage } from '../pages/auth/login.page';
66
import { DashboardPage } from '../pages/dashboard.page';
77
import { SubjectDataTablePage } from '../pages/datahub/subject-data-table.page';
88
import { SetupPage } from '../pages/setup.page';
9+
import { users } from './data';
910

10-
import type { NavigateVariadicArgs, ProjectMetadata, RouteTo } from './types';
11+
import type { ProjectMetadata, RouteTo } from './types';
1112

1213
type PageModels = typeof pageModels;
1314

1415
type TestArgs = {
15-
getPageModel: <TKey extends Extract<keyof PageModels, RouteTo>>(
16-
key: TKey,
17-
...args: NavigateVariadicArgs<TKey>
18-
) => Promise<InstanceType<PageModels[TKey]>>;
16+
getPageModel: <TKey extends Extract<keyof PageModels, RouteTo>>(key: TKey) => InstanceType<PageModels[TKey]>;
17+
login: () => Promise<void>;
1918
};
2019

2120
type WorkerArgs = {
@@ -31,13 +30,10 @@ const pageModels = {
3130

3231
export const test = base.extend<TestArgs, WorkerArgs>({
3332
getPageModel: ({ page }, use) => {
34-
return use(
35-
async <TKey extends Extract<keyof PageModels, RouteTo>>(key: TKey, ...args: NavigateVariadicArgs<TKey>) => {
36-
const pageModel = new pageModels[key](page) as InstanceType<PageModels[TKey]>;
37-
await pageModel.goto(key, ...args);
38-
return pageModel;
39-
}
40-
);
33+
return use(<TKey extends Extract<keyof PageModels, RouteTo>>(key: TKey) => {
34+
const pageModel = new pageModels[key](page) as InstanceType<PageModels[TKey]>;
35+
return pageModel;
36+
});
4137
},
4238
getProjectMetadata: [
4339
async ({}, use, workerInfo) => {
@@ -46,7 +42,17 @@ export const test = base.extend<TestArgs, WorkerArgs>({
4642
});
4743
},
4844
{ scope: 'worker' }
49-
]
45+
],
46+
login: ({ getPageModel, getProjectMetadata }, use) => {
47+
return use(async () => {
48+
const loginPage = getPageModel('/auth/login');
49+
await loginPage.goto('/auth/login');
50+
const target = getProjectMetadata('browserTarget');
51+
const credentials = users[target];
52+
await loginPage.fillLoginForm(credentials);
53+
await loginPage.expect.toHaveURL('/dashboard');
54+
});
55+
}
5056
});
5157

5258
export { expect };

0 commit comments

Comments
 (0)