import axios from "axios";
import { assert, describe, it } from "vitest";

type config = {
  "clientId": string,
  "apiKey": string,
  "apiKeyId": number,
  "apiKeyName": string,
  "parkId": string
}

describe('call to https://fleet-api.taxi.yandex.net/v1/parks/orders/list', () => {
  const configs : config[] = require('../../secrets/baiga.configs.json')

  configs.forEach(config => {
    it(`should be 200 OK for "${config.apiKeyName}"`, async () => {

      const now = new Date();
      const anHourAgo = new Date();
      anHourAgo.setHours(now.getHours() - 1);

      const result = await axios.post('https://fleet-api.taxi.yandex.net/v1/parks/orders/list', {
        "limit": 100,
        "query": {
            "park": {
                "driver_profile": {
                    "id": "694d0ff742934372bf0a3c23e0fe43cf"
                },
                "id": config.parkId,
                "order": {
                    "booked_at": {
                        "from": anHourAgo.toISOString(),
                        "to": now.toISOString()
                    },
                    "statuses": [
                        "complete"
                    ]
                }
            }
        }
    }, {
        headers: {
          'X-API-Key': config.apiKey,
          'X-Client-ID': config.clientId
        }
      });
      assert(result.status == 200, `Response code is ${result.statusText} ${result.statusText}}`);
    })
  });

});