UNPKG

@elastic.io/maester-client

Version:
66 lines (65 loc) 2.94 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); /* eslint-disable no-unused-expressions */ const nock_1 = __importDefault(require("nock")); const chai_1 = require("chai"); const get_stream_1 = __importDefault(require("get-stream")); const StorageClient_1 = require("../src/StorageClient"); const helpers_1 = require("./helpers"); const interfaces_1 = require("../src/interfaces"); describe('Storage Client', () => { const config = { uri: 'https://ma.es.ter', jwtSecret: 'jwt', userAgent: 'userAgent' }; const storageClient = new StorageClient_1.StorageClient(config); const data = { test: 'test' }; const responseData = { contentLength: 'meta.contentLength', contentType: 'meta.contentType', createdAt: 'meta.createdAt', md5: 'meta.md5Hash', objectId: 'obj.id', metadata: 'meta.userMetadata', }; it(`should fail after ${interfaces_1.RETRIES_COUNT.defaultValue} retries`, async () => { const storageClientCalls = (0, nock_1.default)(config.uri) .matchHeader('authorization', `Bearer ${config.jwtSecret}`) .get('/objects/1') .times(3) .reply(520); await (0, chai_1.expect)(storageClient.get('1', {})).to.be.rejectedWith('Server error during request'); (0, chai_1.expect)(storageClientCalls.isDone()).to.be.true; }); it('should retry get request 3 times on errors', async () => { const storageClientCalls = (0, nock_1.default)(config.uri) .matchHeader('authorization', `Bearer ${config.jwtSecret}`) .get('/objects/1') .reply(500) .get('/objects/1') .replyWithError({ code: 'ECONNRESET' }) .get('/objects/1') .reply(200, (0, helpers_1.streamFromObject)(data)); const { data: stream } = await storageClient.get('1', {}); const response = await (0, get_stream_1.default)(stream); (0, chai_1.expect)(JSON.parse(response)).to.be.deep.equal(data); (0, chai_1.expect)(storageClientCalls.isDone()).to.be.true; }); it('should retry post request 3 times on errors', async () => { const storageClientCalls = (0, nock_1.default)(config.uri) .matchHeader('authorization', `Bearer ${config.jwtSecret}`) .post('/objects') .replyWithError({ code: 'ECONNREFUSED' }) .post('/objects') .reply(505) .post('/objects') .reply(200, responseData); const response = await storageClient.post(helpers_1.streamFromObject.bind({}, data)); (0, chai_1.expect)(response.data).to.be.deep.equal(responseData); (0, chai_1.expect)(storageClientCalls.isDone()).to.be.true; }); });