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

test.describe('Authentication', () => {
    test('Public pages should be accessible without login', async ({ page }) => {
        await page.goto('/');
        await expect(page).toHaveTitle(/Hördle/);
        await expect(page.getByRole('button', { name: 'Start' })).toBeVisible();
    });

    test('Admin page should be protected', async ({ page }) => {
        await page.goto('/en/admin');
        // We expect to see the Login form, NOT the dashboard content
        await expect(page.getByPlaceholder('Password')).toBeVisible();
        await expect(page.getByText('Manage Specials')).not.toBeVisible();
    });

    test('Admin login flow', async ({ page }) => {
        // Navigate to admin login
        await page.goto('/en/admin');

        const passwordInput = page.getByPlaceholder('Password');

        if (await passwordInput.isVisible()) {
            await passwordInput.fill('admin123');
            await page.getByRole('button', { name: 'Login' }).click({ force: true });

            // Should now be on admin page
            await expect(page.getByRole('heading', { name: 'Hördle Admin Dashboard' })).toBeVisible();
        }
    });
});
