From 9812c874df821eb9a431f34b01c292086ffbc0ec Mon Sep 17 00:00:00 2001 From: JennyNou <167806377+JennyNou@users.noreply.github.com> Date: Tue, 18 Nov 2025 13:49:45 -0500 Subject: [PATCH] Move method to base page for reusability --- playwright-tests/pages/BasePage.ts | 16 ++++++++++++++++ playwright-tests/pages/PaymentMethodPage.ts | 16 ---------------- playwright-tests/tests/0000__M.test.ts | 4 +--- 3 files changed, 17 insertions(+), 19 deletions(-) diff --git a/playwright-tests/pages/BasePage.ts b/playwright-tests/pages/BasePage.ts index 6596986df..1562677a2 100644 --- a/playwright-tests/pages/BasePage.ts +++ b/playwright-tests/pages/BasePage.ts @@ -169,4 +169,20 @@ export class BasePage { Soft.expect(actualProgressPercentage).toBe(progressPercentage); console.log(`Progress Bar Percentage: Actual - ${actualProgressPercentage} vs Expected - ${progressPercentage}`); } + + async validateOEMPart( isOEM: boolean): Promise { + if (isOEM!) { + // Get Vuex state from localStorage + const vuexState = JSON.parse(await this.page.evaluate('localStorage.getItem(\'vuex\')')); + + // Validate the presence of an OEM part + if (vuexState.order?.lineItems?.glassParts?.length > 0) { + const firstGlassPartNumber = vuexState.order.lineItems.glassParts[0].partNumber; + + await expect(firstGlassPartNumber.includes("OEM")).toBe(true); + } else { + throw new Error("No glass parts found in the order"); + } + } + } } \ No newline at end of file diff --git a/playwright-tests/pages/PaymentMethodPage.ts b/playwright-tests/pages/PaymentMethodPage.ts index b4b00a151..cbf6d01c8 100644 --- a/playwright-tests/pages/PaymentMethodPage.ts +++ b/playwright-tests/pages/PaymentMethodPage.ts @@ -496,22 +496,6 @@ export class PaymentMethodPage extends BasePage { let updatedAppointmentDate = parsedAppointmentDate.toLocaleDateString('en-US', { weekday: 'long', year: 'numeric', month: 'long', day: 'numeric' }); return updatedAppointmentDate; } - - async validateOEMPart( isOEM: boolean): Promise { - if (isOEM == true) { - // Get Vuex state from localStorage - const vuexState = JSON.parse(await this.page.evaluate('localStorage.getItem(\'vuex\')')); - - // Validate the presence of an OEM part - if (vuexState.order?.lineItems?.glassParts?.length > 0) { - const firstGlassPartNumber = vuexState.order.lineItems.glassParts[0].partNumber; - - await expect(firstGlassPartNumber.includes("OEM")).toBe(true); - } else { - throw new Error("No glass parts found in the order"); - } - } - } @step("PaymentMethodPage >> Select Payment Method: ") async handlePaymentMethodPage(testData: Partial) { diff --git a/playwright-tests/tests/0000__M.test.ts b/playwright-tests/tests/0000__M.test.ts index 4f0bbe6bf..d2d85f4b9 100644 --- a/playwright-tests/tests/0000__M.test.ts +++ b/playwright-tests/tests/0000__M.test.ts @@ -335,12 +335,10 @@ export async function handleInsuranceFlow(testCase: TestCase) { await insuranceCompanyPage.handleInsuranceCompanyPage(testCase.testData); // Handle OEM scenario - if (isOEM) { + if (isOEM === true) { // User should be on heritage problem glass questions page after selecting Allstate on insurance company page - if (testCase.testData.isOEM === true) { let HeritageProblemGlassQuestionsPage = testCase.pages.heritageProblemGlassQuestionsPage; await HeritageProblemGlassQuestionsPage.handleHeritageProblemGlassQuestionsPage(testCase.testData); - } } // Handle ccPolicyInfoPage