Files
wallet/tests/page-object-models/test-app.page.ts
2023-06-21 11:59:39 +00:00

37 lines
1.2 KiB
TypeScript

import { BrowserContext, Page } from '@playwright/test';
import { OnboardingSelectors } from '@tests/selectors/onboarding.selectors';
import { TestAppSelectors } from '@tests/selectors/test-app.selectors';
import { createTestSelector } from '@tests/utils';
export class TestAppPage {
static readonly url = 'http://localhost:3000';
page: Page;
readonly signInBtnSelector = createTestSelector(OnboardingSelectors.SignUpBtn);
readonly updateProfileBtnSelector = createTestSelector(TestAppSelectors.BtnUpdateValidProfile);
readonly updateInvalidProfileBtnSelector = createTestSelector(
TestAppSelectors.BtnUpdateInvalidProfile
);
constructor(page: Page) {
this.page = page;
}
static async openDemoPage(context: BrowserContext) {
const newPage = await context.newPage();
await newPage.goto(TestAppPage.url);
return new TestAppPage(newPage);
}
async signIn() {
return this.page.click(this.signInBtnSelector, { timeout: 10000 });
}
async clickUpdateProfileButton() {
return this.page.click(this.updateProfileBtnSelector);
}
async clickUpdateInvalidProfileButton() {
return this.page.click(this.updateInvalidProfileBtnSelector);
}
}