In scenarios that reach the order confirmation page, the query string includes more than the issPageValue, whiche was breaking validateURL
54 lines
No EOL
2 KiB
TypeScript
54 lines
No EOL
2 KiB
TypeScript
import { expect, type Locator, type Page } from '@playwright/test';
|
|
import { BasePage } from './BasePage';
|
|
import { IEndorsementDetails } from '@business-logic/types/CustomerDetails';
|
|
import { EndorsementType } from '@business-logic/types/Enums';
|
|
|
|
export class EndorsementsPage extends BasePage {
|
|
readonly page: Page;
|
|
readonly educatorYesButton: Locator;
|
|
readonly educatorNoButton: Locator;
|
|
issPageValue = 'policy-endorsements';
|
|
|
|
constructor(page: Page) {
|
|
super(page);
|
|
this.page = page;
|
|
this.educatorYesButton = this.page.locator('label[for="schoolProperty-Yes"]');
|
|
this.educatorNoButton = this.page.locator('label[for="schoolProperty-No"]');
|
|
}
|
|
|
|
async verifyEndorsements(endorsements: IEndorsementDetails[]) {
|
|
for (const endorsement of endorsements) {
|
|
switch(endorsement.endorsementType) {
|
|
case EndorsementType.Educator:
|
|
if (endorsement.isOnPolicy) {
|
|
await expect.soft(this.educatorYesButton).toBeAttached();
|
|
} else {
|
|
await expect.soft(this.educatorYesButton).not.toBeAttached();
|
|
}
|
|
break;
|
|
case EndorsementType.EmployeeParking:
|
|
// TODO: Implement
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
async selectEndorsements(endorsements: IEndorsementDetails[]) {
|
|
for (const endorsement of endorsements) {
|
|
if (endorsement.isOnPolicy) {
|
|
switch (endorsement.endorsementType) {
|
|
case EndorsementType.Educator:
|
|
if (endorsement.isClickYes) {
|
|
await this.educatorYesButton.click();
|
|
} else {
|
|
await this.educatorNoButton.click();
|
|
}
|
|
break;
|
|
case EndorsementType.EmployeeParking:
|
|
// TODO: Implement
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
} |