UNPKG

filestack-js

Version:

Official JavaScript library for Filestack

60 lines (58 loc) 8.34 kB
/* * Copyright (c) 2018 by Filestack * Some rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ import { shouldRetry } from './shouldRetry'; import { FsRequestErrorCode, FsRequestError } from '../error'; var testResponse = function (code) { if (code === void 0) { code = 200; } return ({ status: code, statusText: 'test', headers: {}, data: {}, config: {}, }); }; describe('Request/Helpers/shouldRetry', function () { describe('shouldRetry', function () { it('should retry on network error', function () { expect(shouldRetry(new FsRequestError('', null, testResponse(), FsRequestErrorCode.NETWORK))).toEqual(true); }); it('should retry on server error', function () { expect(shouldRetry(new FsRequestError('', null, testResponse(), FsRequestErrorCode.SERVER))).toEqual(true); }); it('should retry on server error', function () { expect(shouldRetry(new FsRequestError('', null, testResponse(), FsRequestErrorCode.TIMEOUT))).toEqual(true); }); it('should retry on request 5xx code', function () { // @ts-ignore expect(shouldRetry(new FsRequestError('', null, testResponse(504), FsRequestErrorCode.OTHER))).toEqual(true); }); it('should not retry on 4xx codes', function () { // @ts-ignore expect(shouldRetry(new FsRequestError('', null, testResponse(404), FsRequestErrorCode.REQUEST))).toEqual(false); }); it('should not retry on request error', function () { // @ts-ignore expect(shouldRetry(new FsRequestError('', null, testResponse(), FsRequestErrorCode.REQUEST))).toEqual(false); }); it('should not retry on request aborted', function () { // @ts-ignore expect(shouldRetry(new FsRequestError('', null, testResponse(), FsRequestErrorCode.ABORTED))).toEqual(false); }); }); }); //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvcmVxdWVzdC9oZWxwZXJzL3Nob3VsZFJldHJ5LnNwZWMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBRUgsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsY0FBYyxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBRzlELElBQU0sWUFBWSxHQUFHLFVBQUMsSUFBa0I7SUFBbEIscUJBQUEsRUFBQSxVQUFrQjtJQUFpQixPQUFBLENBQUM7UUFDeEQsTUFBTSxFQUFFLElBQUk7UUFDWixVQUFVLEVBQUUsTUFBTTtRQUNsQixPQUFPLEVBQUUsRUFBRTtRQUNYLElBQUksRUFBRSxFQUFFO1FBQ1IsTUFBTSxFQUFFLEVBQUU7S0FDWCxDQUFDO0FBTnVELENBTXZELENBQUM7QUFFSCxRQUFRLENBQUMsNkJBQTZCLEVBQUU7SUFDdEMsUUFBUSxDQUFDLGFBQWEsRUFBRTtRQUN0QixFQUFFLENBQUMsK0JBQStCLEVBQUU7WUFDbEMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxJQUFJLGNBQWMsQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRSxFQUFFLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDOUcsQ0FBQyxDQUFDLENBQUM7UUFFSCxFQUFFLENBQUMsOEJBQThCLEVBQUU7WUFDakMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxJQUFJLGNBQWMsQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRSxFQUFFLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDN0csQ0FBQyxDQUFDLENBQUM7UUFFSCxFQUFFLENBQUMsOEJBQThCLEVBQUU7WUFDakMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxJQUFJLGNBQWMsQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRSxFQUFFLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDOUcsQ0FBQyxDQUFDLENBQUM7UUFFSCxFQUFFLENBQUMsa0NBQWtDLEVBQUU7WUFDckMsYUFBYTtZQUNiLE1BQU0sQ0FBQyxXQUFXLENBQUMsSUFBSSxjQUFjLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxZQUFZLENBQUMsR0FBRyxDQUFDLEVBQUUsa0JBQWtCLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMvRyxDQUFDLENBQUMsQ0FBQztRQUVILEVBQUUsQ0FBQywrQkFBK0IsRUFBRTtZQUNsQyxhQUFhO1lBQ2IsTUFBTSxDQUFDLFdBQVcsQ0FBQyxJQUFJLGNBQWMsQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLFlBQVksQ0FBQyxHQUFHLENBQUMsRUFBRSxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2xILENBQUMsQ0FBQyxDQUFDO1FBRUgsRUFBRSxDQUFDLG1DQUFtQyxFQUFFO1lBQ3RDLGFBQWE7WUFDYixNQUFNLENBQUMsV0FBVyxDQUFDLElBQUksY0FBYyxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFFLEVBQUUsa0JBQWtCLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMvRyxDQUFDLENBQUMsQ0FBQztRQUVILEVBQUUsQ0FBQyxxQ0FBcUMsRUFBRTtZQUN4QyxhQUFhO1lBQ2IsTUFBTSxDQUFDLFdBQVcsQ0FBQyxJQUFJLGNBQWMsQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRSxFQUFFLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDL0csQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwiZmlsZSI6ImxpYi9yZXF1ZXN0L2hlbHBlcnMvc2hvdWxkUmV0cnkuc3BlYy5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTggYnkgRmlsZXN0YWNrXG4gKiBTb21lIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHsgc2hvdWxkUmV0cnkgfSBmcm9tICcuL3Nob3VsZFJldHJ5JztcbmltcG9ydCB7IEZzUmVxdWVzdEVycm9yQ29kZSwgRnNSZXF1ZXN0RXJyb3IgfSBmcm9tICcuLi9lcnJvcic7XG5pbXBvcnQgeyBGc1Jlc3BvbnNlIH0gZnJvbSAnLi8uLi90eXBlcyc7XG5cbmNvbnN0IHRlc3RSZXNwb25zZSA9IChjb2RlOiBudW1iZXIgPSAyMDApOiBGc1Jlc3BvbnNlID0+ICh7XG4gIHN0YXR1czogY29kZSxcbiAgc3RhdHVzVGV4dDogJ3Rlc3QnLFxuICBoZWFkZXJzOiB7fSxcbiAgZGF0YToge30sXG4gIGNvbmZpZzoge30sXG59KTtcblxuZGVzY3JpYmUoJ1JlcXVlc3QvSGVscGVycy9zaG91bGRSZXRyeScsICgpID0+IHtcbiAgZGVzY3JpYmUoJ3Nob3VsZFJldHJ5JywgKCkgPT4ge1xuICAgIGl0KCdzaG91bGQgcmV0cnkgb24gbmV0d29yayBlcnJvcicsICgpID0+IHtcbiAgICAgIGV4cGVjdChzaG91bGRSZXRyeShuZXcgRnNSZXF1ZXN0RXJyb3IoJycsIG51bGwsIHRlc3RSZXNwb25zZSgpLCBGc1JlcXVlc3RFcnJvckNvZGUuTkVUV09SSykpKS50b0VxdWFsKHRydWUpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCByZXRyeSBvbiBzZXJ2ZXIgZXJyb3InLCAoKSA9PiB7XG4gICAgICBleHBlY3Qoc2hvdWxkUmV0cnkobmV3IEZzUmVxdWVzdEVycm9yKCcnLCBudWxsLCB0ZXN0UmVzcG9uc2UoKSwgRnNSZXF1ZXN0RXJyb3JDb2RlLlNFUlZFUikpKS50b0VxdWFsKHRydWUpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCByZXRyeSBvbiBzZXJ2ZXIgZXJyb3InLCAoKSA9PiB7XG4gICAgICBleHBlY3Qoc2hvdWxkUmV0cnkobmV3IEZzUmVxdWVzdEVycm9yKCcnLCBudWxsLCB0ZXN0UmVzcG9uc2UoKSwgRnNSZXF1ZXN0RXJyb3JDb2RlLlRJTUVPVVQpKSkudG9FcXVhbCh0cnVlKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgcmV0cnkgb24gcmVxdWVzdCA1eHggY29kZScsICgpID0+IHtcbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIGV4cGVjdChzaG91bGRSZXRyeShuZXcgRnNSZXF1ZXN0RXJyb3IoJycsIG51bGwsIHRlc3RSZXNwb25zZSg1MDQpLCBGc1JlcXVlc3RFcnJvckNvZGUuT1RIRVIpKSkudG9FcXVhbCh0cnVlKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgbm90IHJldHJ5IG9uIDR4eCBjb2RlcycsICgpID0+IHtcbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIGV4cGVjdChzaG91bGRSZXRyeShuZXcgRnNSZXF1ZXN0RXJyb3IoJycsIG51bGwsIHRlc3RSZXNwb25zZSg0MDQpLCBGc1JlcXVlc3RFcnJvckNvZGUuUkVRVUVTVCkpKS50b0VxdWFsKGZhbHNlKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgbm90IHJldHJ5IG9uIHJlcXVlc3QgZXJyb3InLCAoKSA9PiB7XG4gICAgICAvLyBAdHMtaWdub3JlXG4gICAgICBleHBlY3Qoc2hvdWxkUmV0cnkobmV3IEZzUmVxdWVzdEVycm9yKCcnLCBudWxsLCB0ZXN0UmVzcG9uc2UoKSwgRnNSZXF1ZXN0RXJyb3JDb2RlLlJFUVVFU1QpKSkudG9FcXVhbChmYWxzZSk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIG5vdCByZXRyeSBvbiByZXF1ZXN0IGFib3J0ZWQnLCAoKSA9PiB7XG4gICAgICAvLyBAdHMtaWdub3JlXG4gICAgICBleHBlY3Qoc2hvdWxkUmV0cnkobmV3IEZzUmVxdWVzdEVycm9yKCcnLCBudWxsLCB0ZXN0UmVzcG9uc2UoKSwgRnNSZXF1ZXN0RXJyb3JDb2RlLkFCT1JURUQpKSkudG9FcXVhbChmYWxzZSk7XG4gICAgfSk7XG4gIH0pO1xufSk7XG4iXX0=