Skip to content

Commit 1632515

Browse files
committed
test: additions to start session form tests
1 parent 3a5b44f commit 1632515

3 files changed

Lines changed: 33 additions & 4 deletions

File tree

testing/e2e/src/2.3-start-session.spec.ts

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,24 @@ test.describe('start session', () => {
55
const startSessionPage = await getPageModel('/session/start-session');
66
await expect(startSessionPage.pageHeader).toBeVisible();
77
await expect(startSessionPage.pageHeader).toContainText('Start Session');
8-
await expect(startSessionPage.subjectIdentificationInput).toBeDefined();
8+
expect(startSessionPage.sessionForm).toBeDefined();
9+
});
10+
11+
test('should fill subject identification input', async ({ getPageModel }) => {
12+
const startSessionPage = await getPageModel('/session/start-session');
13+
await startSessionPage.sessionForm.waitFor({ state: 'visible' });
14+
const formType = startSessionPage.sessionForm.getByTestId('subjectIdentificationMethod-select-trigger');
15+
await formType.click();
16+
await formType.getByRole('option', { name: 'Personal Information' }).click();
17+
18+
// await startSessionPage.selectIdentificationMethod('Personal Information')
19+
await expect(formType).toHaveText('Personal Information');
20+
21+
const identifier = startSessionPage.sessionForm.locator('#subjectFirstName');
22+
await expect(identifier).toHaveText('');
23+
// await startSessionPage.fillSessionForm('john')
24+
25+
// await startSessionPage.sessionForm.fill('John');
26+
// await expect(startSessionPage.sessionForm).toHaveValue('John');
927
});
1028
});

testing/e2e/src/helpers/fixtures.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,9 @@ import { DashboardPage } from '../pages/dashboard.page';
99
import { DatahubPage } from '../pages/datahub/datahub.page';
1010
import { SubjectDataTablePage } from '../pages/datahub/subject-data-table.page';
1111
import { SetupPage } from '../pages/setup.page';
12+
import { StartSessionPage } from '../pages/start-session.page';
1213

1314
import type { NavigateVariadicArgs, ProjectAuth, ProjectMetadata, RouteTo } from './types';
14-
import { StartSessionPage } from '../pages/start-session.page';
1515

1616
type PageModels = typeof pageModels;
1717

testing/e2e/src/pages/start-session.page.ts

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,22 @@ import { AppPage } from './_app.page';
44

55
export class StartSessionPage extends AppPage {
66
readonly pageHeader: Locator;
7-
readonly subjectIdentificationInput: Locator;
7+
readonly sessionForm: Locator;
88

99
constructor(page: Page) {
1010
super(page);
1111
this.pageHeader = page.getByTestId('page-header');
12-
this.subjectIdentificationInput = page.getByRole('textbox', { name: 'subjectFirstName' });
12+
this.sessionForm = page.getByTestId('start-session-form');
13+
}
14+
15+
async fillSessionForm(firstName: string) {
16+
await this.sessionForm.getByLabel('subjectId').fill(firstName);
17+
}
18+
19+
async selectIdentificationMethod(methodName: string) {
20+
const methodTrigger = this.sessionForm.getByRole('combobox', { name: /identification method/i });
21+
await methodTrigger.click();
22+
// The options are usually rendered in a portal at the end of the body
23+
await methodTrigger.getByRole('option', { name: methodName }).click();
1324
}
1425
}

0 commit comments

Comments
 (0)