List of commits in this pr: * Begin essential Playwright test cases for big truck * Implement non serviceable big truck vin lookup and fix test case tags * Rename non serviceable vin cases * Common sense .env.dev example * Move extraneous stuff to .env.example * Add playwright environment file to gitignore * Stop tracking .env.dev * Specify file ignore * Ignore .env * Implement advanced tests for big truck * Remove duplicate smoke test * Implement PR feedback * Add comments to type definitions for clarity for any future uses * More descriptive env comment
33 lines
1.3 KiB
TypeScript
33 lines
1.3 KiB
TypeScript
import { expect, type Locator, type Page } from '@playwright/test';
|
|
import { BasePage } from './BasePage';
|
|
import { IVehicleDetails } from '@business-logic/types/CustomerDetails';
|
|
|
|
export class PolicyVehiclesPage extends BasePage {
|
|
readonly page: Page;
|
|
issPageValue = 'policy-vehicles';
|
|
|
|
constructor(page: Page) {
|
|
super(page);
|
|
this.page = page;
|
|
// this.validateURL(this.url);
|
|
}
|
|
|
|
async validateVehicleIsOnPolicy(vehicleDetails: IVehicleDetails) {
|
|
const vehicleRegExp = new RegExp(`${vehicleDetails.year} .+ ${vehicleDetails.model}`, 'i');
|
|
await expect.soft(this.page.getByRole('radio', {name: vehicleRegExp})).toBeAttached();
|
|
}
|
|
|
|
async selectVehicle(vehicleDetails: IVehicleDetails){
|
|
const vehicleRegExp = new RegExp(`${vehicleDetails.year} .+ ${vehicleDetails.model}`, 'i');
|
|
await this.page.locator('label').filter({hasText: vehicleRegExp}).locator('div').click();
|
|
}
|
|
async selectVehicleNotListed(){
|
|
await this.page.getByText('Vehicle not listed').click();
|
|
}
|
|
|
|
async assertNonServiceableAlertBehavior(){
|
|
const nonServiceableWarning = this.page.getByText('Service not available for your vehicle');
|
|
await expect(nonServiceableWarning).toBeVisible();
|
|
await expect(this.continueButton).toBeDisabled();
|
|
}
|
|
}
|