import { describe, it, expect, vi, beforeEach } from 'vitest'; import { aviationWeatherApi } from './weatherservice'; describe('aviationWeatherApi', () => { beforeEach(() => { vi.restoreAllMocks(); }); it('fetches METAR data successfully', async () => { const mockMetar = { icaoId: 'EGKK', temp: 20 }; vi.stubGlobal('fetch', vi.fn().mockResolvedValue({ ok: true, json: () => Promise.resolve(mockMetar) })); const result = await aviationWeatherApi.fetchMetar('EGKK'); expect(result).toEqual(mockMetar); expect(fetch).toHaveBeenCalledWith('/api/metar/EGKK'); }); it('throws error if fetch fails', async () => { vi.stubGlobal('fetch', vi.fn().mockResolvedValue({ ok: false, statusText: 'Not Found' })); await expect(aviationWeatherApi.fetchMetar('XXXX')).rejects.toThrow('Failed to fetch METAR: Not Found'); }); });