diff --git a/playwright-tests/pages/BasePage.ts b/playwright-tests/pages/BasePage.ts index e538ee34..0b853baa 100644 --- a/playwright-tests/pages/BasePage.ts +++ b/playwright-tests/pages/BasePage.ts @@ -116,12 +116,25 @@ export class BasePage { } async validateURL(issPageValue: string) { + console.log(`Checking for page value: ${issPageValue}`); + let pass = false; + let currentUrl = this.page.url(); + console.log(`Current URL: ${currentUrl}`); + pass = currentUrl.includes(issPageValue); + const isBailout = currentUrl.includes('bailout-page'); + if(!pass && !isBailout) { + console.log('Waiting for URL to change'); + await this.waitForURLToChange(currentUrl); + currentUrl = this.page.url(); + console.log(`New URL: ${currentUrl}`); + } + expect(currentUrl).toContain(issPageValue); + } + + async waitForURLToChange(startingUrl: string) { await expect(async () => { const currentUrl = this.page.url(); - expect(currentUrl).toContain(issPageValue); - }).toPass({ - intervals: [1_000], - timeout: 15_000 - }); + expect(currentUrl).not.toEqual(startingUrl); + }).toPass({ timeout: 180_000 }); } } \ No newline at end of file diff --git a/playwright-tests/pages/OrderConfirmationPage.ts b/playwright-tests/pages/OrderConfirmationPage.ts index fdb2ffe8..e5b32e0c 100644 --- a/playwright-tests/pages/OrderConfirmationPage.ts +++ b/playwright-tests/pages/OrderConfirmationPage.ts @@ -111,4 +111,26 @@ export class OrderConfirmationPage extends BasePage { console.log(`SessionStorage Work Order Number:${workOrderNumber}`); }); } + + async validateURL() { + console.log("Order confirmation validation override") + console.log(`Checking for page value: ${this.issPageValue}`); + let pass = false; + let currentUrl = this.page.url(); + console.log(`Current URL: ${currentUrl}`); + pass = currentUrl.includes(this.issPageValue); + while(!pass && currentUrl.includes('payment')) { + await this.waitForURLToChange(currentUrl); + currentUrl = this.page.url(); + pass = currentUrl.includes(this.issPageValue); + } + const isBailout = currentUrl.includes('bailout-page'); + if(!pass && !isBailout) { + console.log('Waiting for URL to change'); + await this.waitForURLToChange(currentUrl); + currentUrl = this.page.url(); + console.log(`New URL: ${currentUrl}`); + } + expect(currentUrl).toContain(this.issPageValue); + } } \ No newline at end of file diff --git a/playwright-tests/tests/0000__M.test.ts b/playwright-tests/tests/0000__M.test.ts index b610efdf..5abd61a7 100644 --- a/playwright-tests/tests/0000__M.test.ts +++ b/playwright-tests/tests/0000__M.test.ts @@ -757,7 +757,7 @@ async function runWorkflow(page: Page, testCase: TestCase) { } await test.step('OrderConfirmationPage >> Validate order', async () => { - await orderConfirmationPage.validateURL(orderConfirmationPage.issPageValue); + await orderConfirmationPage.validateURL(); await orderConfirmationPage.validateOrderConfirmationPage(testCase.testData); }); }