dak.c2s/frontend/e2e/cases.spec.ts
CCS Admin 77805191cf test: add Playwright E2E tests (auth, dashboard, cases, admin)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-26 21:44:25 +00:00

52 lines
1.9 KiB
TypeScript

import { test, expect } from '@playwright/test'
test.describe('Cases', () => {
test.beforeEach(async ({ page }) => {
// Log in before each test
await page.goto('/login')
await page.getByLabel('E-Mail').fill('admin@dak-portal.de')
await page.getByLabel('Passwort').fill('admin123')
await page.getByRole('button', { name: 'Anmelden' }).click()
await expect(page).toHaveURL(/\/dashboard/)
// Navigate to cases page
await page.getByRole('link', { name: /fälle/i }).click()
await expect(page).toHaveURL(/\/cases/)
})
test('case list table is visible', async ({ page }) => {
// Table headers should be visible
await expect(page.getByRole('columnheader', { name: 'Fall-ID' })).toBeVisible()
await expect(page.getByRole('columnheader', { name: 'Datum' })).toBeVisible()
await expect(page.getByRole('columnheader', { name: 'KVNR' })).toBeVisible()
await expect(page.getByRole('columnheader', { name: 'Fallgruppe' })).toBeVisible()
})
test('search input filters cases', async ({ page }) => {
// The search input should be present
const searchInput = page.getByPlaceholder(/suche/i)
await expect(searchInput).toBeVisible()
// Type a search query
await searchInput.fill('onko')
// Wait for debounce and results to update
await page.waitForTimeout(500)
// The page should still show the cases heading
await expect(page.getByRole('heading', { name: 'Fälle' })).toBeVisible()
})
test('clicking a row opens detail sheet', async ({ page }) => {
// Wait for table rows to appear
const firstRow = page.locator('tbody tr').first()
await expect(firstRow).toBeVisible()
// Click the first row
await firstRow.click()
// The detail sheet should open with case information
await expect(page.getByText('Fall-ID')).toBeVisible()
await expect(page.getByRole('button', { name: /bearbeiten/i })).toBeVisible()
})
})