Changes include updating the user and team billing specs to increase visibility timeout and alter navigation route post-billing. Minor adjustments have been made to the page aesthetics and redirection logic. Also, refactored import statements for code organization purposes. Changes in the build script are also reflected in the commit.
45 lines
1.0 KiB
TypeScript
45 lines
1.0 KiB
TypeScript
import { 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 returnToBilling() {
|
|
// wait a bit for the webhook to be processed
|
|
await this.page.waitForTimeout(1000);
|
|
|
|
await 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"]');
|
|
}
|
|
} |