#!/usr/bin/env bun
/**
 * VIEW SWITCHER TEST
 * Test the clean/complete view toggle
 */

import { chromium } from "playwright";

const URL = "http://localhost:1999";

async function testViewSwitcher() {
  console.log("🧪 VIEW SWITCHER TEST\n");

  const browser = await chromium.launch({ headless: false });
  const page = await browser.newPage({ viewport: { width: 1400, height: 1080 } });
  await page.goto(URL);
  await page.waitForTimeout(2000);

  console.log("1️⃣  Initial state:");
  const initial = await page.evaluate(() => {
    const container = document.querySelector('.cv-container');
    const toggle = document.querySelector('#viewToggle');
    return {
      containerClass: container?.className,
      toggleChecked: toggle?.checked,
      isClean: container?.classList.contains('theme-clean'),
    };
  });
  console.log(`   Container class: ${initial.containerClass}`);
  console.log(`   Toggle checked: ${initial.toggleChecked}`);
  console.log(`   Is clean theme: ${initial.isClean}`);

  console.log("\n2️⃣  Clicking view toggle...");
  try {
    // Try clicking the label
    await page.click('label[for="viewToggle"]', { timeout: 5000 });
    await page.waitForTimeout(500);

    const afterClick = await page.evaluate(() => {
      const container = document.querySelector('.cv-container');
      const toggle = document.querySelector('#viewToggle');
      return {
        containerClass: container?.className,
        toggleChecked: toggle?.checked,
        isClean: container?.classList.contains('theme-clean'),
      };
    });

    console.log(`   Container class: ${afterClick.containerClass}`);
    console.log(`   Toggle checked: ${afterClick.toggleChecked}`);
    console.log(`   Is clean theme: ${afterClick.isClean}`);

    if (afterClick.isClean !== initial.isClean) {
      console.log(`\n   ✅ View switcher working!`);
    } else {
      console.log(`\n   ❌ View switcher NOT working - theme didn't change`);
    }
  } catch (error) {
    console.log(`   ❌ Error: ${error.message}`);
  }

  await page.screenshot({ path: 'tests/screenshots/view-switcher.png' });
  console.log(`\n📸 Screenshot: tests/screenshots/view-switcher.png`);

  console.log("\nBrowser will close in 10 seconds...");
  await page.waitForTimeout(10000);
  await browser.close();
}

await testViewSwitcher();
