UNPKG

filestack-js

Version:

Official JavaScript library for Filestack

168 lines (166 loc) 17.9 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 data_1 = require("./data"); describe('Request/Helpers/Data', function () { describe('prepare data', function () { it('should return empty data', function () { var data = { url: 'https://filestack.com', data: {} }; expect((0, data_1.prepareData)(data)).toEqual(data); }); it('should return ArrayBuffer', function () { var data = { url: 'https://filestack.com', data: new ArrayBuffer(10) }; expect((0, data_1.prepareData)(data)).toEqual(data); }); it('should return url params', function () { var data = { url: 'https://filestack.com', data: new URLSearchParams('q=search&id=1') }; expect((0, data_1.prepareData)(data)).toEqual(data); }); }); describe('parse response', function () { it('should return equal response data', function () { return tslib_1.__awaiter(void 0, void 0, void 0, function () { var response, _a; return tslib_1.__generator(this, function (_b) { switch (_b.label) { case 0: response = { status: 200, statusText: 'ok', headers: {}, data: [], config: { url: 'https://filestack.com', }, }; _a = expect; return [4 /*yield*/, (0, data_1.parseResponse)(response)]; case 1: _a.apply(void 0, [_b.sent()]).toEqual(response); return [2 /*return*/]; } }); }); }); it('should return response with application/json and data stringify', function () { return tslib_1.__awaiter(void 0, void 0, void 0, function () { var response, _a; return tslib_1.__generator(this, function (_b) { switch (_b.label) { case 0: response = { status: 200, statusText: 'ok', headers: { 'content-type': 'application/json', }, data: JSON.stringify({ a: 1 }), config: { url: 'https://filestack.com', }, }; _a = expect; return [4 /*yield*/, (0, data_1.parseResponse)(response)]; case 1: _a.apply(void 0, [_b.sent()]).toEqual(response); return [2 /*return*/]; } }); }); }); it('should return response with application/json and json data ', function () { return tslib_1.__awaiter(void 0, void 0, void 0, function () { var response, _a; return tslib_1.__generator(this, function (_b) { switch (_b.label) { case 0: response = { status: 200, statusText: 'ok', headers: { 'content-type': 'application/json', }, data: { a: 1 }, config: { url: 'https://filestack.com', }, }; _a = expect; return [4 /*yield*/, (0, data_1.parseResponse)(response)]; case 1: _a.apply(void 0, [_b.sent()]).toEqual(response); return [2 /*return*/]; } }); }); }); it('should return text/plain response with ArrayBuffer ', function () { return tslib_1.__awaiter(void 0, void 0, void 0, function () { var response, _a; return tslib_1.__generator(this, function (_b) { switch (_b.label) { case 0: response = { status: 200, statusText: 'ok', headers: { 'content-type': 'text/plain', }, data: new ArrayBuffer(10), config: { url: 'https://filestack.com', }, }; _a = expect; return [4 /*yield*/, (0, data_1.parseResponse)(response)]; case 1: _a.apply(void 0, [_b.sent()]).toEqual(response); return [2 /*return*/]; } }); }); }); it('should parse application/xml response to json', function () { return tslib_1.__awaiter(void 0, void 0, void 0, function () { var response, res; return tslib_1.__generator(this, function (_a) { switch (_a.label) { case 0: response = { status: 200, statusText: 'ok', headers: { 'content-type': 'application/xml', }, data: Buffer.from('<?xml version="1.0" encoding="UTF-8"?><Error><code>RequestTimeTooSkewed</code><Message>The difference between the request time and the current time is toolarge.</Message><RequestTime>20191102T153031Z</RequestTime><ServerTime>2019-11-02T15:56:35Z</ServerTime><MaxAllowedSkewMilliseconds>900000</MaxAllowedSkewMilliseconds><RequestId>6C8855BC97D17A1B</RequestId><HostId>3bwhtSpY9tAypFr9L6V+W6UAxFUyk7mK+VQGhIu4Bxj0t7jhQWMEEinW4YHpi8Q9qONnx1CEHKE=</HostId></Error>'), config: { url: 'https://filestack.com', }, }; return [4 /*yield*/, (0, data_1.parseResponse)(response)]; case 1: res = _a.sent(); return [2 /*return*/, expect(res.data).toEqual({ Error: { code: 'RequestTimeTooSkewed', Message: 'The difference between the request time and the current time is toolarge.', RequestTime: '20191102T153031Z', ServerTime: '2019-11-02T15:56:35Z', MaxAllowedSkewMilliseconds: 900000, RequestId: '6C8855BC97D17A1B', HostId: '3bwhtSpY9tAypFr9L6V+W6UAxFUyk7mK+VQGhIu4Bxj0t7jhQWMEEinW4YHpi8Q9qONnx1CEHKE=', }, })]; } }); }); }); }); }); //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvcmVxdWVzdC9oZWxwZXJzL2RhdGEuc3BlYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7Ozs7Ozs7OztHQWVHOzs7QUFFSCwrQkFBb0Q7QUFFcEQsUUFBUSxDQUFDLHNCQUFzQixFQUFFO0lBQy9CLFFBQVEsQ0FBQyxjQUFjLEVBQUU7UUFDdkIsRUFBRSxDQUFDLDBCQUEwQixFQUFFO1lBQzdCLElBQU0sSUFBSSxHQUFHLEVBQUUsR0FBRyxFQUFFLHVCQUF1QixFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQztZQUN4RCxNQUFNLENBQUMsSUFBQSxrQkFBVyxFQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzFDLENBQUMsQ0FBQyxDQUFDO1FBRUgsRUFBRSxDQUFDLDJCQUEyQixFQUFFO1lBQzlCLElBQU0sSUFBSSxHQUFHLEVBQUUsR0FBRyxFQUFFLHVCQUF1QixFQUFFLElBQUksRUFBRSxJQUFJLFdBQVcsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDO1lBQ3pFLE1BQU0sQ0FBQyxJQUFBLGtCQUFXLEVBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDMUMsQ0FBQyxDQUFDLENBQUM7UUFFSCxFQUFFLENBQUMsMEJBQTBCLEVBQUU7WUFDN0IsSUFBTSxJQUFJLEdBQUcsRUFBRSxHQUFHLEVBQUUsdUJBQXVCLEVBQUUsSUFBSSxFQUFFLElBQUksZUFBZSxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUM7WUFDMUYsTUFBTSxDQUFDLElBQUEsa0JBQVcsRUFBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMxQyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0lBRUgsUUFBUSxDQUFDLGdCQUFnQixFQUFFO1FBQ3pCLEVBQUUsQ0FBQyxtQ0FBbUMsRUFBRTs7Ozs7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QUFPLENBQUM7Z0NBQzlCLEtBQUssRUFBRTtvQ0FDTCxJQUFJLEVBQUUsc0JBQXNCO29DQUM1QixPQUFPLEVBQUUsMkVBQTJFO29DQUNwRixXQUFXLEVBQUUsa0JBQWtCO29DQUMvQixVQUFVLEVBQUUsc0JBQXNCO29DQUNsQywwQkFBMEIsRUFBRSxNQUFNO29DQUNsQyxTQUFTLEVBQUUsa0JBQWtCO29DQUM3QixNQUFNLEVBQUUsOEVBQThFO2lDQUN2Rjs2QkFDRixDQUFDLEVBQUM7OzthQUNKLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJmaWxlIjoibGliL3JlcXVlc3QvaGVscGVycy9kYXRhLnNwZWMuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDE4IGJ5IEZpbGVzdGFja1xuICogU29tZSByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7IHByZXBhcmVEYXRhLCBwYXJzZVJlc3BvbnNlIH0gZnJvbSAnLi9kYXRhJztcblxuZGVzY3JpYmUoJ1JlcXVlc3QvSGVscGVycy9EYXRhJywgKCkgPT4ge1xuICBkZXNjcmliZSgncHJlcGFyZSBkYXRhJywgKCkgPT4ge1xuICAgIGl0KCdzaG91bGQgcmV0dXJuIGVtcHR5IGRhdGEnLCAoKSA9PiB7XG4gICAgICBjb25zdCBkYXRhID0geyB1cmw6ICdodHRwczovL2ZpbGVzdGFjay5jb20nLCBkYXRhOiB7fSB9O1xuICAgICAgZXhwZWN0KHByZXBhcmVEYXRhKGRhdGEpKS50b0VxdWFsKGRhdGEpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCByZXR1cm4gQXJyYXlCdWZmZXInLCAoKSA9PiB7XG4gICAgICBjb25zdCBkYXRhID0geyB1cmw6ICdodHRwczovL2ZpbGVzdGFjay5jb20nLCBkYXRhOiBuZXcgQXJyYXlCdWZmZXIoMTApIH07XG4gICAgICBleHBlY3QocHJlcGFyZURhdGEoZGF0YSkpLnRvRXF1YWwoZGF0YSk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIHJldHVybiB1cmwgcGFyYW1zJywgKCkgPT4ge1xuICAgICAgY29uc3QgZGF0YSA9IHsgdXJsOiAnaHR0cHM6Ly9maWxlc3RhY2suY29tJywgZGF0YTogbmV3IFVSTFNlYXJjaFBhcmFtcygncT1zZWFyY2gmaWQ9MScpIH07XG4gICAgICBleHBlY3QocHJlcGFyZURhdGEoZGF0YSkpLnRvRXF1YWwoZGF0YSk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdwYXJzZSByZXNwb25zZScsICgpID0+IHtcbiAgICBpdCgnc2hvdWxkIHJldHVybiBlcXVhbCByZXNwb25zZSBkYXRhJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgcmVzcG9uc2UgPSB7XG4gICAgICAgIHN0YXR1czogMjAwLFxuICAgICAgICBzdGF0dXNUZXh0OiAnb2snLFxuICAgICAgICBoZWFkZXJzOiB7fSxcbiAgICAgICAgZGF0YTogW10sXG4gICAgICAgIGNvbmZpZzoge1xuICAgICAgICAgIHVybDogJ2h0dHBzOi8vZmlsZXN0YWNrLmNvbScsXG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgICAgZXhwZWN0KGF3YWl0IHBhcnNlUmVzcG9uc2UocmVzcG9uc2UpKS50b0VxdWFsKHJlc3BvbnNlKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgcmV0dXJuIHJlc3BvbnNlIHdpdGggYXBwbGljYXRpb24vanNvbiBhbmQgZGF0YSBzdHJpbmdpZnknLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCByZXNwb25zZSA9IHtcbiAgICAgICAgc3RhdHVzOiAyMDAsXG4gICAgICAgIHN0YXR1c1RleHQ6ICdvaycsXG4gICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAnY29udGVudC10eXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgICAgICB9LFxuICAgICAgICBkYXRhOiBKU09OLnN0cmluZ2lmeSh7IGE6IDEgfSksXG4gICAgICAgIGNvbmZpZzoge1xuICAgICAgICAgIHVybDogJ2h0dHBzOi8vZmlsZXN0YWNrLmNvbScsXG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgICAgZXhwZWN0KGF3YWl0IHBhcnNlUmVzcG9uc2UocmVzcG9uc2UpKS50b0VxdWFsKHJlc3BvbnNlKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgcmV0dXJuIHJlc3BvbnNlIHdpdGggYXBwbGljYXRpb24vanNvbiBhbmQganNvbiBkYXRhICcsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0ge1xuICAgICAgICBzdGF0dXM6IDIwMCxcbiAgICAgICAgc3RhdHVzVGV4dDogJ29rJyxcbiAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICdjb250ZW50LXR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgICAgIH0sXG4gICAgICAgIGRhdGE6IHsgYTogMSB9LFxuICAgICAgICBjb25maWc6IHtcbiAgICAgICAgICB1cmw6ICdodHRwczovL2ZpbGVzdGFjay5jb20nLFxuICAgICAgICB9LFxuICAgICAgfTtcbiAgICAgIGV4cGVjdChhd2FpdCBwYXJzZVJlc3BvbnNlKHJlc3BvbnNlKSkudG9FcXVhbChyZXNwb25zZSk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIHJldHVybiB0ZXh0L3BsYWluIHJlc3BvbnNlIHdpdGggQXJyYXlCdWZmZXIgJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgcmVzcG9uc2UgPSB7XG4gICAgICAgIHN0YXR1czogMjAwLFxuICAgICAgICBzdGF0dXNUZXh0OiAnb2snLFxuICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgJ2NvbnRlbnQtdHlwZSc6ICd0ZXh0L3BsYWluJyxcbiAgICAgICAgfSxcbiAgICAgICAgZGF0YTogbmV3IEFycmF5QnVmZmVyKDEwKSxcbiAgICAgICAgY29uZmlnOiB7XG4gICAgICAgICAgdXJsOiAnaHR0cHM6Ly9maWxlc3RhY2suY29tJyxcbiAgICAgICAgfSxcbiAgICAgIH07XG4gICAgICBleHBlY3QoYXdhaXQgcGFyc2VSZXNwb25zZShyZXNwb25zZSkpLnRvRXF1YWwocmVzcG9uc2UpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBwYXJzZSBhcHBsaWNhdGlvbi94bWwgcmVzcG9uc2UgdG8ganNvbicsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0ge1xuICAgICAgICBzdGF0dXM6IDIwMCxcbiAgICAgICAgc3RhdHVzVGV4dDogJ29rJyxcbiAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICdjb250ZW50LXR5cGUnOiAnYXBwbGljYXRpb24veG1sJyxcbiAgICAgICAgfSxcbiAgICAgICAgZGF0YTogQnVmZmVyLmZyb20oJzw/eG1sIHZlcnNpb249XCIxLjBcIiBlbmNvZGluZz1cIlVURi04XCI/PjxFcnJvcj48Y29kZT5SZXF1ZXN0VGltZVRvb1NrZXdlZDwvY29kZT48TWVzc2FnZT5UaGUgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoZSByZXF1ZXN0IHRpbWUgYW5kIHRoZSBjdXJyZW50IHRpbWUgaXMgdG9vbGFyZ2UuPC9NZXNzYWdlPjxSZXF1ZXN0VGltZT4yMDE5MTEwMlQxNTMwMzFaPC9SZXF1ZXN0VGltZT48U2VydmVyVGltZT4yMDE5LTExLTAyVDE1OjU2OjM1WjwvU2VydmVyVGltZT48TWF4QWxsb3dlZFNrZXdNaWxsaXNlY29uZHM+OTAwMDAwPC9NYXhBbGxvd2VkU2tld01pbGxpc2Vjb25kcz48UmVxdWVzdElkPjZDODg1NUJDOTdEMTdBMUI8L1JlcXVlc3RJZD48SG9zdElkPjNid2h0U3BZOXRBeXBGcjlMNlYrVzZVQXhGVXlrN21LK1ZRR2hJdTRCeGowdDdqaFFXTUVFaW5XNFlIcGk4UTlxT05ueDFDRUhLRT08L0hvc3RJZD48L0Vycm9yPicpLFxuICAgICAgICBjb25maWc6IHtcbiAgICAgICAgICB1cmw6ICdodHRwczovL2ZpbGVzdGFjay5jb20nLFxuICAgICAgICB9LFxuICAgICAgfTtcblxuICAgICAgY29uc3QgcmVzID0gYXdhaXQgcGFyc2VSZXNwb25zZShyZXNwb25zZSk7XG5cbiAgICAgIHJldHVybiBleHBlY3QocmVzLmRhdGEpLnRvRXF1YWwoe1xuICAgICAgICBFcnJvcjoge1xuICAgICAgICAgIGNvZGU6ICdSZXF1ZXN0VGltZVRvb1NrZXdlZCcsXG4gICAgICAgICAgTWVzc2FnZTogJ1RoZSBkaWZmZXJlbmNlIGJldHdlZW4gdGhlIHJlcXVlc3QgdGltZSBhbmQgdGhlIGN1cnJlbnQgdGltZSBpcyB0b29sYXJnZS4nLFxuICAgICAgICAgIFJlcXVlc3RUaW1lOiAnMjAxOTExMDJUMTUzMDMxWicsXG4gICAgICAgICAgU2VydmVyVGltZTogJzIwMTktMTEtMDJUMTU6NTY6MzVaJyxcbiAgICAgICAgICBNYXhBbGxvd2VkU2tld01pbGxpc2Vjb25kczogOTAwMDAwLFxuICAgICAgICAgIFJlcXVlc3RJZDogJzZDODg1NUJDOTdEMTdBMUInLFxuICAgICAgICAgIEhvc3RJZDogJzNid2h0U3BZOXRBeXBGcjlMNlYrVzZVQXhGVXlrN21LK1ZRR2hJdTRCeGowdDdqaFFXTUVFaW5XNFlIcGk4UTlxT05ueDFDRUhLRT0nLFxuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgfSk7XG4gIH0pO1xufSk7XG4iXX0=