UNPKG

@codefresh-io/cf-git-providers

Version:

An NPM module/CLI for interacting with various git providers

55 lines 2.21 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.execRetryTestWithMock = exports.generateMocksForRetryTests = exports.testRetryConfiguration = void 0; const index_1 = require("../index"); // eslint-disable-next-line @typescript-eslint/no-var-requires const request = require('request-promise'); function testRetryConfiguration(retryCount, statusCode) { return [ { retryCount: retryCount, delayInMs: 10, backoffFactor: 2, statusCode: statusCode, maxDelayMS: 200, } ]; } exports.testRetryConfiguration = testRetryConfiguration; function generateMocksForRetryTests(retryCount, reqMock, successAfter, reqSuccessMock, preRunMocks) { request.mockReset(); if (preRunMocks) { for (let i = 0; i < preRunMocks.length; i++) { request.mockImplementationOnce(preRunMocks[i]); } } for (let i = 0; i < retryCount + 1; i++) { if (i === successAfter - 1) { request.mockImplementationOnce(reqSuccessMock); break; } else { request.mockImplementationOnce(reqMock); } } } exports.generateMocksForRetryTests = generateMocksForRetryTests; async function execRetryTestWithMock(client, retries, retryErrorCode, reqMock, successAttempt, successMock, responseErrorCode, preMocks) { const retryConfig = testRetryConfiguration(retries, retryErrorCode); generateMocksForRetryTests(retries, reqMock, successAttempt, successMock, preMocks); let numOfExpectedExecutions; if (responseErrorCode > 0 && responseErrorCode !== retryErrorCode) { numOfExpectedExecutions = 1; } else if (successAttempt > 0) { numOfExpectedExecutions = successAttempt; } else { numOfExpectedExecutions = retryConfig[0].retryCount + 1; } const opts = { owner: '~joe', repo: 'some-repo', ref: 'master', path: 'some-path', retryConfig: retryConfig }; const result = await (0, index_1.to)(client.fetchRawFile(opts)); return [result, opts, numOfExpectedExecutions]; } exports.execRetryTestWithMock = execRetryTestWithMock; //# sourceMappingURL=retry-test-helper.js.map