import { test, expect } from '@playwright/test'

test.describe('Dashboard', () => {
  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/)
  })

  test('KPI cards are visible after login', async ({ page }) => {
    // All four KPI cards should be displayed
    await expect(page.getByText('Fälle gesamt')).toBeVisible()
    await expect(page.getByText('Offene ICD')).toBeVisible()
    await expect(page.getByText('Offene Codierung')).toBeVisible()
    await expect(page.getByText('Gutachten gesamt')).toBeVisible()
  })

  test('year selector exists and can be changed', async ({ page }) => {
    // The year selector trigger should be visible
    const yearSelector = page.locator('button').filter({ hasText: /^\d{4}$/ })
    await expect(yearSelector).toBeVisible()

    // Click it to open the dropdown
    await yearSelector.click()

    // Previous years should be available in the dropdown
    const currentYear = new Date().getFullYear()
    const previousYear = currentYear - 1
    await expect(page.getByRole('option', { name: String(previousYear) })).toBeVisible()

    // Select the previous year
    await page.getByRole('option', { name: String(previousYear) }).click()
  })

  test('Fallgruppen chart section is visible', async ({ page }) => {
    await expect(page.getByText('Fallgruppen')).toBeVisible()
  })

  test('weekly chart section is visible', async ({ page }) => {
    await expect(page.getByText('Wöchentliche Übersicht')).toBeVisible()
  })
})
