From 5a55e5638775d7887371b8d5a66ad83afdca636f Mon Sep 17 00:00:00 2001 From: kimatata <117462761+kimatata@users.noreply.github.com> Date: Sun, 27 Apr 2025 20:58:54 +0900 Subject: [PATCH] feat: first user sign up E2E test (#214) --- e2e/first-user-signup.spec.ts | 39 +++++++++++++++++++++++++++++++++++ playwright.config.ts | 2 ++ 2 files changed, 41 insertions(+) create mode 100644 e2e/first-user-signup.spec.ts diff --git a/e2e/first-user-signup.spec.ts b/e2e/first-user-signup.spec.ts new file mode 100644 index 0000000..7bcac6f --- /dev/null +++ b/e2e/first-user-signup.spec.ts @@ -0,0 +1,39 @@ +import { test, expect } from '@playwright/test'; + +test('First User signup and create project', async ({ page }) => { + const screenshotDir = 'playwright-report/screenshots/first-user-signup'; + + // Move to Sign up page + await page.goto('http://localhost:8000/en/account/signup'); + + // Fill sign up form + await page.getByRole('textbox', { name: 'Email*' }).fill('user1@example.com'); + await page.getByRole('textbox', { name: 'User name*' }).fill('user1'); + await page.getByRole('textbox', { name: 'Password Password' }).fill('password'); + await page.getByRole('textbox', { name: 'Password (confirm)' }).fill('password'); + + // Sign up + await page.getByRole('button', { name: 'Sign up' }).click(); + await page.waitForURL('**/en/account'); + await page.screenshot({ path: `${screenshotDir}/after-sign-up.png`, fullPage: true }); + + // Move to projects page + await page.getByRole('button', { name: 'Find Projects' }).click(); + await page.waitForURL('**/en/projects'); + + // Create new project + await page.getByRole('button', { name: 'New Project' }).click(); + await page.getByLabel('Project Name').fill('sample project'); + await page.getByRole('button', { name: 'Create' }).click(); + + // Move to new project + const projectLink = await page.getByRole('link', { name: 'sample project' }); + await expect(projectLink).toBeVisible(); + await projectLink.click(); + await page.waitForURL('**/en/projects/1/home'); + + await page.screenshot({ + path: `${screenshotDir}/after-create-project.png`, + fullPage: true, + }); +}); diff --git a/playwright.config.ts b/playwright.config.ts index b5a4d55..0c41563 100644 --- a/playwright.config.ts +++ b/playwright.config.ts @@ -41,11 +41,13 @@ export default defineConfig({ { name: 'firefox', use: { ...devices['Desktop Firefox'] }, + testIgnore: '**/first-user-signup.spec.ts', }, { name: 'webkit', use: { ...devices['Desktop Safari'] }, + testIgnore: '**/first-user-signup.spec.ts', }, /* Test against mobile viewports. */