* 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
35 lines
No EOL
1.4 KiB
TypeScript
35 lines
No EOL
1.4 KiB
TypeScript
import { expect, type Locator, type Page } from '@playwright/test';
|
|
import { BasePage } from './BasePage';
|
|
import { IPartQuestion } from '@business-logic/types/CustomerDetails';
|
|
|
|
export class PartQuestionsPage extends BasePage {
|
|
readonly page: Page;
|
|
url = process.env['BASE_URL']! + '/?issPage=part-questions';
|
|
|
|
constructor(page: Page) {
|
|
super(page);
|
|
this.page = page;
|
|
}
|
|
|
|
async validatePartQuestions(partQuestions: IPartQuestion[]) {
|
|
for (const pq of partQuestions) {
|
|
const partQuestionOptions = this.page.locator(`fieldset[aria-labelledby="${pq.partQuestionType}"]`);
|
|
if (pq.isOnPage) {
|
|
await expect(partQuestionOptions).toBeAttached();
|
|
} else {
|
|
await expect(partQuestionOptions).not.toBeAttached();
|
|
}
|
|
}
|
|
}
|
|
|
|
async selectPartQuestionResponses(partQuestions: IPartQuestion[]) {
|
|
for (const pq of partQuestions) {
|
|
const partQuestionOptionButton = this.page.locator(`fieldset[aria-labelledby="${pq.partQuestionType}"]`).locator(`[buttonlabel="${pq.optionToSelect}"]`);
|
|
await partQuestionOptionButton.click();
|
|
if (pq.secondaryQuestionOptionToSelect != null) {
|
|
const secondaryQuestionButton = this.page.getByText(`${pq.secondaryQuestionOptionToSelect}`);
|
|
secondaryQuestionButton.click();
|
|
}
|
|
}
|
|
}
|
|
} |