Skip to content

Commit f13aa7f

Browse files
committed
refactor test
1 parent ddb3f5f commit f13aa7f

3 files changed

Lines changed: 36 additions & 35 deletions

File tree

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

Lines changed: 9 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,7 @@
1-
/* eslint-disable @typescript-eslint/no-namespace */
2-
/* eslint-disable @typescript-eslint/consistent-type-definitions */
3-
41
import type { LoginCredentials } from '@opendatacapture/schemas/auth';
5-
import type { InitAppOptions } from '@opendatacapture/schemas/setup';
62
import { expect, test } from '@playwright/test';
73

8-
const initOptions = {
9-
admin: {
10-
firstName: 'Jane',
11-
lastName: 'Doe',
12-
password: 'DataCapture2025',
13-
username: 'admin'
14-
},
15-
dummySubjectCount: 10,
16-
enableExperimentalFeatures: false,
17-
initDemo: true,
18-
recordsPerSubject: 10
19-
} satisfies InitAppOptions;
20-
21-
declare global {
22-
namespace NodeJS {
23-
interface ProcessEnv {
24-
ADMIN_ACCESS_TOKEN: string;
25-
ADMIN_PASSWORD: string;
26-
ADMIN_USERNAME: string;
27-
GLOBAL_SETUP_COMPLETE?: '1';
28-
}
29-
}
30-
}
4+
import { initAppOptions } from '../helpers/data';
315

326
test.skip(() => process.env.GLOBAL_SETUP_COMPLETE === '1');
337

@@ -42,14 +16,14 @@ test.describe.serial(() => {
4216
await page.goto('/setup');
4317
await expect(page).toHaveURL('/setup');
4418
const setupForm = page.locator('form[data-cy="setup-form"]');
45-
await setupForm.locator('input[name="firstName"]').fill(initOptions.admin.firstName);
46-
await setupForm.locator('input[name="lastName"]').fill(initOptions.admin.lastName);
47-
await setupForm.locator('input[name="username"]').fill(initOptions.admin.username);
48-
await setupForm.locator('input[name="password"]').fill(initOptions.admin.password);
49-
await setupForm.locator('input[name="confirmPassword"]').fill(initOptions.admin.password);
19+
await setupForm.locator('input[name="firstName"]').fill(initAppOptions.admin.firstName);
20+
await setupForm.locator('input[name="lastName"]').fill(initAppOptions.admin.lastName);
21+
await setupForm.locator('input[name="username"]').fill(initAppOptions.admin.username);
22+
await setupForm.locator('input[name="password"]').fill(initAppOptions.admin.password);
23+
await setupForm.locator('input[name="confirmPassword"]').fill(initAppOptions.admin.password);
5024
await setupForm.locator('#initDemo-true').click();
51-
await setupForm.locator('input[name="dummySubjectCount"]').fill(initOptions.dummySubjectCount.toString());
52-
await setupForm.locator('input[name="recordsPerSubject"]').fill(initOptions.recordsPerSubject.toString());
25+
await setupForm.locator('input[name="dummySubjectCount"]').fill(initAppOptions.dummySubjectCount.toString());
26+
await setupForm.locator('input[name="recordsPerSubject"]').fill(initAppOptions.recordsPerSubject.toString());
5327
await setupForm.getByLabel('Submit').click();
5428
await expect(page).toHaveURL('/dashboard');
5529
});
@@ -61,7 +35,7 @@ test.describe.serial(() => {
6135
});
6236
test.describe.serial('auth', () => {
6337
test('login', async ({ request }) => {
64-
const { password, username } = initOptions.admin;
38+
const { password, username } = initAppOptions.admin;
6539
const response = await request.post('/api/v1/auth/login', {
6640
data: { password, username } satisfies LoginCredentials
6741
});

testing/e2e/src/helpers/data.ts

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
import type { InitAppOptions } from '@opendatacapture/schemas/setup';
2+
3+
export const initAppOptions = {
4+
admin: {
5+
firstName: 'Jane',
6+
lastName: 'Doe',
7+
password: 'DataCapture2025',
8+
username: 'admin'
9+
},
10+
dummySubjectCount: 10,
11+
enableExperimentalFeatures: false,
12+
initDemo: true,
13+
recordsPerSubject: 10
14+
} satisfies InitAppOptions;

testing/e2e/src/helpers/types.ts

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,16 @@
1+
/* eslint-disable @typescript-eslint/no-namespace */
2+
/* eslint-disable @typescript-eslint/consistent-type-definitions */
3+
4+
declare global {
5+
namespace NodeJS {
6+
interface ProcessEnv {
7+
ADMIN_ACCESS_TOKEN: string;
8+
ADMIN_PASSWORD: string;
9+
ADMIN_USERNAME: string;
10+
GLOBAL_SETUP_COMPLETE?: '1';
11+
}
12+
}
13+
}
114
export type BrowserTarget = 'Desktop Chrome' | 'Desktop Firefox' | 'Desktop Safari';
215

316
export type ProjectMetadata = {

0 commit comments

Comments
 (0)