* Initial import of playwright tests * Pipeline changes for automated tests * Modified pipeline for testing * Attempt #2 * Attempt #3 * Added missing paren * Removed debug stuff from pipeline * Changes from playwright repo * Changed pipeline for debugging * Fix for ServiceLocationPage playwright locators * Change pipeline to run with TEST APIs * Moved more of Siraj's changes to this repo * Changed where updating env occurs * Changed location of env update again * Escaped double quotes * Added visible report in Azure * Moved changes into main pipeline * Made it so dotenv only runs config in local
41 lines
No EOL
1.4 KiB
TypeScript
41 lines
No EOL
1.4 KiB
TypeScript
import { expect, type Locator, type Page } from '@playwright/test';
|
|
|
|
export class BasePage {
|
|
readonly page: Page;
|
|
readonly continueButton: Locator;
|
|
readonly pageSpinner: Locator;
|
|
readonly buttonLoadSpin: Locator;
|
|
|
|
constructor(page: Page){
|
|
this.page = page;
|
|
this.continueButton = page.locator('[id="infoBox"]').getByRole('button');
|
|
this.pageSpinner = page.getByRole('status');
|
|
this.buttonLoadSpin = page.getByRole('alert');
|
|
}
|
|
|
|
async nextPage() {
|
|
const startingUrl = this.page.url();
|
|
await expect(async () => {
|
|
const currentUrl = this.page.url();
|
|
if (currentUrl === startingUrl) {
|
|
await this.continueButton.click({ timeout: 1000 });
|
|
}
|
|
//this causes the schedule page to fail
|
|
//await expect(this.buttonLoadSpin).toHaveCount(0, {timeout: 180000});
|
|
expect(currentUrl).not.toEqual(startingUrl);
|
|
}).toPass({ timeout: 240_000 });
|
|
}
|
|
|
|
async validateURL(url:string){
|
|
await expect(this.pageSpinner).toHaveCount(0, {timeout: 60000});
|
|
await this.page.waitForURL(url);
|
|
}
|
|
|
|
async fillAndValidate(element: Locator, value: string){
|
|
await expect(async () => {
|
|
await element.clear();
|
|
await element.fill(value);
|
|
await expect(element).toHaveValue(value);
|
|
}).toPass();
|
|
}
|
|
} |