Skip to content

Commit 2e1b10d

Browse files
committed
add e2e test
1 parent 51f7bab commit 2e1b10d

File tree

2 files changed

+60
-0
lines changed

2 files changed

+60
-0
lines changed
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
import { Page } from '@playwright/test';
2+
import TextFieldPageModel from '../field/TextField.pageModel';
3+
4+
export default class ObservableFormPage {
5+
private readonly formLocator;
6+
7+
emailMessageBodyField;
8+
emailMessageSubjectField;
9+
10+
constructor(private page: Page) {
11+
const name = 'Create an observable';
12+
this.formLocator = this.page.getByRole('heading', { name }).locator('../../..');
13+
14+
this.emailMessageBodyField = new TextFieldPageModel(this.page, 'body', 'text', this.formLocator);
15+
this.emailMessageSubjectField = new TextFieldPageModel(this.page, 'subject', 'text', this.formLocator);
16+
}
17+
18+
chooseType(name: string) {
19+
return this.formLocator.getByRole('button', { name, exact: true }).click();
20+
}
21+
22+
submit() {
23+
return this.formLocator.getByRole('button', { name: 'Create', exact: true }).click();
24+
}
25+
}
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
import { v4 as uuid } from 'uuid';
2+
import { expect, test } from '../fixtures/baseFixtures';
3+
import ObservableFormPage from '../model/form/observableForm.pageModel';
4+
import LeftBarPage from '../model/menu/leftBar.pageModel';
5+
import ObservablesPage from '../model/observable.pageModel';
6+
import ObservableDetailsPage from '../model/observableDetails.pageModel';
7+
8+
/**
9+
* Content of the test
10+
* -------------------
11+
* Create an email message.
12+
*/
13+
test('Email message CRUD', { tag: ['@ce'] }, async ({ page }) => {
14+
const leftBarPage = new LeftBarPage(page);
15+
const observablePage = new ObservablesPage(page);
16+
const observableForm = new ObservableFormPage(page);
17+
const observableDetailsPage = new ObservableDetailsPage(page);
18+
19+
await observablePage.goto();
20+
await leftBarPage.open();
21+
await leftBarPage.clickOnMenu('Observations', 'Observables');
22+
23+
const emailMessage = {
24+
subject: `My super email - ${uuid()}`,
25+
body: `This is a super email you must read - ${uuid()}`,
26+
};
27+
28+
await observablePage.addNew();
29+
await observableForm.chooseType('Email message');
30+
await observableForm.emailMessageBodyField.fill(emailMessage.body);
31+
await observableForm.emailMessageSubjectField.fill(emailMessage.subject);
32+
await observableForm.submit();
33+
await observablePage.getItemFromList(emailMessage.body).click();
34+
await expect(observableDetailsPage.getPage()).toBeVisible();
35+
});

0 commit comments

Comments
 (0)