@rudderstack/integrations-lib
Version:
51 lines • 8.7 kB
JavaScript
;
// Generated by CodiumAI
Object.defineProperty(exports, "__esModule", { value: true });
const errors_1 = require("../errors");
const axios_client_1 = require("./clients/axios_client");
const factory_1 = require("./factory");
describe('getHttpClient', () => {
// Tests that getHttpClient returns an instance of AxiosClient when name is ClientNames.Axios and options are not provided
it('should return an instance of AxiosClient when name is ClientNames.Axios and options are not provided', () => {
const httpClient = factory_1.HttpClientFactory.getHttpClient(factory_1.ClientNames.Axios);
expect(httpClient).toBeInstanceOf(axios_client_1.AxiosClient);
});
// Tests that getHttpClient returns an instance of AxiosClient with provided options when name is ClientNames.Axios and options are provided
it('should return an instance of AxiosClient with provided options when name is ClientNames.Axios and options are provided', () => {
const options = { timeout: 5000 };
const httpClient = factory_1.HttpClientFactory.getHttpClient(factory_1.ClientNames.Axios, options);
expect(httpClient).toBeInstanceOf(axios_client_1.AxiosClient);
// @ts-expect-error: options is not present but for testing purpose we need this to be ignored
expect(httpClient.options.timeout).toEqual(options.timeout);
});
// Tests that getHttpClient throws a PlatformError with message 'Invalid client name' when name is not a valid ClientNames enum value
it('should throw a PlatformError with message "Invalid client name" when name is not a valid ClientNames enum value', () => {
const invalidName = 'InvalidClient';
expect(() => {
factory_1.HttpClientFactory.getHttpClient(invalidName);
}).toThrowError(errors_1.PlatformError);
expect(() => {
factory_1.HttpClientFactory.getHttpClient(invalidName);
}).toThrowError('Invalid client name');
});
// Uncomment the following tests as we implement the FetchClient and XhrClient classes
// // Tests that getHttpClient returns a FetchClient instance when name is ClientNames.Fetch
// it('should return a FetchClient instance when name is ClientNames.Fetch', () => {
// jest.mock('./clients/fetch', () => ({
// FetchClient: jest.fn(),
// }));
// const { FetchClient } = require('./clients/fetch');
// const httpClient = HttpClientFactory.getHttpClient(ClientNames.Fetch);
// expect(httpClient).toBe(FetchClient);
// });
// // Tests that getHttpClient returns an XhrClient instance when name is ClientNames.Xhr
// it('should return an XhrClient instance when name is ClientNames.Xhr', () => {
// jest.mock('./clients/xhr', () => ({
// XhrClient: jest.fn(),
// }));
// const { XhrClient } = require('./clients/xhr');
// const httpClient = HttpClientFactory.getHttpClient(ClientNames.Xhr);
// expect(httpClient).toBe(XhrClient);
// });
});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFjdG9yeS50ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL25ldHdvcmsvZmFjdG9yeS50ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSx3QkFBd0I7O0FBRXhCLHNDQUEwQztBQUMxQyx5REFBcUQ7QUFDckQsdUNBQTJEO0FBRTNELFFBQVEsQ0FBQyxlQUFlLEVBQUUsR0FBRyxFQUFFO0lBQzdCLDBIQUEwSDtJQUMxSCxFQUFFLENBQUMsc0dBQXNHLEVBQUUsR0FBRyxFQUFFO1FBQzlHLE1BQU0sVUFBVSxHQUFHLDJCQUFpQixDQUFDLGFBQWEsQ0FBQyxxQkFBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3RFLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxjQUFjLENBQUMsMEJBQVcsQ0FBQyxDQUFDO0lBQ2pELENBQUMsQ0FBQyxDQUFDO0lBRUgsNElBQTRJO0lBQzVJLEVBQUUsQ0FBQyx3SEFBd0gsRUFBRSxHQUFHLEVBQUU7UUFDaEksTUFBTSxPQUFPLEdBQUcsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUM7UUFDbEMsTUFBTSxVQUFVLEdBQUcsMkJBQWlCLENBQUMsYUFBYSxDQUFDLHFCQUFXLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQy9FLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxjQUFjLENBQUMsMEJBQVcsQ0FBQyxDQUFDO1FBQy9DLDhGQUE4RjtRQUM5RixNQUFNLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzlELENBQUMsQ0FBQyxDQUFDO0lBRUgscUlBQXFJO0lBQ3JJLEVBQUUsQ0FBQyxpSEFBaUgsRUFBRSxHQUFHLEVBQUU7UUFDekgsTUFBTSxXQUFXLEdBQUcsZUFBZSxDQUFDO1FBQ3BDLE1BQU0sQ0FBQyxHQUFHLEVBQUU7WUFDViwyQkFBaUIsQ0FBQyxhQUFhLENBQUMsV0FBMEIsQ0FBQyxDQUFDO1FBQzlELENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxzQkFBYSxDQUFDLENBQUM7UUFDL0IsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUNWLDJCQUFpQixDQUFDLGFBQWEsQ0FBQyxXQUEwQixDQUFDLENBQUM7UUFDOUQsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLHFCQUFxQixDQUFDLENBQUM7SUFDekMsQ0FBQyxDQUFDLENBQUM7SUFFSCxzRkFBc0Y7SUFDdEYsNEZBQTRGO0lBQzVGLG9GQUFvRjtJQUNwRiwwQ0FBMEM7SUFDMUMsOEJBQThCO0lBQzlCLFNBQVM7SUFDVCx3REFBd0Q7SUFDeEQsMkVBQTJFO0lBQzNFLDBDQUEwQztJQUMxQyxNQUFNO0lBRU4seUZBQXlGO0lBQ3pGLGlGQUFpRjtJQUNqRix3Q0FBd0M7SUFDeEMsNEJBQTRCO0lBQzVCLFNBQVM7SUFDVCxvREFBb0Q7SUFDcEQseUVBQXlFO0lBQ3pFLHdDQUF3QztJQUN4QyxNQUFNO0FBQ1IsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBHZW5lcmF0ZWQgYnkgQ29kaXVtQUlcblxuaW1wb3J0IHsgUGxhdGZvcm1FcnJvciB9IGZyb20gJy4uL2Vycm9ycyc7XG5pbXBvcnQgeyBBeGlvc0NsaWVudCB9IGZyb20gJy4vY2xpZW50cy9heGlvc19jbGllbnQnO1xuaW1wb3J0IHsgQ2xpZW50TmFtZXMsIEh0dHBDbGllbnRGYWN0b3J5IH0gZnJvbSAnLi9mYWN0b3J5JztcblxuZGVzY3JpYmUoJ2dldEh0dHBDbGllbnQnLCAoKSA9PiB7XG4gIC8vIFRlc3RzIHRoYXQgZ2V0SHR0cENsaWVudCByZXR1cm5zIGFuIGluc3RhbmNlIG9mIEF4aW9zQ2xpZW50IHdoZW4gbmFtZSBpcyBDbGllbnROYW1lcy5BeGlvcyBhbmQgb3B0aW9ucyBhcmUgbm90IHByb3ZpZGVkXG4gIGl0KCdzaG91bGQgcmV0dXJuIGFuIGluc3RhbmNlIG9mIEF4aW9zQ2xpZW50IHdoZW4gbmFtZSBpcyBDbGllbnROYW1lcy5BeGlvcyBhbmQgb3B0aW9ucyBhcmUgbm90IHByb3ZpZGVkJywgKCkgPT4ge1xuICAgIGNvbnN0IGh0dHBDbGllbnQgPSBIdHRwQ2xpZW50RmFjdG9yeS5nZXRIdHRwQ2xpZW50KENsaWVudE5hbWVzLkF4aW9zKTtcbiAgICBleHBlY3QoaHR0cENsaWVudCkudG9CZUluc3RhbmNlT2YoQXhpb3NDbGllbnQpO1xuICB9KTtcblxuICAvLyBUZXN0cyB0aGF0IGdldEh0dHBDbGllbnQgcmV0dXJucyBhbiBpbnN0YW5jZSBvZiBBeGlvc0NsaWVudCB3aXRoIHByb3ZpZGVkIG9wdGlvbnMgd2hlbiBuYW1lIGlzIENsaWVudE5hbWVzLkF4aW9zIGFuZCBvcHRpb25zIGFyZSBwcm92aWRlZFxuICBpdCgnc2hvdWxkIHJldHVybiBhbiBpbnN0YW5jZSBvZiBBeGlvc0NsaWVudCB3aXRoIHByb3ZpZGVkIG9wdGlvbnMgd2hlbiBuYW1lIGlzIENsaWVudE5hbWVzLkF4aW9zIGFuZCBvcHRpb25zIGFyZSBwcm92aWRlZCcsICgpID0+IHtcbiAgICBjb25zdCBvcHRpb25zID0geyB0aW1lb3V0OiA1MDAwIH07XG4gICAgY29uc3QgaHR0cENsaWVudCA9IEh0dHBDbGllbnRGYWN0b3J5LmdldEh0dHBDbGllbnQoQ2xpZW50TmFtZXMuQXhpb3MsIG9wdGlvbnMpO1xuICAgIGV4cGVjdChodHRwQ2xpZW50KS50b0JlSW5zdGFuY2VPZihBeGlvc0NsaWVudCk7XG4gICAgLy8gQHRzLWV4cGVjdC1lcnJvcjogb3B0aW9ucyBpcyBub3QgcHJlc2VudCBidXQgZm9yIHRlc3RpbmcgcHVycG9zZSB3ZSBuZWVkIHRoaXMgdG8gYmUgaWdub3JlZFxuICAgIGV4cGVjdChodHRwQ2xpZW50Lm9wdGlvbnMudGltZW91dCkudG9FcXVhbChvcHRpb25zLnRpbWVvdXQpO1xuICB9KTtcblxuICAvLyBUZXN0cyB0aGF0IGdldEh0dHBDbGllbnQgdGhyb3dzIGEgUGxhdGZvcm1FcnJvciB3aXRoIG1lc3NhZ2UgJ0ludmFsaWQgY2xpZW50IG5hbWUnIHdoZW4gbmFtZSBpcyBub3QgYSB2YWxpZCBDbGllbnROYW1lcyBlbnVtIHZhbHVlXG4gIGl0KCdzaG91bGQgdGhyb3cgYSBQbGF0Zm9ybUVycm9yIHdpdGggbWVzc2FnZSBcIkludmFsaWQgY2xpZW50IG5hbWVcIiB3aGVuIG5hbWUgaXMgbm90IGEgdmFsaWQgQ2xpZW50TmFtZXMgZW51bSB2YWx1ZScsICgpID0+IHtcbiAgICBjb25zdCBpbnZhbGlkTmFtZSA9ICdJbnZhbGlkQ2xpZW50JztcbiAgICBleHBlY3QoKCkgPT4ge1xuICAgICAgSHR0cENsaWVudEZhY3RvcnkuZ2V0SHR0cENsaWVudChpbnZhbGlkTmFtZSBhcyBDbGllbnROYW1lcyk7XG4gICAgfSkudG9UaHJvd0Vycm9yKFBsYXRmb3JtRXJyb3IpO1xuICAgIGV4cGVjdCgoKSA9PiB7XG4gICAgICBIdHRwQ2xpZW50RmFjdG9yeS5nZXRIdHRwQ2xpZW50KGludmFsaWROYW1lIGFzIENsaWVudE5hbWVzKTtcbiAgICB9KS50b1Rocm93RXJyb3IoJ0ludmFsaWQgY2xpZW50IG5hbWUnKTtcbiAgfSk7XG5cbiAgLy8gVW5jb21tZW50IHRoZSBmb2xsb3dpbmcgdGVzdHMgYXMgd2UgaW1wbGVtZW50IHRoZSBGZXRjaENsaWVudCBhbmQgWGhyQ2xpZW50IGNsYXNzZXNcbiAgLy8gLy8gVGVzdHMgdGhhdCBnZXRIdHRwQ2xpZW50IHJldHVybnMgYSBGZXRjaENsaWVudCBpbnN0YW5jZSB3aGVuIG5hbWUgaXMgQ2xpZW50TmFtZXMuRmV0Y2hcbiAgLy8gaXQoJ3Nob3VsZCByZXR1cm4gYSBGZXRjaENsaWVudCBpbnN0YW5jZSB3aGVuIG5hbWUgaXMgQ2xpZW50TmFtZXMuRmV0Y2gnLCAoKSA9PiB7XG4gIC8vICAgamVzdC5tb2NrKCcuL2NsaWVudHMvZmV0Y2gnLCAoKSA9PiAoe1xuICAvLyAgICAgRmV0Y2hDbGllbnQ6IGplc3QuZm4oKSxcbiAgLy8gICB9KSk7XG4gIC8vICAgY29uc3QgeyBGZXRjaENsaWVudCB9ID0gcmVxdWlyZSgnLi9jbGllbnRzL2ZldGNoJyk7XG4gIC8vICAgY29uc3QgaHR0cENsaWVudCA9IEh0dHBDbGllbnRGYWN0b3J5LmdldEh0dHBDbGllbnQoQ2xpZW50TmFtZXMuRmV0Y2gpO1xuICAvLyAgIGV4cGVjdChodHRwQ2xpZW50KS50b0JlKEZldGNoQ2xpZW50KTtcbiAgLy8gfSk7XG5cbiAgLy8gLy8gVGVzdHMgdGhhdCBnZXRIdHRwQ2xpZW50IHJldHVybnMgYW4gWGhyQ2xpZW50IGluc3RhbmNlIHdoZW4gbmFtZSBpcyBDbGllbnROYW1lcy5YaHJcbiAgLy8gaXQoJ3Nob3VsZCByZXR1cm4gYW4gWGhyQ2xpZW50IGluc3RhbmNlIHdoZW4gbmFtZSBpcyBDbGllbnROYW1lcy5YaHInLCAoKSA9PiB7XG4gIC8vICAgamVzdC5tb2NrKCcuL2NsaWVudHMveGhyJywgKCkgPT4gKHtcbiAgLy8gICAgIFhockNsaWVudDogamVzdC5mbigpLFxuICAvLyAgIH0pKTtcbiAgLy8gICBjb25zdCB7IFhockNsaWVudCB9ID0gcmVxdWlyZSgnLi9jbGllbnRzL3hocicpO1xuICAvLyAgIGNvbnN0IGh0dHBDbGllbnQgPSBIdHRwQ2xpZW50RmFjdG9yeS5nZXRIdHRwQ2xpZW50KENsaWVudE5hbWVzLlhocik7XG4gIC8vICAgZXhwZWN0KGh0dHBDbGllbnQpLnRvQmUoWGhyQ2xpZW50KTtcbiAgLy8gfSk7XG59KTtcbiJdfQ==