UNPKG

filestack-js

Version:

Official JavaScript library for Filestack

92 lines (90 loc) 13.3 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 headers_1 = require("./headers"); describe('Request/Helpers/Headers', function () { describe('parse headers', function () { it('should return empty object', function () { expect((0, headers_1.parse)(null)).toEqual({}); }); it('headers with : should return empty object ', function () { var headers = ':'; expect((0, headers_1.parse)(headers)).toEqual({}); }); it('should return object with from filestack.com', function () { var headers = 'from:filestack.com\nfrom:filestack.com'; expect((0, headers_1.parse)(headers)).toEqual({ from: 'filestack.com' }); }); it('should return set-cookies false', function () { var headers = 'set-cookie:false'; expect((0, headers_1.parse)(headers)).toEqual({ 'set-cookie': ['false'] }); }); it('should concat multiple set-cookie headers into array', function () { var headers = 'set-cookie:test1\nset-cookie:test2\nset-cookie:test3'; expect((0, headers_1.parse)(headers)).toEqual({ 'set-cookie': ['test1', 'test2', 'test3'] }); }); it('should concat multiple not ignored headers into string', function () { var headers = 'testheader:test1\ntestheader:test2\ntestheader:test3'; expect((0, headers_1.parse)(headers)).toEqual({ 'testheader': 'test1, test2, test3' }); }); }); describe('normalize headers', function () { it('normalize headers should return empty object', function () { // @ts-ignore expect((0, headers_1.normalizeHeaders)()).toEqual({}); }); it('normalize headers with set-cookies false, should return false', function () { var _a; var data = (_a = {}, _a['set-cookies'] = 'false', _a); expect((0, headers_1.normalizeHeaders)(data)).toEqual({ 'Set-Cookies': 'false' }); }); }); describe('set headers', function () { it('should set correct headers to object', function () { expect((0, headers_1.set)({}, 'set-cookies', 'value')).toEqual({ 'Set-Cookies': 'value' }); }); it('should set value on empty object if setIFExists is enabled', function () { expect((0, headers_1.set)({}, 'name', 'value', true)).toEqual({ Name: 'value' }); }); it('should overwrite value if setIFExists is enabled', function () { var h = { name: 'test', }; expect((0, headers_1.set)(h, 'name', 'value', true)).toEqual({ Name: 'value' }); }); it('should not overwrite value if setIFExists is disabled', function () { var h = { name: 'test', }; expect((0, headers_1.set)(h, 'name', 'value', false)).toEqual({ name: 'test' }); }); it('should allow to add header to not empty object', function () { var data = { 'www-authenticate': '' }; expect((0, headers_1.set)(data, 'name', 'value')).toEqual({ Name: 'value', 'www-authenticate': '' }); }); }); describe('normalize name', function () { it('should return string to equal WWW-Authenticate', function () { expect((0, headers_1.normalizeName)('www-authenticate')).toEqual('WWW-Authenticate'); }); it('should return Content-Type', function () { expect((0, headers_1.normalizeName)('content-type')).toBe('Content-Type'); }); }); }); //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvcmVxdWVzdC9oZWxwZXJzL2hlYWRlcnMuc3BlYy5icm93c2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7O0FBRUgscUNBQXdFO0FBRXhFLFFBQVEsQ0FBQyx5QkFBeUIsRUFBRTtJQUVsQyxRQUFRLENBQUMsZUFBZSxFQUFFO1FBQ3hCLEVBQUUsQ0FBQyw0QkFBNEIsRUFBRTtZQUMvQixNQUFNLENBQUMsSUFBQSxlQUFLLEVBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDbEMsQ0FBQyxDQUFDLENBQUM7UUFFSCxFQUFFLENBQUMsNENBQTRDLEVBQUU7WUFDL0MsSUFBTSxPQUFPLEdBQUcsR0FBRyxDQUFDO1lBQ3BCLE1BQU0sQ0FBQyxJQUFBLGVBQUssRUFBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNyQyxDQUFDLENBQUMsQ0FBQztRQUVILEVBQUUsQ0FBQyw4Q0FBOEMsRUFBRTtZQUNqRCxJQUFNLE9BQU8sR0FBRyx3Q0FBd0MsQ0FBQztZQUN6RCxNQUFNLENBQUMsSUFBQSxlQUFLLEVBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBRSxJQUFJLEVBQUUsZUFBZSxFQUFFLENBQUMsQ0FBQztRQUM1RCxDQUFDLENBQUMsQ0FBQztRQUVILEVBQUUsQ0FBQyxpQ0FBaUMsRUFBRTtZQUNwQyxJQUFNLE9BQU8sR0FBRyxrQkFBa0IsQ0FBQztZQUNuQyxNQUFNLENBQUMsSUFBQSxlQUFLLEVBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBRSxZQUFZLEVBQUUsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDOUQsQ0FBQyxDQUFDLENBQUM7UUFFSCxFQUFFLENBQUMsc0RBQXNELEVBQUU7WUFDekQsSUFBTSxPQUFPLEdBQUcsc0RBQXNELENBQUM7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LENBQUMsZ0JBQWdCLEVBQUU7UUFDekIsRUFBRSxDQUFDLGdEQUFnRCxFQUFFO1lBQ25ELE1BQU0sQ0FBQyxJQUFBLHVCQUFhLEVBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBQ3hFLENBQUMsQ0FBQyxDQUFDO1FBRUgsRUFBRSxDQUFDLDRCQUE0QixFQUFFO1lBQy9CLE1BQU0sQ0FBQyxJQUFBLHVCQUFhLEVBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDN0QsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwiZmlsZSI6ImxpYi9yZXF1ZXN0L2hlbHBlcnMvaGVhZGVycy5zcGVjLmJyb3dzZXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDE4IGJ5IEZpbGVzdGFja1xuICogU29tZSByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7IHBhcnNlLCBub3JtYWxpemVIZWFkZXJzLCBzZXQsIG5vcm1hbGl6ZU5hbWUgfSBmcm9tICcuL2hlYWRlcnMnO1xuXG5kZXNjcmliZSgnUmVxdWVzdC9IZWxwZXJzL0hlYWRlcnMnLCAoKSA9PiB7XG5cbiAgZGVzY3JpYmUoJ3BhcnNlIGhlYWRlcnMnLCAoKSA9PiB7XG4gICAgaXQoJ3Nob3VsZCByZXR1cm4gZW1wdHkgb2JqZWN0JywgKCkgPT4ge1xuICAgICAgZXhwZWN0KHBhcnNlKG51bGwpKS50b0VxdWFsKHt9KTtcbiAgICB9KTtcblxuICAgIGl0KCdoZWFkZXJzIHdpdGggOiBzaG91bGQgcmV0dXJuIGVtcHR5IG9iamVjdCAnLCAoKSA9PiB7XG4gICAgICBjb25zdCBoZWFkZXJzID0gJzonO1xuICAgICAgZXhwZWN0KHBhcnNlKGhlYWRlcnMpKS50b0VxdWFsKHt9KTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgcmV0dXJuIG9iamVjdCB3aXRoIGZyb20gZmlsZXN0YWNrLmNvbScsICgpID0+IHtcbiAgICAgIGNvbnN0IGhlYWRlcnMgPSAnZnJvbTpmaWxlc3RhY2suY29tXFxuZnJvbTpmaWxlc3RhY2suY29tJztcbiAgICAgIGV4cGVjdChwYXJzZShoZWFkZXJzKSkudG9FcXVhbCh7IGZyb206ICdmaWxlc3RhY2suY29tJyB9KTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgcmV0dXJuIHNldC1jb29raWVzIGZhbHNlJywgKCkgPT4ge1xuICAgICAgY29uc3QgaGVhZGVycyA9ICdzZXQtY29va2llOmZhbHNlJztcbiAgICAgIGV4cGVjdChwYXJzZShoZWFkZXJzKSkudG9FcXVhbCh7ICdzZXQtY29va2llJzogWydmYWxzZSddIH0pO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBjb25jYXQgbXVsdGlwbGUgc2V0LWNvb2tpZSBoZWFkZXJzIGludG8gYXJyYXknLCAoKSA9PiB7XG4gICAgICBjb25zdCBoZWFkZXJzID0gJ3NldC1jb29raWU6dGVzdDFcXG5zZXQtY29va2llOnRlc3QyXFxuc2V0LWNvb2tpZTp0ZXN0Myc7XG4gICAgICBleHBlY3QocGFyc2UoaGVhZGVycykpLnRvRXF1YWwoeyAnc2V0LWNvb2tpZSc6IFsndGVzdDEnLCAndGVzdDInLCAndGVzdDMnXSB9KTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgY29uY2F0IG11bHRpcGxlIG5vdCBpZ25vcmVkIGhlYWRlcnMgaW50byBzdHJpbmcnLCAoKSA9PiB7XG4gICAgICBjb25zdCBoZWFkZXJzID0gJ3Rlc3RoZWFkZXI6dGVzdDFcXG50ZXN0aGVhZGVyOnRlc3QyXFxudGVzdGhlYWRlcjp0ZXN0Myc7XG4gICAgICBleHBlY3QocGFyc2UoaGVhZGVycykpLnRvRXF1YWwoeyAndGVzdGhlYWRlcic6ICd0ZXN0MSwgdGVzdDIsIHRlc3QzJyB9KTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ25vcm1hbGl6ZSBoZWFkZXJzJywgKCkgPT4ge1xuICAgIGl0KCdub3JtYWxpemUgaGVhZGVycyBzaG91bGQgcmV0dXJuIGVtcHR5IG9iamVjdCcsICgpID0+IHtcbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIGV4cGVjdChub3JtYWxpemVIZWFkZXJzKCkpLnRvRXF1YWwoe30pO1xuICAgIH0pO1xuXG4gICAgaXQoJ25vcm1hbGl6ZSBoZWFkZXJzIHdpdGggc2V0LWNvb2tpZXMgZmFsc2UsIHNob3VsZCByZXR1cm4gZmFsc2UnLCAoKSA9PiB7XG4gICAgICBjb25zdCBkYXRhID0geyBbJ3NldC1jb29raWVzJ106ICdmYWxzZScgfTtcbiAgICAgIGV4cGVjdChub3JtYWxpemVIZWFkZXJzKGRhdGEpKS50b0VxdWFsKHsgJ1NldC1Db29raWVzJzogJ2ZhbHNlJyB9KTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ3NldCBoZWFkZXJzJywgKCkgPT4ge1xuICAgIGl0KCdzaG91bGQgc2V0IGNvcnJlY3QgaGVhZGVycyB0byBvYmplY3QnLCAoKSA9PiB7XG4gICAgICBleHBlY3Qoc2V0KHt9LCAnc2V0LWNvb2tpZXMnLCAndmFsdWUnKSkudG9FcXVhbCh7ICdTZXQtQ29va2llcyc6ICd2YWx1ZScgfSk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIHNldCB2YWx1ZSBvbiBlbXB0eSBvYmplY3QgaWYgc2V0SUZFeGlzdHMgaXMgZW5hYmxlZCcsICgpID0+IHtcbiAgICAgIGV4cGVjdChzZXQoe30sICduYW1lJywgJ3ZhbHVlJywgdHJ1ZSkpLnRvRXF1YWwoeyBOYW1lOiAndmFsdWUnIH0pO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBvdmVyd3JpdGUgdmFsdWUgaWYgc2V0SUZFeGlzdHMgaXMgZW5hYmxlZCcsICgpID0+IHtcbiAgICAgIGNvbnN0IGggPSB7XG4gICAgICAgIG5hbWU6ICd0ZXN0JyxcbiAgICAgIH07XG5cbiAgICAgIGV4cGVjdChzZXQoaCwgJ25hbWUnLCAndmFsdWUnLCB0cnVlKSkudG9FcXVhbCh7IE5hbWU6ICd2YWx1ZScgfSk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIG5vdCBvdmVyd3JpdGUgdmFsdWUgaWYgc2V0SUZFeGlzdHMgaXMgZGlzYWJsZWQnLCAoKSA9PiB7XG4gICAgICBjb25zdCBoID0ge1xuICAgICAgICBuYW1lOiAndGVzdCcsXG4gICAgICB9O1xuXG4gICAgICBleHBlY3Qoc2V0KGgsICduYW1lJywgJ3ZhbHVlJywgZmFsc2UpKS50b0VxdWFsKHsgbmFtZTogJ3Rlc3QnIH0pO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBhbGxvdyB0byBhZGQgaGVhZGVyIHRvIG5vdCBlbXB0eSBvYmplY3QnLCAoKSA9PiB7XG4gICAgICBjb25zdCBkYXRhID0geyAnd3d3LWF1dGhlbnRpY2F0ZSc6ICcnIH07XG5cbiAgICAgIGV4cGVjdChzZXQoZGF0YSwgJ25hbWUnLCAndmFsdWUnKSkudG9FcXVhbCh7IE5hbWU6ICd2YWx1ZScsICd3d3ctYXV0aGVudGljYXRlJzogJycgfSk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdub3JtYWxpemUgbmFtZScsICgpID0+IHtcbiAgICBpdCgnc2hvdWxkIHJldHVybiBzdHJpbmcgdG8gZXF1YWwgV1dXLUF1dGhlbnRpY2F0ZScsICgpID0+IHtcbiAgICAgIGV4cGVjdChub3JtYWxpemVOYW1lKCd3d3ctYXV0aGVudGljYXRlJykpLnRvRXF1YWwoJ1dXVy1BdXRoZW50aWNhdGUnKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgcmV0dXJuIENvbnRlbnQtVHlwZScsICgpID0+IHtcbiAgICAgIGV4cGVjdChub3JtYWxpemVOYW1lKCdjb250ZW50LXR5cGUnKSkudG9CZSgnQ29udGVudC1UeXBlJyk7XG4gICAgfSk7XG4gIH0pO1xufSk7XG4iXX0=