@allgroup/yandex-taxi-fleet-api
Version:
Unofficial yandex taxi fleet api library
66 lines (56 loc) • 2.49 kB
text/typescript
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,
},
},
);
});
});
});