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

const BASE_URL = process.env.PLAYWRIGHT_BASE_URL || 'http://localhost:1313';

test.describe('HTML validation', () => {
  test('homepage has valid HTML structure', async ({ page }) => {
    await page.goto(BASE_URL);

    // Check basic HTML structure
    await expect(page.locator('html')).toHaveAttribute('lang');
    await expect(page.locator('head')).toBeAttached();
    await expect(page.locator('body')).toBeAttached();
    
    // Verify meta tags
    await expect(page.locator('meta[charset]')).toBeAttached();
    await expect(page.locator('meta[name="viewport"]')).toBeAttached();
    await expect(page.locator('meta[name="description"]')).toBeAttached();
    
    // Check main structural elements
    await expect(page.locator('header')).toBeAttached();
    await expect(page.locator('footer')).toBeAttached();

  });

  test('page has valid theme attributes', async ({ page }) => {
    await page.goto(BASE_URL);
    
    const html = page.locator('html');
    
    // Check theme attributes are present
    await expect(html).toHaveAttribute('data-bs-theme');
    
    // If theme is forced, these attributes should be present
    const isForcedTheme = await html.getAttribute('theme-forced');
    if (isForcedTheme === 'true') {
      await expect(html).toHaveAttribute('theme-auto', 'false');
    }
  });

}); 