import { test, expect } from '@playwright/test' test.describe('Login page', () => { test('can navigate to login page', async ({ page }) => { await page.goto('/logga-in') await expect(page.getByRole('heading', { name: 'Logga in' })).toBeVisible() }) test('shows error for invalid credentials', async ({ page }) => { await page.goto('/logga-in') await page.getByLabel('E-postadress').fill('user@example.com') await page.getByLabel('Lösenord').fill('wrongpassword') await page.getByRole('button', { name: 'Logga in' }).click() await expect(page.getByText('Felaktig e-post eller lösenord')).toBeVisible() }) test('redirects to home after successful login', async ({ page }) => { await page.goto('/logga-in') await page.getByLabel('E-postadress').fill('test@bilhej.se') await page.getByLabel('Lösenord').fill('test1234') await page.getByRole('button', { name: 'Logga in' }).click() await expect(page).toHaveURL('/') }) test('can navigate from login to register', async ({ page }) => { await page.goto('/logga-in') await page.getByRole('link', { name: 'Skapa konto' }).click() await expect(page).toHaveURL('/registrera') await expect( page.getByRole('heading', { name: 'Skapa konto' }), ).toBeVisible() }) test('login form has correct input types', async ({ page }) => { await page.goto('/logga-in') await expect(page.getByLabel('E-postadress')).toHaveAttribute( 'type', 'email', ) await expect(page.getByLabel('Lösenord')).toHaveAttribute( 'type', 'password', ) }) test('login form has name attributes and form action', async ({ page }) => { await page.goto('/logga-in') const form = page.locator('form') await expect(form).toHaveAttribute('method', 'post') await expect(form).toHaveAttribute('action', '/api/auth/login') await expect(page.getByLabel('E-postadress')).toHaveAttribute( 'name', 'email', ) await expect(page.getByLabel('Lösenord')).toHaveAttribute( 'name', 'password', ) }) })