From 6ffe7e229d2d03b3ed11f353aa0b7ee6e2d4d48f Mon Sep 17 00:00:00 2001 From: JennyNou <167806377+JennyNou@users.noreply.github.com> Date: Tue, 10 Mar 2026 13:20:56 -0400 Subject: [PATCH] Added locators and steps to fix Afterpay flow --- playwright-tests/pages/AfterpayPage.ts | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/playwright-tests/pages/AfterpayPage.ts b/playwright-tests/pages/AfterpayPage.ts index aa345ef4..cf71e250 100644 --- a/playwright-tests/pages/AfterpayPage.ts +++ b/playwright-tests/pages/AfterpayPage.ts @@ -9,12 +9,22 @@ export class AfterpayPage extends BasePage { readonly submitButton: Locator; readonly confirmButton: Locator; + readonly selectAfterpayWithInterestButton: Locator; + readonly selectAfterpayWithoutInterestButton: Locator; + readonly continueAfterpayButton: Locator; + constructor(page: Page) { super(page); this.page = page; this.passwordTextBox = page.getByTestId('login-password-input'); this.submitButton = page.getByRole('button', { name: 'Continue' }); this.confirmButton = page.getByRole('button', { name: 'Confirm' }); + + // Monthly with interest option + this.selectAfterpayWithInterestButton = page.getByRole('radio', { name: /month/ }); + // Biweekly without interest option + this.selectAfterpayWithoutInterestButton = page.getByTestId('payment-types-label').filter({ hasText: /every 2 weeks/ }); + this.continueAfterpayButton = page.getByRole('button', { name: 'Continue' }); } async login(password: string) { @@ -25,6 +35,18 @@ export class AfterpayPage extends BasePage { async executeAfterpayPayment(paymentDetails: IPaymentDetails) { await this.login(paymentDetails.password!); + + // For orders greater than $50, user will have 2 options to choose from: monthly with interest or biweekly without interest + await this.selectAfterpayWithoutInterestButton.waitFor({ state: 'visible' }); + + if (await this.selectAfterpayWithoutInterestButton.isVisible()) { + await this.selectAfterpayWithoutInterestButton.click(); + await this.continueAfterpayButton.click(); + } else if (await this.selectAfterpayWithInterestButton.isVisible()) { + await this.selectAfterpayWithInterestButton.click(); + await this.continueAfterpayButton.click(); + } + await this.confirmButton.click(); }