🚀 Big News: Socket Acquires Coana to Bring Reachability Analysis to Every Appsec Team.Learn more
Socket
Book a DemoInstallSign in
Socket

node-mocks-http

Package Overview
Dependencies
Maintainers
1
Versions
68
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

node-mocks-http - npm Package Compare versions

Comparing version

to
1.17.2

41

lib/headers.js

@@ -8,3 +8,27 @@ /**

const REFERER_HEADER_NAMES = ['referer', 'referrer'];
/**
* Get a header value from the headers object.
* Because headers can be set in multiple ways, their names can be uppercased and lowercased.
*
* @param {Object} headers
* @param {string} name
* @returns
*/
function getHeaderValue(headers, name) {
const lowerName = name.toLowerCase();
return headers[
Object.keys(headers).find((key) => {
const lowerKey = key.toLowerCase();
return (
lowerKey === lowerName ||
(REFERER_HEADER_NAMES.includes(lowerKey) && REFERER_HEADER_NAMES.includes(lowerName))
);
})
];
}
/**
* Creates a Headers object that implements both Express.js style access

@@ -22,13 +46,6 @@ * and the Web API Headers interface

case 'get':
return (name) => {
const lowerName = name.toLowerCase();
// Special case for referer/referrer
if (lowerName === 'referer' || lowerName === 'referrer') {
return target.referrer || target.referer;
}
return target[lowerName];
};
return (name) => getHeaderValue(target, name);
case 'getAll':
return (name) => {
const value = target[name.toLowerCase()];
const value = getHeaderValue(target, name);
if (!value) {

@@ -40,3 +57,3 @@ return [];

case 'has':
return (name) => name.toLowerCase() in target;
return (name) => getHeaderValue(target, name) !== undefined;
case 'set':

@@ -88,3 +105,3 @@ return (name, value) => {

default:
return target[typeof prop === 'string' ? prop.toLowerCase() : prop];
return typeof prop === 'string' ? getHeaderValue(target, prop) : target[prop];
}

@@ -124,2 +141,2 @@ },

module.exports = { createHeaders };
module.exports = { createHeaders, getHeaderValue };

@@ -37,3 +37,3 @@ /**

const querystring = require('querystring');
const { createHeaders } = require('./headers');
const { createHeaders, getHeaderValue } = require('./headers');

@@ -134,3 +134,3 @@ const standardRequestOptions = [

mockRequest.getHeader = function getHeader(name) {
return mockRequest.headers.get(name);
return getHeaderValue(mockRequest.headers, name);
};

@@ -137,0 +137,0 @@ mockRequest.header = mockRequest.getHeader;

@@ -5,3 +5,3 @@ {

"description": "Mock 'http' objects for testing Express, Next.js and Koa routing functions",
"version": "1.17.1",
"version": "1.17.2",
"homepage": "https://github.com/eugef/node-mocks-http",

@@ -8,0 +8,0 @@ "bugs": {