import { test, expect } from '@playwright/test'; test.describe('API', () => { test('/api/health retourne status ok et cache true', async ({ request }) => { const res = await request.get('/api/health'); expect(res.status()).toBeLessThan(600); // accepte 200 ou 503 selon Valkey const body = await res.json(); expect(body).toHaveProperty('status'); expect(body).toHaveProperty('cache'); expect(body).toHaveProperty('time'); }); test('/api/vigilance retourne snapshot JSON valide CORS *', async ({ request }) => { const res = await request.get('/api/vigilance'); expect(res.status()).toBe(200); expect(res.headers()['access-control-allow-origin']).toBe('*'); const body = await res.json(); expect(body).toHaveProperty('fetchedAt'); expect(body).toHaveProperty('alerts'); expect(Array.isArray(body.alerts)).toBe(true); }); test('/api/vigilance/dept/13 retourne enrichi avec labels', async ({ request }) => { const res = await request.get('/api/vigilance/dept/13'); expect(res.status()).toBe(200); const body = await res.json(); expect(body.departement.code).toBe('13'); expect(body.departement.name).toBe('Bouches-du-Rhône'); expect(body).toHaveProperty('today'); expect(body).toHaveProperty('tomorrow'); }); test('/api/vigilance/dept/999 retourne 404', async ({ request }) => { const res = await request.get('/api/vigilance/dept/999'); expect(res.status()).toBe(404); }); });