Updated the locator for the 'manageBillingButton' in the end-to-end billing test. Instead of an id, the locator now targets a data property. This change was also reflected in the Button component within 'billing-portal-card.tsx' where the attribute data-test was added for test recognition.
45 lines
1.0 KiB
TypeScript
45 lines
1.0 KiB
TypeScript
import { expect, Page } from '@playwright/test';
|
|
import { StripePageObject } from './stripe.po';
|
|
|
|
export class BillingPageObject {
|
|
public readonly stripe: StripePageObject;
|
|
|
|
constructor(
|
|
private readonly page: Page,
|
|
) {
|
|
this.stripe = new StripePageObject(page);
|
|
}
|
|
|
|
plans() {
|
|
return this.page.locator('[data-test-plan]');
|
|
}
|
|
|
|
selectPlan(index: number = 0) {
|
|
const plans = this.plans();
|
|
|
|
return plans.nth(index).click();
|
|
}
|
|
|
|
manageBillingButton() {
|
|
return this.page.locator('[data-test="manage-billing-redirect-button"]');
|
|
}
|
|
|
|
successStatus() {
|
|
return this.page.locator('[data-test="payment-return-success"]');
|
|
}
|
|
|
|
async returnToHome() {
|
|
// wait a bit for the webhook to be processed
|
|
await this.page.waitForTimeout(1000);
|
|
|
|
return this.page.locator('[data-test="checkout-success-back-link"]').click();
|
|
}
|
|
|
|
proceedToCheckout() {
|
|
return this.page.click('[data-test="checkout-submit-button"]');
|
|
}
|
|
|
|
async getStatus() {
|
|
return this.page.locator('[data-test="current-plan-card-status-badge"]');
|
|
}
|
|
} |