In scenarios that reach the order confirmation page, the query string includes more than the issPageValue, whiche was breaking validateURL
49 lines
No EOL
2.1 KiB
TypeScript
49 lines
No EOL
2.1 KiB
TypeScript
import { expect, type Locator, type Page } from '@playwright/test';
|
|
import { BasePage } from './BasePage';
|
|
import { ICustomerDetails } from '@business-logic/types/CustomerDetails';
|
|
|
|
export class BailoutPage extends BasePage {
|
|
readonly page: Page;
|
|
readonly firstNameTextBox: Locator;
|
|
readonly lastNameTextBox: Locator;
|
|
readonly phoneNumberTextBox: Locator;
|
|
readonly emailAddressTextBox: Locator;
|
|
|
|
issPageValue = 'bailout-page';
|
|
|
|
constructor(page: Page) {
|
|
super(page);
|
|
this.page = page;
|
|
this.firstNameTextBox = this.page.locator('#firstNameField');
|
|
this.lastNameTextBox = this.page.locator('#lastNameField');
|
|
this.phoneNumberTextBox = this.page.locator('#phoneNumberField');
|
|
this.emailAddressTextBox = this.page.locator('#emailAddressField');
|
|
// this.page.waitForLoadState();
|
|
// this.validateURL(this.url);
|
|
}
|
|
|
|
async validateBailoutDetails(customerDetails: ICustomerDetails, bailoutCode: number) {
|
|
|
|
await this.firstNameTextBox.waitFor({state:'visible'});
|
|
await expect.soft(this.firstNameTextBox).toHaveValue(customerDetails.firstName);
|
|
await expect.soft(this.lastNameTextBox).toHaveValue(customerDetails.lastName);
|
|
await expect.soft(this.phoneNumberTextBox).toHaveValue(customerDetails.phoneNumber);
|
|
await expect.soft(this.emailAddressTextBox).toHaveValue(customerDetails.email);
|
|
await expect.soft(await this.getBailoutCode()).toEqual(bailoutCode);
|
|
}
|
|
|
|
async validateBailoutDetailsNotNull(){
|
|
await this.firstNameTextBox.waitFor({state:'visible'})
|
|
expect(this.firstNameTextBox.inputValue()).not.toBe('');
|
|
expect(this.lastNameTextBox.inputValue()).not.toBe('');
|
|
expect(this.phoneNumberTextBox.inputValue()).not.toBe('');
|
|
expect(this.emailAddressTextBox.inputValue()).not.toBe('');
|
|
}
|
|
|
|
async getBailoutCode() {
|
|
const mainLocalStorage = JSON.parse(await this.page.evaluate('localStorage.getItem(\'main\')'));
|
|
const bailoutCode = mainLocalStorage.applicationUser.pageData['bailout-page'].bailoutCode as number;
|
|
return bailoutCode;
|
|
}
|
|
|
|
} |