UNPKG

filestack-js

Version:

Official JavaScript library for Filestack

107 lines (86 loc) 3.54 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 { parse, normalizeHeaders, set, normalizeName } from './headers'; describe('Request/Helpers/Headers', () => { describe('parse headers', () => { it('should return empty object', () => { expect(parse(null)).toEqual({}); }); it('headers with : should return empty object ', () => { const headers = ':'; expect(parse(headers)).toEqual({}); }); it('should return object with from filestack.com', () => { const headers = 'from:filestack.com\nfrom:filestack.com'; expect(parse(headers)).toEqual({ from: 'filestack.com' }); }); it('should return set-cookies false', () => { const headers = 'set-cookie:false'; expect(parse(headers)).toEqual({ 'set-cookie': ['false'] }); }); it('should concat multiple set-cookie headers into array', () => { const headers = 'set-cookie:test1\nset-cookie:test2\nset-cookie:test3'; expect(parse(headers)).toEqual({ 'set-cookie': ['test1', 'test2', 'test3'] }); }); it('should concat multiple not ignored headers into string', () => { const headers = 'testheader:test1\ntestheader:test2\ntestheader:test3'; expect(parse(headers)).toEqual({ 'testheader': 'test1, test2, test3' }); }); }); describe('normalize headers', () => { it('normalize headers should return empty object', () => { // @ts-ignore expect(normalizeHeaders()).toEqual({}); }); it('normalize headers with set-cookies false, should return false', () => { const data = { ['set-cookies']: 'false' }; expect(normalizeHeaders(data)).toEqual({ 'Set-Cookies': 'false' }); }); }); describe('set headers', () => { it('should set correct headers to object', () => { expect(set({}, 'set-cookies', 'value')).toEqual({ 'Set-Cookies': 'value' }); }); it('should set value on empty object if setIFExists is enabled', () => { expect(set({}, 'name', 'value', true)).toEqual({ Name: 'value' }); }); it('should overwrite value if setIFExists is enabled', () => { const h = { name: 'test', }; expect(set(h, 'name', 'value', true)).toEqual({ Name: 'value' }); }); it('should not overwrite value if setIFExists is disabled', () => { const h = { name: 'test', }; expect(set(h, 'name', 'value', false)).toEqual({ name: 'test' }); }); it('should allow to add header to not empty object', () => { const data = { 'www-authenticate': '' }; expect(set(data, 'name', 'value')).toEqual({ Name: 'value', 'www-authenticate': '' }); }); }); describe('normalize name', () => { it('should return string to equal WWW-Authenticate', () => { expect(normalizeName('www-authenticate')).toEqual('WWW-Authenticate'); }); it('should return Content-Type', () => { expect(normalizeName('content-type')).toBe('Content-Type'); }); }); });