UNPKG

filestack-js

Version:

Official JavaScript library for Filestack

62 lines (60 loc) 8.62 kB
"use strict"; /* * 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. */ Object.defineProperty(exports, "__esModule", { value: true }); var shouldRetry_1 = require("./shouldRetry"); var error_1 = require("../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((0, shouldRetry_1.shouldRetry)(new error_1.FsRequestError('', null, testResponse(), error_1.FsRequestErrorCode.NETWORK))).toEqual(true); }); it('should retry on server error', function () { expect((0, shouldRetry_1.shouldRetry)(new error_1.FsRequestError('', null, testResponse(), error_1.FsRequestErrorCode.SERVER))).toEqual(true); }); it('should retry on server error', function () { expect((0, shouldRetry_1.shouldRetry)(new error_1.FsRequestError('', null, testResponse(), error_1.FsRequestErrorCode.TIMEOUT))).toEqual(true); }); it('should retry on request 5xx code', function () { // @ts-ignore expect((0, shouldRetry_1.shouldRetry)(new error_1.FsRequestError('', null, testResponse(504), error_1.FsRequestErrorCode.OTHER))).toEqual(true); }); it('should not retry on 4xx codes', function () { // @ts-ignore expect((0, shouldRetry_1.shouldRetry)(new error_1.FsRequestError('', null, testResponse(404), error_1.FsRequestErrorCode.REQUEST))).toEqual(false); }); it('should not retry on request error', function () { // @ts-ignore expect((0, shouldRetry_1.shouldRetry)(new error_1.FsRequestError('', null, testResponse(), error_1.FsRequestErrorCode.REQUEST))).toEqual(false); }); it('should not retry on request aborted', function () { // @ts-ignore expect((0, shouldRetry_1.shouldRetry)(new error_1.FsRequestError('', null, testResponse(), error_1.FsRequestErrorCode.ABORTED))).toEqual(false); }); }); }); //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvcmVxdWVzdC9oZWxwZXJzL3Nob3VsZFJldHJ5LnNwZWMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7Ozs7Ozs7Ozs7R0FlRzs7QUFFSCw2Q0FBNEM7QUFDNUMsa0NBQThEO0FBRzlELElBQU0sWUFBWSxHQUFHLFVBQUMsSUFBa0I7SUFBbEIscUJBQUEsRUFBQSxVQUFrQjtJQUFpQixPQUFBLENBQUM7UUFDeEQsTUFBTSxFQUFFLElBQUk7UUFDWixVQUFVLEVBQUUsTUFBTTtRQUNsQixPQUFPLEVBQUUsRUFBRTtRQUNYLElBQUksRUFBRSxFQUFFO1FBQ1IsTUFBTSxFQUFFLEVBQUU7S0FDWCxDQUFDO0FBTnVELENBTXZELENBQUM7QUFFSCxRQUFRLENBQUMsNkJBQTZCLEVBQUU7SUFDdEMsUUFBUSxDQUFDLGFBQWEsRUFBRTtRQUN0QixFQUFFLENBQUMsK0JBQStCLEVBQUU7WUFDbEMsTUFBTSxDQUFDLElBQUEseUJBQVcsRUFBQyxJQUFJLHNCQUFjLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxZQUFZLEVBQUUsRUFBRSwwQkFBa0IsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzlHLENBQUMsQ0FBQyxDQUFDO1FBRUgsRUFBRSxDQUFDLDhCQUE4QixFQUFFO1lBQ2pDLE1BQU0sQ0FBQyxJQUFBLHlCQUFXLEVBQUMsSUFBSSxzQkFBYyxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFFLEVBQUUsMEJBQWtCLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM3RyxDQUFDLENBQUMsQ0FBQztRQUVILEVBQUUsQ0FBQyw4QkFBOEIsRUFBRTtZQUNqQyxNQUFNLENBQUMsSUFBQSx5QkFBVyxFQUFDLElBQUksc0JBQWMsQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRSxFQUFFLDBCQUFrQixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDOUcsQ0FBQyxDQUFDLENBQUM7UUFFSCxFQUFFLENBQUMsa0NBQWtDLEVBQUU7WUFDckMsYUFBYTtZQUNiLE1BQU0sQ0FBQyxJQUFBLHlCQUFXLEVBQUMsSUFBSSxzQkFBYyxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsWUFBWSxDQUFDLEdBQUcsQ0FBQyxFQUFFLDBCQUFrQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDL0csQ0FBQyxDQUFDLENBQUM7UUFFSCxFQUFFLENBQUMsK0JBQStCLEVBQUU7WUFDbEMsYUFBYTtZQUNiLE1BQU0sQ0FBQyxJQUFBLHlCQUFXLEVBQUMsSUFBSSxzQkFBYyxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsWUFBWSxDQUFDLEdBQUcsQ0FBQyxFQUFFLDBCQUFrQixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbEgsQ0FBQyxDQUFDLENBQUM7UUFFSCxFQUFFLENBQUMsbUNBQW1DLEVBQUU7WUFDdEMsYUFBYTtZQUNiLE1BQU0sQ0FBQyxJQUFBLHlCQUFXLEVBQUMsSUFBSSxzQkFBYyxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFFLEVBQUUsMEJBQWtCLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMvRyxDQUFDLENBQUMsQ0FBQztRQUVILEVBQUUsQ0FBQyxxQ0FBcUMsRUFBRTtZQUN4QyxhQUFhO1lBQ2IsTUFBTSxDQUFDLElBQUEseUJBQVcsRUFBQyxJQUFJLHNCQUFjLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxZQUFZLEVBQUUsRUFBRSwwQkFBa0IsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQy9HLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQyIsImZpbGUiOiJsaWIvcmVxdWVzdC9oZWxwZXJzL3Nob3VsZFJldHJ5LnNwZWMuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDE4IGJ5IEZpbGVzdGFja1xuICogU29tZSByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7IHNob3VsZFJldHJ5IH0gZnJvbSAnLi9zaG91bGRSZXRyeSc7XG5pbXBvcnQgeyBGc1JlcXVlc3RFcnJvckNvZGUsIEZzUmVxdWVzdEVycm9yIH0gZnJvbSAnLi4vZXJyb3InO1xuaW1wb3J0IHsgRnNSZXNwb25zZSB9IGZyb20gJy4vLi4vdHlwZXMnO1xuXG5jb25zdCB0ZXN0UmVzcG9uc2UgPSAoY29kZTogbnVtYmVyID0gMjAwKTogRnNSZXNwb25zZSA9PiAoe1xuICBzdGF0dXM6IGNvZGUsXG4gIHN0YXR1c1RleHQ6ICd0ZXN0JyxcbiAgaGVhZGVyczoge30sXG4gIGRhdGE6IHt9LFxuICBjb25maWc6IHt9LFxufSk7XG5cbmRlc2NyaWJlKCdSZXF1ZXN0L0hlbHBlcnMvc2hvdWxkUmV0cnknLCAoKSA9PiB7XG4gIGRlc2NyaWJlKCdzaG91bGRSZXRyeScsICgpID0+IHtcbiAgICBpdCgnc2hvdWxkIHJldHJ5IG9uIG5ldHdvcmsgZXJyb3InLCAoKSA9PiB7XG4gICAgICBleHBlY3Qoc2hvdWxkUmV0cnkobmV3IEZzUmVxdWVzdEVycm9yKCcnLCBudWxsLCB0ZXN0UmVzcG9uc2UoKSwgRnNSZXF1ZXN0RXJyb3JDb2RlLk5FVFdPUkspKSkudG9FcXVhbCh0cnVlKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgcmV0cnkgb24gc2VydmVyIGVycm9yJywgKCkgPT4ge1xuICAgICAgZXhwZWN0KHNob3VsZFJldHJ5KG5ldyBGc1JlcXVlc3RFcnJvcignJywgbnVsbCwgdGVzdFJlc3BvbnNlKCksIEZzUmVxdWVzdEVycm9yQ29kZS5TRVJWRVIpKSkudG9FcXVhbCh0cnVlKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgcmV0cnkgb24gc2VydmVyIGVycm9yJywgKCkgPT4ge1xuICAgICAgZXhwZWN0KHNob3VsZFJldHJ5KG5ldyBGc1JlcXVlc3RFcnJvcignJywgbnVsbCwgdGVzdFJlc3BvbnNlKCksIEZzUmVxdWVzdEVycm9yQ29kZS5USU1FT1VUKSkpLnRvRXF1YWwodHJ1ZSk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIHJldHJ5IG9uIHJlcXVlc3QgNXh4IGNvZGUnLCAoKSA9PiB7XG4gICAgICAvLyBAdHMtaWdub3JlXG4gICAgICBleHBlY3Qoc2hvdWxkUmV0cnkobmV3IEZzUmVxdWVzdEVycm9yKCcnLCBudWxsLCB0ZXN0UmVzcG9uc2UoNTA0KSwgRnNSZXF1ZXN0RXJyb3JDb2RlLk9USEVSKSkpLnRvRXF1YWwodHJ1ZSk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIG5vdCByZXRyeSBvbiA0eHggY29kZXMnLCAoKSA9PiB7XG4gICAgICAvLyBAdHMtaWdub3JlXG4gICAgICBleHBlY3Qoc2hvdWxkUmV0cnkobmV3IEZzUmVxdWVzdEVycm9yKCcnLCBudWxsLCB0ZXN0UmVzcG9uc2UoNDA0KSwgRnNSZXF1ZXN0RXJyb3JDb2RlLlJFUVVFU1QpKSkudG9FcXVhbChmYWxzZSk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIG5vdCByZXRyeSBvbiByZXF1ZXN0IGVycm9yJywgKCkgPT4ge1xuICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgZXhwZWN0KHNob3VsZFJldHJ5KG5ldyBGc1JlcXVlc3RFcnJvcignJywgbnVsbCwgdGVzdFJlc3BvbnNlKCksIEZzUmVxdWVzdEVycm9yQ29kZS5SRVFVRVNUKSkpLnRvRXF1YWwoZmFsc2UpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBub3QgcmV0cnkgb24gcmVxdWVzdCBhYm9ydGVkJywgKCkgPT4ge1xuICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgZXhwZWN0KHNob3VsZFJldHJ5KG5ldyBGc1JlcXVlc3RFcnJvcignJywgbnVsbCwgdGVzdFJlc3BvbnNlKCksIEZzUmVxdWVzdEVycm9yQ29kZS5BQk9SVEVEKSkpLnRvRXF1YWwoZmFsc2UpO1xuICAgIH0pO1xuICB9KTtcbn0pO1xuIl19