const { test, expect } = require('@playwright/test');

test.describe('AutoBackups - Dashboard Tests', () => {
  test('should load the main dashboard', async ({ page }) => {
    await page.goto('/');
    
    // Check if the page loads correctly - be flexible with the title
    const title = await page.title();
    console.log(`Page title: "${title}"`);
    
    // Accept various title formats that might indicate the AutoBackups app
    const validTitles = /AutoBackups|Dashboard|Script Parameter Manager|Test/i;
    expect(title).toMatch(validTitles);
    
    // Take a screenshot for visual verification
    await page.screenshot({ path: 'test-results/dashboard.png' });
  });

  test('should display navigation elements', async ({ page }) => {
    await page.goto('/');
    
    // Check for common navigation elements
    // Adjust these selectors based on your actual HTML structure
    const navigation = page.locator('nav, .navbar, .navigation');
    if (await navigation.count() > 0) {
      await expect(navigation).toBeVisible();
    }
    
    // Check for links to configuration page
    const configLink = page.locator('a[href*="config"], a:has-text("Config"), a:has-text("Configuración")');
    if (await configLink.count() > 0) {
      await expect(configLink.first()).toBeVisible();
    }
  });

  test('should be responsive', async ({ page }) => {
    await page.goto('/');
    
    // Test mobile viewport
    await page.setViewportSize({ width: 375, height: 667 });
    await page.screenshot({ path: 'test-results/mobile-dashboard.png' });
    
    // Test tablet viewport
    await page.setViewportSize({ width: 768, height: 1024 });
    await page.screenshot({ path: 'test-results/tablet-dashboard.png' });
    
    // Test desktop viewport
    await page.setViewportSize({ width: 1920, height: 1080 });
    await page.screenshot({ path: 'test-results/desktop-dashboard.png' });
  });
});
