UNPKG

filestack-js

Version:

Official JavaScript library for Filestack

130 lines (128 loc) 14.4 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 tslib_1 = require("tslib"); var nock_1 = tslib_1.__importDefault(require("nock")); var dispatch_1 = require("./dispatch"); var http_1 = require("./adapters/http"); var types_1 = require("./types"); var error_1 = require("./error"); jest.mock('./adapters/http'); describe('Request/Dispatch', function () { afterEach(function () { nock_1.default.cleanAll(); }); var adapter = new http_1.HttpAdapter(); var url = 'https://filestack.com'; var configBase = { url: url, method: types_1.FsHttpMethod.GET, }; var fsResponseBase = { status: 400, statusText: 'error', headers: null, data: null, config: configBase, }; describe('dispatch request', function () { it('should return req', function () { return tslib_1.__awaiter(void 0, void 0, void 0, function () { var dispatch, req; return tslib_1.__generator(this, function (_a) { switch (_a.label) { case 0: jest.spyOn(adapter, 'request').mockImplementation(function () { return Promise.resolve({ status: 200, headers: {}, data: {}, config: {}, statusText: '' }); }); dispatch = new dispatch_1.Dispatch(adapter); req = { url: url, method: types_1.FsHttpMethod.GET, headers: {} }; return [4 /*yield*/, dispatch.request(req)]; case 1: _a.sent(); expect(adapter.request).toHaveBeenCalledWith(req); return [2 /*return*/]; } }); }); }); }); describe('dispatch request catch', function () { it('should return config base', function () { return tslib_1.__awaiter(void 0, void 0, void 0, function () { var error, dispatch; return tslib_1.__generator(this, function (_a) { switch (_a.label) { case 0: error = new error_1.FsRequestError('error msg', configBase, fsResponseBase); jest.spyOn(adapter, 'request').mockImplementation(function () { return Promise.reject(error); }); dispatch = new dispatch_1.Dispatch(adapter); return [4 /*yield*/, dispatch.request(configBase).catch(function (err) { return err; })]; case 1: _a.sent(); expect(adapter.request).toHaveBeenCalledWith(configBase); return [2 /*return*/]; } }); }); }); it('should return config base', function () { return tslib_1.__awaiter(void 0, void 0, void 0, function () { var error, dispatch; return tslib_1.__generator(this, function (_a) { switch (_a.label) { case 0: fsResponseBase.status = 500; error = new error_1.FsRequestError('error msg', configBase, fsResponseBase, error_1.FsRequestErrorCode.NETWORK); jest.spyOn(adapter, 'request').mockImplementation(function () { return Promise.reject(error); }); dispatch = new dispatch_1.Dispatch(adapter); return [4 /*yield*/, dispatch.request(configBase).catch(function (err) { return err; })]; case 1: _a.sent(); expect(adapter.request).toHaveBeenCalledWith(configBase); return [2 /*return*/]; } }); }); }); it('should return config', function () { return tslib_1.__awaiter(void 0, void 0, void 0, function () { var config, error, dispatch; return tslib_1.__generator(this, function (_a) { switch (_a.label) { case 0: config = { url: url, method: types_1.FsHttpMethod.GET, headers: {}, retry: { retry: 3, }, }; fsResponseBase.status = 500; error = new error_1.FsRequestError('error msg', config, fsResponseBase, error_1.FsRequestErrorCode.NETWORK); jest.spyOn(adapter, 'request').mockImplementation(function () { return Promise.reject(error); }); dispatch = new dispatch_1.Dispatch(adapter); return [4 /*yield*/, dispatch.request(config).catch(function (err) { return err; })]; case 1: _a.sent(); expect(adapter.request).toHaveBeenCalledWith(config); return [2 /*return*/]; } }); }); }); }); }); //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvcmVxdWVzdC9kaXNwYXRjaC5zcGVjLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7OztBQUVILHNEQUF3QjtBQUN4Qix1Q0FBc0M7QUFDdEMsd0NBQThDO0FBQzlDLGlDQUF1QztBQUN2QyxpQ0FBNkQ7QUFFN0QsSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0FBRTdCLFFBQVEsQ0FBQyxrQkFBa0IsRUFBRTtJQUMzQixTQUFTLENBQUM7UUFDUixjQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDbEIsQ0FBQyxDQUFDLENBQUM7SUFFSCxJQUFNLE9BQU8sR0FBRyxJQUFJLGtCQUFXLEVBQUUsQ0FBQztJQUNsQyxJQUFNLEdBQUcsR0FBRyx1QkFBdUIsQ0FBQztJQUNwQyxJQUFNLFVBQVUsR0FBRztRQUNqQixHQUFHLEVBQUUsR0FBRztRQUNSLE1BQU0sRUFBRSxvQkFBWSxDQUFDLEdBQUc7S0FDekIsQ0FBQztJQUNGLElBQUksY0FBYyxHQUFHO1FBQ25CLE1BQU0sRUFBRSxHQUFHO1FBQ1gsVUFBVSxFQUFFLE9BQU87UUFDbkIsT0FBTyxFQUFFLElBQUk7UUFDYixJQUFJLEVBQUUsSUFBSTtRQUNWLE1BQU0sRUFBRSxVQUFVO0tBQ25CLENBQUM7SUFFRixRQUFRLENBQUMsa0JBQWtCLEVBQUU7UUFDM0IsRUFBRSxDQUFDLG1CQUFtQixFQUFFOzs7Ozt3QkFDdEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsU0FBUyxDQUFDLENBQUMsa0JBQWtCLENBQUMsY0FBTSxPQUFBLE9BQU8sQ0FBQyxPQUFPLENBQUM7NEJBQ3RFLE1BQU0sRUFBRSxHQUFHOzRCQUNYLE9BQU8sRUFBRSxFQUFFOzRCQUNYLElBQUksRUFBRSxFQUFFOzRCQUNSLE1BQU0sRUFBRSxFQUFFOzRCQUNWLFVBQVUsRUFBRSxFQUFFO3lCQUNmLENBQUMsRUFOc0QsQ0FNdEQsQ0FBQyxDQUFD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QUN6RSxRQUFRLEdBQUcsSUFBSSxtQkFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO3dCQUN2QyxxQkFBTSxRQUFRLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssQ0FBQyxVQUFBLEdBQUcsSUFBSSxPQUFBLEdBQUcsRUFBSCxDQUFHLENBQUMsRUFBQTs7d0JBQWhELFNBQWdELENBQUM7d0JBQ2pELE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsb0JBQW9CLENBQUMsTUFBTSxDQUFDLENBQUM7Ozs7YUFDdEQsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQyIsImZpbGUiOiJsaWIvcmVxdWVzdC9kaXNwYXRjaC5zcGVjLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAxOCBieSBGaWxlc3RhY2suXG4gKiBTb21lIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IG5vY2sgZnJvbSAnbm9jayc7XG5pbXBvcnQgeyBEaXNwYXRjaCB9IGZyb20gJy4vZGlzcGF0Y2gnO1xuaW1wb3J0IHsgSHR0cEFkYXB0ZXIgfSBmcm9tICcuL2FkYXB0ZXJzL2h0dHAnO1xuaW1wb3J0IHsgRnNIdHRwTWV0aG9kIH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBGc1JlcXVlc3RFcnJvciwgRnNSZXF1ZXN0RXJyb3JDb2RlIH0gZnJvbSAnLi9lcnJvcic7XG5cbmplc3QubW9jaygnLi9hZGFwdGVycy9odHRwJyk7XG5cbmRlc2NyaWJlKCdSZXF1ZXN0L0Rpc3BhdGNoJywgKCkgPT4ge1xuICBhZnRlckVhY2goKCkgPT4ge1xuICAgIG5vY2suY2xlYW5BbGwoKTtcbiAgfSk7XG5cbiAgY29uc3QgYWRhcHRlciA9IG5ldyBIdHRwQWRhcHRlcigpO1xuICBjb25zdCB1cmwgPSAnaHR0cHM6Ly9maWxlc3RhY2suY29tJztcbiAgY29uc3QgY29uZmlnQmFzZSA9IHtcbiAgICB1cmw6IHVybCxcbiAgICBtZXRob2Q6IEZzSHR0cE1ldGhvZC5HRVQsXG4gIH07XG4gIGxldCBmc1Jlc3BvbnNlQmFzZSA9IHtcbiAgICBzdGF0dXM6IDQwMCxcbiAgICBzdGF0dXNUZXh0OiAnZXJyb3InLFxuICAgIGhlYWRlcnM6IG51bGwsXG4gICAgZGF0YTogbnVsbCxcbiAgICBjb25maWc6IGNvbmZpZ0Jhc2UsXG4gIH07XG5cbiAgZGVzY3JpYmUoJ2Rpc3BhdGNoIHJlcXVlc3QnLCAoKSA9PiB7XG4gICAgaXQoJ3Nob3VsZCByZXR1cm4gcmVxJywgYXN5bmMgKCkgPT4ge1xuICAgICAgamVzdC5zcHlPbihhZGFwdGVyLCAncmVxdWVzdCcpLm1vY2tJbXBsZW1lbnRhdGlvbigoKSA9PiBQcm9taXNlLnJlc29sdmUoe1xuICAgICAgICBzdGF0dXM6IDIwMCxcbiAgICAgICAgaGVhZGVyczoge30sXG4gICAgICAgIGRhdGE6IHt9LFxuICAgICAgICBjb25maWc6IHt9LFxuICAgICAgICBzdGF0dXNUZXh0OiAnJ1xuICAgICAgfSkpO1xuICAgICAgY29uc3QgZGlzcGF0Y2ggPSBuZXcgRGlzcGF0Y2goYWRhcHRlcik7XG4gICAgICBjb25zdCByZXEgPSB7IHVybCwgbWV0aG9kOiBGc0h0dHBNZXRob2QuR0VULCBoZWFkZXJzOiB7fSB9O1xuICAgICAgYXdhaXQgZGlzcGF0Y2gucmVxdWVzdChyZXEpO1xuICAgICAgZXhwZWN0KGFkYXB0ZXIucmVxdWVzdCkudG9IYXZlQmVlbkNhbGxlZFdpdGgocmVxKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ2Rpc3BhdGNoIHJlcXVlc3QgY2F0Y2gnLCAoKSA9PiB7XG4gICAgaXQoJ3Nob3VsZCByZXR1cm4gY29uZmlnIGJhc2UnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBlcnJvciA9IG5ldyBGc1JlcXVlc3RFcnJvcignZXJyb3IgbXNnJywgY29uZmlnQmFzZSwgZnNSZXNwb25zZUJhc2UpO1xuICAgICAgamVzdC5zcHlPbihhZGFwdGVyLCAncmVxdWVzdCcpLm1vY2tJbXBsZW1lbnRhdGlvbigoKSA9PiBQcm9taXNlLnJlamVjdChlcnJvcikpO1xuICAgICAgY29uc3QgZGlzcGF0Y2ggPSBuZXcgRGlzcGF0Y2goYWRhcHRlcik7XG4gICAgICBhd2FpdCBkaXNwYXRjaC5yZXF1ZXN0KGNvbmZpZ0Jhc2UpLmNhdGNoKGVyciA9PiBlcnIpO1xuICAgICAgZXhwZWN0KGFkYXB0ZXIucmVxdWVzdCkudG9IYXZlQmVlbkNhbGxlZFdpdGgoY29uZmlnQmFzZSk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIHJldHVybiBjb25maWcgYmFzZScsIGFzeW5jICgpID0+IHtcbiAgICAgIGZzUmVzcG9uc2VCYXNlLnN0YXR1cyA9IDUwMDtcbiAgICAgIGNvbnN0IGVycm9yID0gbmV3IEZzUmVxdWVzdEVycm9yKCdlcnJvciBtc2cnLCBjb25maWdCYXNlLCBmc1Jlc3BvbnNlQmFzZSwgRnNSZXF1ZXN0RXJyb3JDb2RlLk5FVFdPUkspO1xuICAgICAgamVzdC5zcHlPbihhZGFwdGVyLCAncmVxdWVzdCcpLm1vY2tJbXBsZW1lbnRhdGlvbigoKSA9PiBQcm9taXNlLnJlamVjdChlcnJvcikpO1xuICAgICAgY29uc3QgZGlzcGF0Y2ggPSBuZXcgRGlzcGF0Y2goYWRhcHRlcik7XG4gICAgICBhd2FpdCBkaXNwYXRjaC5yZXF1ZXN0KGNvbmZpZ0Jhc2UpLmNhdGNoKGVyciA9PiBlcnIpO1xuICAgICAgZXhwZWN0KGFkYXB0ZXIucmVxdWVzdCkudG9IYXZlQmVlbkNhbGxlZFdpdGgoY29uZmlnQmFzZSk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIHJldHVybiBjb25maWcnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBjb25maWcgPSB7XG4gICAgICAgIHVybDogdXJsLFxuICAgICAgICBtZXRob2Q6IEZzSHR0cE1ldGhvZC5HRVQsXG4gICAgICAgIGhlYWRlcnM6IHt9LFxuICAgICAgICByZXRyeToge1xuICAgICAgICAgIHJldHJ5OiAzLFxuICAgICAgICB9LFxuICAgICAgfTtcbiAgICAgIGZzUmVzcG9uc2VCYXNlLnN0YXR1cyA9IDUwMDtcbiAgICAgIGNvbnN0IGVycm9yID0gbmV3IEZzUmVxdWVzdEVycm9yKCdlcnJvciBtc2cnLCBjb25maWcsIGZzUmVzcG9uc2VCYXNlLCBGc1JlcXVlc3RFcnJvckNvZGUuTkVUV09SSyk7XG4gICAgICBqZXN0LnNweU9uKGFkYXB0ZXIsICdyZXF1ZXN0JykubW9ja0ltcGxlbWVudGF0aW9uKCgpID0+IFByb21pc2UucmVqZWN0KGVycm9yKSk7XG4gICAgICBjb25zdCBkaXNwYXRjaCA9IG5ldyBEaXNwYXRjaChhZGFwdGVyKTtcbiAgICAgIGF3YWl0IGRpc3BhdGNoLnJlcXVlc3QoY29uZmlnKS5jYXRjaChlcnIgPT4gZXJyKTtcbiAgICAgIGV4cGVjdChhZGFwdGVyLnJlcXVlc3QpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKGNvbmZpZyk7XG4gICAgfSk7XG4gIH0pO1xufSk7XG4iXX0=