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

const WEB_ADMIN_URL = process.env.E2E_WEB_ADMIN_URL || 'http://localhost:3001';

test.describe('Панель рецепции (web-admin) — UI', () => {
  test('Редирект на /login для неавторизованного', async ({ page }) => {
    await page.goto(WEB_ADMIN_URL);
    await page.waitForURL(/login/, { timeout: 5000 }).catch(() => {});
    // Should show login form or redirect
    const url = page.url();
    expect(url).toMatch(/login|\/$/);
  });

  test('Форма логина — поля телефон и пароль', async ({ page }) => {
    await page.goto(`${WEB_ADMIN_URL}/login`);
    const phoneInput = page
      .locator('input[type="tel"], input[name="phone"], input[placeholder*="елефон"]')
      .first();
    const passwordInput = page.locator('input[type="password"]').first();

    await expect(phoneInput).toBeVisible();
    await expect(passwordInput).toBeVisible();
  });

  test('Все основные страницы не возвращают 500', async ({ page }) => {
    const pages = ['/login', '/dashboard', '/reception', '/distribution', '/trainers'];
    for (const p of pages) {
      const response = await page.goto(`${WEB_ADMIN_URL}${p}`);
      const status = response?.status() ?? 200;
      expect(status, `Страница ${p} вернула 500+`).toBeLessThan(500);
    }
  });
});
