Fix logic to cover Afterpay payment options

This commit is contained in:
JennyNou 2026-03-26 22:35:49 -04:00
parent d23fa89fdd
commit ae93c84fe5

View file

@ -34,15 +34,19 @@ export class AfterpayPage extends BasePage {
} }
async executeAfterpayPayment(paymentDetails: IPaymentDetails, claimDetails: IClaimDetails, servicePackage: ServicePackage) { async executeAfterpayPayment(paymentDetails: IPaymentDetails, claimDetails: IClaimDetails, servicePackage: ServicePackage) {
const confirmButtonOrPaymentOptions = this.confirmButton.or(this.selectAfterpayWithoutInterestButton);
await this.login(paymentDetails.password!); await this.login(paymentDetails.password!);
try {await this.confirmButton.waitFor({ state: 'visible', timeout: 5000 }); await this.page.locator('div[data-testid=\'loading-icon-svg\']').filter({ visible: true}).first().waitFor({ state: 'hidden' });
expect(this.confirmButton).toBeVisible(); await confirmButtonOrPaymentOptions.waitFor({ state: 'visible' });
await this.confirmButton.click();
} catch {
// For some orders, user will have 2 options to choose from: monthly with interest or biweekly without interest
await this.selectAfterpayWithoutInterestButton.waitFor({ state: 'visible' });
if (await this.confirmButton.isVisible()) {
await this.confirmButton.waitFor({ state: 'attached' });
await this.confirmButton.click();
} else {
// For some orders, user will have 2 options to choose from: monthly with interest or biweekly without interest
if (await this.selectAfterpayWithoutInterestButton.isVisible()) { if (await this.selectAfterpayWithoutInterestButton.isVisible()) {
await this.selectAfterpayWithoutInterestButton.click(); await this.selectAfterpayWithoutInterestButton.click();
await this.continueAfterpayButton.click(); await this.continueAfterpayButton.click();
@ -51,6 +55,6 @@ export class AfterpayPage extends BasePage {
await this.continueAfterpayButton.click(); await this.continueAfterpayButton.click();
} }
await this.confirmButton.click(); await this.confirmButton.click();
}
} }
} }
}