import { test, expect } from '@playwright/test' test.describe('Register page', () => { test('can navigate to register page', async ({ page }) => { await page.goto('/registrera') await expect( page.getByRole('heading', { name: 'Skapa konto' }), ).toBeVisible() }) test('registers a new user and redirects to home', async ({ page }) => { const uniqueEmail = `playwright-${Date.now()}@test.com` await page.goto('/registrera') await page.getByLabel('E-postadress').fill(uniqueEmail) await page.getByLabel('Lösenord').first().fill('password123') await page.getByLabel('Bekräfta lösenord').fill('password123') await page.getByRole('button', { name: 'Skapa konto' }).click() await expect(page).toHaveURL('/') }) test('shows validation error for invalid email', async ({ page }) => { await page.goto('/registrera') await page.getByLabel('E-postadress').fill('not-an-email') await expect(page.getByText('Ange en giltig e-postadress')).toBeVisible() }) test('shows validation error for short password', async ({ page }) => { await page.goto('/registrera') await page.getByLabel('Lösenord').first().fill('short') await expect( page.getByText('Lösenordet måste vara minst 8 tecken'), ).toBeVisible() }) test('shows validation error for mismatched passwords', async ({ page }) => { await page.goto('/registrera') await page.getByLabel('Lösenord').first().fill('password123') await page.getByLabel('Bekräfta lösenord').fill('different123') await expect(page.getByText('Lösenorden matchar inte')).toBeVisible() }) test('can navigate from register to login', async ({ page }) => { await page.goto('/registrera') await page .getByRole('main') .getByRole('link', { name: 'Logga in' }) .click() await expect(page).toHaveURL('/logga-in') }) })