From 04fe869e354b1b608fa641329c7bbc04baaa3fb0 Mon Sep 17 00:00:00 2001 From: Arman Date: Wed, 22 May 2024 17:53:39 +0200 Subject: [PATCH] feat: upgrade e2e test for new flow --- .../console/create-organization/+page.svelte | 2 +- tests/e2e/journeys/upgrade-free-tier.spec.ts | 11 +++++------ tests/e2e/steps/pro-project.ts | 17 ++++------------- 3 files changed, 10 insertions(+), 20 deletions(-) diff --git a/src/routes/console/create-organization/+page.svelte b/src/routes/console/create-organization/+page.svelte index 561cfb0ea..58959c166 100644 --- a/src/routes/console/create-organization/+page.svelte +++ b/src/routes/console/create-organization/+page.svelte @@ -75,7 +75,7 @@ } if ($page.url.searchParams.has('plan')) { const plan = $page.url.searchParams.get('plan'); - if (plan && plan in BillingPlan) { + if (plan && Object.values(BillingPlan).includes(plan as BillingPlan)) { billingPlan = plan as BillingPlan; } } diff --git a/tests/e2e/journeys/upgrade-free-tier.spec.ts b/tests/e2e/journeys/upgrade-free-tier.spec.ts index 5c60a3872..63b58b53d 100644 --- a/tests/e2e/journeys/upgrade-free-tier.spec.ts +++ b/tests/e2e/journeys/upgrade-free-tier.spec.ts @@ -1,20 +1,19 @@ import { test } from '@playwright/test'; import { registerUserStep } from '../steps/account'; import { createFreeProject } from '../steps/free-project'; -import { enterAddress, enterCreditCard } from '../steps/pro-project'; +import { enterCreditCard } from '../steps/pro-project'; test('upgrade - free tier', async ({ page }) => { await registerUserStep(page); await createFreeProject(page); await test.step('upgrade project', async () => { - await page.getByRole('button', { name: 'upgrade' }).click(); + await page.getByRole('link', { name: 'upgrade' }).click(); + await page.waitForURL('/console/organization-**/change-plan'); await page.locator('input[value="tier-1"]').click(); - await page.getByRole('button', { name: 'next' }).click(); + await page.getByRole('button', { name: ' Add', exact: true }).click(); await enterCreditCard(page); - await enterAddress(page); // skip members - await page.getByRole('button', { name: 'next' }).click(); - await page.getByRole('button', { name: 'create' }).click(); + await page.getByRole('button', { name: 'change plan' }).click(); await page.waitForURL('/console/organization-**'); }); }); diff --git a/tests/e2e/steps/pro-project.ts b/tests/e2e/steps/pro-project.ts index 571e85ca0..287510713 100644 --- a/tests/e2e/steps/pro-project.ts +++ b/tests/e2e/steps/pro-project.ts @@ -13,15 +13,7 @@ export async function enterCreditCard(page: Page) { await stripe.locator('id=Field-expiryInput').fill('1250'); await stripe.locator('id=Field-cvcInput').fill('123'); await stripe.locator('id=Field-countryInput').selectOption('DE'); - await page.getByRole('button', { name: 'Next' }).click(); -} - -export async function enterAddress(page: Page) { - await page.locator('id=country').selectOption('US'); - await page.locator('id=address').fill('123 Test St'); - await page.locator('id=city').fill('Test City'); - await page.locator('id=state').fill('Test State'); - await page.getByRole('button', { name: 'Next' }).click(); + await page.getByRole('button', { name: 'Add', exact: true }).click(); } export async function createProProject(page: Page): Promise { @@ -31,12 +23,11 @@ export async function createProProject(page: Page): Promise { await page.locator('id=name').fill('test org'); await page.locator('id=plan').selectOption('tier-1'); await page.getByRole('button', { name: 'get started' }).click(); + await page.waitForURL('/console/create-organization**'); + await page.getByRole('button', { name: ' Add', exact: true }).click(); await enterCreditCard(page); - await enterAddress(page); // skip members - await page.getByRole('button', { name: 'next' }).click(); - // start pro trial - await page.getByRole('button', { name: 'create' }).click(); + await page.getByRole('button', { name: 'create organization' }).click(); await page.waitForURL('/console/organization-**'); return getOrganizationIdFromUrl(page.url());