UNPKG

@allgroup/yandex-taxi-fleet-api

Version:

Unofficial yandex taxi fleet api library

66 lines (56 loc) 2.49 kB
import { FleetTaxiYandexRepository } from './fleet-taxi-yandex-repository'; import { HttpClientFactory } from './interfaces/http-client-factory'; import { Configuration } from './models/configuration'; import { DriversListRequest } from './models/driver/drivers-list-request'; import { AddTransactionQueryRequest } from './models/transaction/add-transaction-query-request'; import { describe, it, expect, vi, beforeEach } from 'vitest'; // Correcting the mock factory // @ts-expect-error mock object const mockHttpClientFactory: HttpClientFactory = () => ({ post: vi.fn().mockImplementation((url, requestBody) => { // Mocking a response structure similar to Axios return Promise.resolve({ data: { url, requestBody } }); }), }); describe('FleetTaxiYandexRepository', () => { let repository: FleetTaxiYandexRepository; let mockHttp: ReturnType<HttpClientFactory>; beforeEach(() => { const mockConfig: Partial<Configuration> = { fleetApiEndpoint: 'https://fleet-api.taxi.yandex.net', fleetParkId: 'testParkId', fleetApiKey: 'testApiKey', fleetClientId: 'testClientId', }; mockHttp = mockHttpClientFactory(); repository = new FleetTaxiYandexRepository(mockConfig as Configuration, () => mockHttp); }); describe('postGetDriverProfilesList', () => { it('should request driver-profiles endpoint on fleet.taxi.yandex.net', async () => { // @ts-expect-error mock object const mockRequestBody: DriversListRequest = {}; await repository.postGetDriverProfilesList(mockRequestBody); expect(mockHttp.post).toHaveBeenCalledWith( 'https://fleet-api.taxi.yandex.net/v1/parks/driver-profiles/list', mockRequestBody, ); }); }); describe('postAddDriverProfilesTransactions', () => { it('should request driver profiles transactions endpoint on fleet.taxi.yandex.net', async () => { // @ts-expect-error mock object const mockRequestBody: AddTransactionQueryRequest = {}; const idempotencyToken = 'testToken'; await repository.postAddDriverProfilesTransactions(idempotencyToken, mockRequestBody); expect(mockHttp.post).toHaveBeenCalledWith( 'https://fleet-api.taxi.yandex.net/v2/parks/driver-profiles/transactions', mockRequestBody, { headers: { 'X-Idempotency-Token': idempotencyToken, }, }, ); }); }); });