DigitalConsumer.ISS/playwright-tests/pages/ServicePackagesPage.ts
2026-03-22 22:52:43 -04:00

42 lines
No EOL
1.9 KiB
TypeScript

import { type Locator, type Page } from '@playwright/test';
import { BasePage } from './BasePage';
import { ServicePackage } from '@business-logic/types/Enums';
export class ServicePackagesPage extends BasePage {
readonly page: Page;
readonly standardPackageButton: Locator;
readonly premiumPackageButton: Locator;
readonly glassOnlyPackageButton: Locator;
readonly wiperModal: Locator;
readonly wiperModalCloseButton: Locator;
readonly continueButton: Locator;
issPageValue = 'service-packages';
constructor(page: Page) {
super(page);
this.page = page;
this.standardPackageButton = this.page.locator('label[for="ServicePackageQuestion-TierTwo"]'); // standard package
this.premiumPackageButton = this.page.locator('label[for="ServicePackageQuestion-TierThree"]'); // premium package
this.glassOnlyPackageButton = this.page.locator('label[for="ServicePackageQuestion-TierOne"]'); // glass only package
this.wiperModal = this.page.locator('#FrontWiperModal #modalbtn');
this.wiperModalCloseButton = this.page.locator('#FrontWiperModal').getByLabel('Close')
this.continueButton = this.page.getByRole('button', { name: 'Continue' });
// this.validateURL(this.url);
}
async selectServicePackage(servicePackage: ServicePackage){
if (servicePackage === ServicePackage.Standard) {
await this.standardPackageButton.check();
} else if (servicePackage === ServicePackage.Premium) {
await this.premiumPackageButton.check();
try {await this.wiperModal.waitFor({ state: 'visible', timeout: 5000 });
await this.wiperModalCloseButton.click();
} catch {
await this.continueButton.click();
}
} else if (servicePackage === ServicePackage.GlassOnly) {
await this.glassOnlyPackageButton.check();
}
await this.continueButton.click();
}
}