Files
myeasycms-v2/apps/e2e/tests/utils/billing.po.ts
giancarlo 131b06fae6 Refactor e2e test code and reduce test timeout
The end-to-end tests have been refactored for clarity and maintainability. This includes changes in how the 'Billing' link is accessed, addition of comments and small coding improvements. Moreover, the test timeout has been reduced from 2 minutes to 1 for efficiency. Changes were also applied to the text content in locales file and minor fixes in component styling.
2024-04-14 19:34:40 +08:00

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('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);
await this.successStatus().locator('button').click();
}
proceedToCheckout() {
return this.page.click('[data-test="checkout-submit-button"]');
}
async getStatus() {
return this.page.locator('[data-test="current-plan-card-status-badge"]');
}
}