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

test('로그인 페이지 구조 검사', async ({ page }) => {
  await page.goto('http://localhost:5265/login');
  await page.waitForLoadState('networkidle');
  await page.waitForTimeout(3000);

  console.log('\n=== 페이지 타이틀 ===');
  console.log(await page.title());

  console.log('\n=== 페이지 URL ===');
  console.log(page.url());

  console.log('\n=== 모든 입력 필드 ===');
  const inputs = await page.locator('input').all();
  console.log(`총 ${inputs.length}개의 입력 필드 발견`);

  for (let i = 0; i < inputs.length; i++) {
    const type = await inputs[i].getAttribute('type');
    const name = await inputs[i].getAttribute('name');
    const id = await inputs[i].getAttribute('id');
    const placeholder = await inputs[i].getAttribute('placeholder');
    const cls = await inputs[i].getAttribute('class');
    console.log(`  [${i}] type=${type}, name=${name}, id=${id}, placeholder=${placeholder}`);
    if (cls) console.log(`      class=${cls}`);
  }

  console.log('\n=== 모든 버튼 ===');
  const buttons = await page.locator('button').all();
  console.log(`총 ${buttons.length}개의 버튼 발견`);

  for (let i = 0; i < buttons.length; i++) {
    const text = await buttons[i].textContent();
    const type = await buttons[i].getAttribute('type');
    const cls = await buttons[i].getAttribute('class');
    console.log(`  [${i}] type=${type}, text="${text?.trim()}"`);
    if (cls) console.log(`      class=${cls}`);
  }

  console.log('\n=== MudBlazor 요소 ===');
  const mudInputs = await page.locator('mud-text-field, .mud-input-control, .mud-input').all();
  console.log(`MudBlazor 입력: ${mudInputs.length}개`);

  console.log('\n=== 페이지 바디 텍스트 (첫 1000자) ===');
  const bodyText = await page.locator('body').textContent();
  if (bodyText) {
    console.log(bodyText.substring(0, 1000));
  }

  console.log('\n=== 스크린샷 저장 ===');
  await page.screenshot({ path: 'test-results/login-inspect.png', fullPage: true });
  console.log('✓ test-results/login-inspect.png');
});
