import { test, expect } from '@playwright/test'; import { ae_app_local_data_defaults } from './_helpers/ae_defaults'; import { demo_event_id, demo_account_id } from './_helpers/env'; import { attach_minimal_v3_routes } from './_helpers/minimal_v3_mocks'; const demo_event = demo_event_id; test.describe('Event Badge Page - smoke', () => { test.beforeEach(async ({ page }) => { page.on('pageerror', (err) => console.error(`BROWSER ERROR: ${err.message}`)); page.on('console', (msg) => { if (msg.type() === 'error' || msg.type() === 'warn') console.error(`BROWSER [${msg.type().toUpperCase()}]: ${msg.text()}`); }); await attach_minimal_v3_routes(page, demo_event); await page.addInitScript((defaults, event_id, account_id) => { const test_data = { ...defaults, account_id: account_id, manager_access: true }; test_data.mod = { ...defaults.mod, events: { ...defaults.mod.events, event_id } }; window.localStorage.setItem('ae_loc', JSON.stringify(test_data)); }, ae_app_local_data_defaults, demo_event, demo_account_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/${demo_event}/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(); }); });