import { render, screen, waitFor } from '@testing-library/react';
import { ping, fetchZones } from './Api';
import axios from 'axios';

jest.mock('axios');

describe('API Functions', () => {
    beforeEach(() => {
        jest.clearAllMocks();

        axios.interceptors.request.use = jest.fn();
        axios.interceptors.response.use = jest.fn();
    });

    test('ping function', async () => {
        (axios.get as jest.Mock).mockResolvedValue({ data: 'Pong' });

//         const response = await ping();

//         expect(response).toEqual('Pong');
//         expect(axios.get).toHaveBeenCalledWith('health');
    });

//     test('fetchZones function', async () => {
//         const mockFlightData = [
//             {
//                 id: 1,
//                 flight_code: "ABC123",
//                 origin: "City A",
//                 destination: "City X",
//                 departure_time: "2023-10-30 10:00 AM",
//                 arrival_time: "2023-10-30 12:00 PM",
//                 gate: "A1",
//                 status: "On Time"
//             },
//             {
//                 id: 2,
//                 flight_code: "XYZ789",
//                 origin: "City B",
//                 destination: "City Y",
//                 departure_time: "2023-10-31 01:30 PM",
//                 arrival_time: "2023-10-31 02:30 PM",
//                 gate: "B2",
//                 status: "Delayed"
//             },
//         ];


//         (axios.get as jest.Mock).mockResolvedValue({ data: mockFlightData });

//         const origin = 'TestOrigin';
//         const destination = 'TestDestination';
//         const lastUpdate = '2023-01-01T00:00:00Z';

//         const response = await fetchZones(origin, destination, lastUpdate);

//         expect(response).toEqual(mockFlightData);
//         expect(axios.get).toHaveBeenCalledWith(
//             `flights?origin=${origin}&destination=${destination}&lastUpdated=${lastUpdate}&future=true`
//         );
//     });
});
