import { test, expect } from '@playwright/test' test.describe('Payment redirect', () => { test.beforeEach(async ({ page }) => { await page.goto('/logga-in') await page.getByLabel('E-postadress').fill('test@bilhalsning.se') await page.getByLabel('Lösenord').fill('test1234') await page.getByRole('button', { name: 'Logga in' }).click() await page.waitForURL('/') }) test('can navigate to payment page from compose', async ({ page }) => { await page.goto('/compose?plate=ABC123') await page.getByLabel('Ditt meddelande').fill('Hej fin bil!') await page.getByRole('button', { name: 'Fortsätt till betalning' }).click() await expect(page).toHaveURL(/\/betalning\//) await expect(page.getByRole('heading', { name: 'Betalning' })).toBeVisible() await expect(page.getByText('49 kr')).toBeVisible() await expect(page.getByText('ABC123')).toBeVisible() }) test('payment button marks order as paid and redirects to orders', async ({ page, }) => { await page.goto('/compose?plate=DEF456') await page.getByLabel('Ditt meddelande').fill('Vill köpa din bil.') await page.getByRole('button', { name: 'Fortsätt till betalning' }).click() await page.waitForURL(/\/betalning\//) await page.getByRole('button', { name: 'Genomför testbetalning' }).click() await expect(page).toHaveURL('/orders') await expect(page.getByText('DEF456').first()).toBeVisible() }) test('payment page requires authentication', async ({ page }) => { await page.evaluate(() => localStorage.clear()) await page.goto('/betalning/some-id') await expect(page).toHaveURL(/\/logga-in/) }) test('shows mock payment note', async ({ page }) => { await page.goto('/compose?plate=GHI789') await page.getByLabel('Ditt meddelande').fill('Hej!') await page.getByRole('button', { name: 'Fortsätt till betalning' }).click() await page.waitForURL(/\/betalning\//) await expect(page.locator('.payment__note')).toBeVisible() }) })