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

test('_framework 파일 로드 확인', async ({ page }) => {
  console.log('\n╔════════════════════════════════════════════════════╗');
  console.log('║        _framework 파일 로드 상태 확인             ║');
  console.log('╚════════════════════════════════════════════════════╝\n');

  const frameworkRequests: any[] = [];

  page.on('response', response => {
    const url = response.url();
    if (url.includes('_framework') || url.includes('blazor')) {
      frameworkRequests.push({
        url: url.split('?')[0],
        status: response.status(),
      });
      console.log(`[${response.status()}] ${url.split('?')[0]}`);
    }
  });

  console.log('페이지 접근...');
  await page.goto('http://localhost:5265/login');
  await page.waitForLoadState('networkidle');
  await page.waitForTimeout(3000);

  console.log('\n╔════════════════════════════════════════════════════╗');
  console.log('║            _framework 파일 요약                    ║');
  console.log('╚════════════════════════════════════════════════════╝\n');

  console.log(`총 _framework 요청: ${frameworkRequests.length}\n`);

  const byStatus: { [key: number]: string[] } = {};
  frameworkRequests.forEach(req => {
    if (!byStatus[req.status]) byStatus[req.status] = [];
    byStatus[req.status].push(req.url);
  });

  Object.entries(byStatus).forEach(([status, urls]) => {
    console.log(`[${status}] ${urls.length}개`);
    urls.forEach(url => {
      const filename = url.split('/').pop();
      console.log(`  ✓ ${filename}`);
    });
    console.log('');
  });

  const failedCount = (byStatus[404] || []).length + (byStatus[302] || []).length;
  if (failedCount > 0) {
    console.log(`❌ ${failedCount}개의 파일이 로드되지 않음!`);
  } else if (frameworkRequests.length > 0) {
    console.log('✅ 모든 _framework 파일 로드됨');
  } else {
    console.log('❌ _framework 파일이 로드되지 않음');
  }

  console.log('\n📍 최종 URL:', page.url());
});
