import { chromium } from "@playwright/test";

(async () => {
  console.log("════════════════════════════════════════════════════════");
  console.log("  🔬 PRECISION DEBUG TEST (Auth Check Disabled)");
  console.log("════════════════════════════════════════════════════════\n");
  
  const b = await chromium.launch({ headless: false });
  const p = await b.newPage();
  
  const allLogs = [];
  p.on("console", msg => {
    const text = msg.text();
    allLogs.push(text);
    if (text.includes("[") || text.includes("dashboard") || text.includes("login")) {
      console.log("  📝 " + text);
    }
  });
  
  // Network events
  p.on("response", res => {
    const url = res.url();
    if (url.includes("dashboard") || url.includes("login") || url.includes("api")) {
      console.log(`  📡 ${res.status()} ${url.split('/').pop() || 'root'}`);
    }
  });
  
  try {
    console.log("1️⃣  로그인 페이지 로드");
    await p.goto("http://localhost:5265/login.html", { waitUntil: "networkidle" });
    
    console.log("2️⃣  로그인 제출");
    await p.fill("input[name='username']", "admin");
    await p.fill("input[name='password']", "admin");
    await p.click("button[type='submit']");
    
    console.log("3️⃣  12초 동안 모니터링\n");
    let urlHistory = [];
    for (let i = 0; i < 12; i++) {
      await new Promise(r => setTimeout(r, 1000));
      const url = p.url();
      if (!urlHistory.includes(url)) {
        urlHistory.push(url);
        console.log(`   [${i+1}s] → ${url}`);
      }
    }
    
    console.log("\n4️⃣  최종 상태:");
    const finalUrl = p.url();
    const finalContent = await p.content();
    
    console.log(`   URL: ${finalUrl}`);
    
    if (finalUrl.includes("/dashboard")) {
      console.log("   ✅ /dashboard 도착!");
      
      if (finalContent.includes("관리자 대시보드")) {
        console.log("   ✅ 대시보드 콘텐츠 로드됨!");
        console.log("\n🎉 SUCCESS!\n");
      } else {
        console.log("   ⚠️  URL은 dashboard인데 콘텐츠가 없음");
      }
    } else if (finalUrl.includes("/login")) {
      console.log("   ❌ 다시 login으로 리다이렉트됨");
      console.log("\n   분석:");
      console.log("   - 이것은 Dashboard.razor에서 redirect되는 뜻");
      console.log("   - localStorage에서 토큰을 읽지 못했을 가능성");
    } else {
      console.log("   ❓ 예상치 못한 URL");
    }
    
    console.log("\n5️⃣  콘솔 로그 분석:");
    const dashboardLogs = allLogs.filter(l => l.includes("[Dashboard]"));
    if (dashboardLogs.length > 0) {
      console.log("   Dashboard 로그:");
      dashboardLogs.forEach(l => console.log("   - " + l));
    } else {
      console.log("   ⚠️  Dashboard 로그 없음 (페이지가 로드되지 않음?)");
    }
    
    await p.screenshot({ path: "./precision-test-result.png", fullPage: true });
    
  } catch (e) {
    console.error("Error:", e.message);
  }
  
  await b.close();
})();
