import { test, expect } from '@playwright/test';
import { testing_event_id } from './_helpers/env';
import { setup_badge_test_page } from './_helpers/minimal_ae_api_mocks';

const event_id = testing_event_id;

test.describe('Event Badge — smoke', () => {
  test.beforeEach(async ({ page }) => {
    page.on('console', (msg) => {
      if (msg.type() === 'error' || msg.type() === 'warning') console.error(`BROWSER [${msg.type().toUpperCase()}]: ${msg.text()}`);
    });
    await setup_badge_test_page(page, event_id);
  });

  test('loads badges list without console errors', async ({ page }) => {
    const errors: string[] = [];
    page.on('pageerror', (err) => errors.push(err.message));

    await page.goto(`/events/${event_id}/badges`);
    await page.waitForResponse((r) => r.url().includes('site_domain/search') && r.status() === 200);

    expect(errors).toHaveLength(0);
    // smoke: ensure the page responded to initial handshake
    const resp = await page.request.get('/v3/health', { failOnStatusCode: false });
    // not asserting 200; just ensure request helper works
    expect(resp.ok() || resp.status() >= 400).toBeTruthy();
  });
});
