#4 Added set of unit tests to ensure functionality of currently implemented behaviour
This commit is contained in:
29
src/lib/api/weatherservice.test.ts
Normal file
29
src/lib/api/weatherservice.test.ts
Normal file
@@ -0,0 +1,29 @@
|
||||
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');
|
||||
});
|
||||
});
|
Reference in New Issue
Block a user