New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

hammock

Package Overview
Dependencies
Maintainers
2
Versions
28
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

hammock - npm Package Compare versions

Comparing version 3.0.0 to 3.0.1

.travis.yml

4

index.js

@@ -0,4 +1,6 @@

'use strict';
module.exports = {
Request: require('./lib/request'),
Response: require('./lib/response')
};
};

@@ -0,1 +1,3 @@

'use strict';
var Cookies = require('cookies');

@@ -6,3 +8,2 @@ var url = require('url');

var PassThrough = require('readable-stream').PassThrough;
var _ = require('lodash');

@@ -36,7 +37,8 @@ // Some versions of node populate _headers while others

var self = this;
_.each(options.headers, function (v, k) {
if (v !== undefined) {
self.setHeader(k, v);
for(var k in options.headers) {
if (options.headers[k] !== undefined) {
self.setHeader(k, options.headers[k]);
}
});
}

@@ -52,5 +54,5 @@ this.setHeader('transfer-encoding', 'chunked');

_.forEach(_.keys(options.cookies), function (key) {
cookieBuffer.push(key + '=' + options.cookies[key]);
});
for(var k in options.cookies) {
cookieBuffer.push(k + '=' + options.cookies[k]);
}

@@ -63,15 +65,19 @@ this.setHeader('cookie', cookieBuffer.join(';'));

MockRequest.prototype.setHeader = function (name, value, clobber) {
if (http.ClientRequest) {
var ret = http.ClientRequest.prototype.setHeader.call(this, name, value, clobber);
if (http.ClientRequest.prototype.getHeaders) {
this.headers = http.ClientRequest.prototype.getHeaders.call(this);
} else {
}
else {
this.headers = this[outHeadersKey];
}
return ret;
} else if (clobber || !this.headers.hasOwnProperty(name)) {
}
else if (clobber || !this.headers.hasOwnProperty(name)) {
this.headers[name.toLowerCase()] = value;
} else {
}
else {
this.headers[name.toLowerCase()] += ',' + value;

@@ -84,3 +90,4 @@ }

return http.ClientRequest.prototype.getHeader.call(this, name);
} else {
}
else {
return this.headers[name];

@@ -90,11 +97,14 @@ }

function readOutHeadersKey() {
function readOutHeadersKey () {
if (http.ClientRequest && Object.getOwnPropertySymbols) {
var x = {};
try {
http.ClientRequest.apply(x);
} catch (e) {
}
catch (e) {
// This will invariably throw
}
var symbols = Object.getOwnPropertySymbols(x);
for (var i = 0; i < symbols.length; i++) {

@@ -106,2 +116,3 @@ if (symbols[i].toString() == 'Symbol(outHeadersKey)') {

}
return '_headers';

@@ -108,0 +119,0 @@ }

@@ -0,1 +1,3 @@

'use strict';
var events = require('events');

@@ -5,2 +7,3 @@ var util = require('util');

var Buffer = require('buffer').Buffer;
var Writable = require('readable-stream').Writable;

@@ -19,5 +22,7 @@ // Some versions of node populate _headers while others

events.EventEmitter.call(this);
Writable.call(this, {
decodeStrings: false
});
this.buffer = [];
this._buffer = [];
this.statusCode = 200;

@@ -44,6 +49,7 @@ this[outHeadersKey] = null;

util.inherits(MockResponse, events.EventEmitter);
util.inherits(MockResponse, Writable);
MockResponse.prototype.write = function (str) {
this.buffer.push(str);
MockResponse.prototype._write = function (chunk, enc, cb) {
this._buffer.push(chunk);
cb(null);
};

@@ -86,3 +92,3 @@ MockResponse.prototype.writeHead = function (statusCode, headers) {

if (str) {
this.buffer.push(str);
this._buffer.push(str);
}

@@ -112,18 +118,15 @@

this.finished = true
// Cleanup any listeners that are 'hanging' around.
this.removeAllListeners();
};
MockResponse.prototype._buildBody = function _buildBody() {
if (this.buffer.length === 0) {
if (this._buffer.length === 0) {
return '';
}
if (this.buffer.length === 1) {
return this.buffer[0];
if (this._buffer.length === 1) {
return this._buffer[0];
}
var isBuffers = true;
for (var i = 0; i < this.buffer.length; i++) {
if (!Buffer.isBuffer(this.buffer[i])) {
for (var i = 0; i < this._buffer.length; i++) {
if (!Buffer.isBuffer(this._buffer[i])) {
isBuffers = false;

@@ -134,6 +137,6 @@ }

if (!isBuffers) {
return this.buffer.join('');
return this._buffer.join('');
}
return Buffer.concat(this.buffer);
return Buffer.concat(this._buffer);
};

@@ -140,0 +143,0 @@

{
"name": "hammock",
"version": "3.0.0",
"version": "3.0.1",
"description": "Node.js mock / polyfill http object library for http req / res",

@@ -22,8 +22,9 @@ "main": "index.js",

"dependencies": {
"cookies": "^0.7.1",
"lodash": "^4.17.4",
"readable-stream": "^2.3.3"
"cookies": "0.7.3",
"readable-stream": "2.3.3"
},
"devDependencies": {
"tape": "^4.8.0"
"nock": "8.2.2",
"request": "2.88.0",
"tape": "4.8.0"
},

@@ -30,0 +31,0 @@ "author": "Tommy Messbauer",

@@ -1,2 +0,2 @@

# hammock
# hammock. [![Build Status](https://travis-ci.org/doanythingfordethklok/hammock.svg?branch=master)](https://travis-ci.org/doanythingfordethklok/hammock)

@@ -3,0 +3,0 @@ Node.js mock / polyfill http object library for http req / res.

@@ -0,1 +1,3 @@

'use strict';
module.exports = require("./lib/request");

@@ -0,1 +1,3 @@

'use strict';
module.exports = require("./lib/response");

@@ -0,7 +1,8 @@

'use strict';
var test = require('tape');
var MockRequest = require('../index.js').Request;
var MockResponse = require('../index.js').Response;
var Cookies = require('cookies');
test('Create post request', function(t) {
test('Create post request', function (t) {
var req = new MockRequest({

@@ -18,7 +19,6 @@ method: 'POST',

});
var res = new MockResponse();
t.ok(req, 'Request was created');
var cookies = new Cookies(req, res);
var cookies = new Cookies(req);
var foo = cookies.get('foo');

@@ -30,10 +30,11 @@ var bar = cookies.get('bar');

var _body = ''
req.on('data', function(body) {
_body += body
})
var _body = '';
req.on('data', function (body) {
_body += body;
});
req.once('end', function () {
t.equals(_body.toString(), 'foobar', 'Body should have been pushed from mock req.');
t.end();
})
});

@@ -40,0 +41,0 @@ req.write('foo');

@@ -0,8 +1,11 @@

'use strict';
var test = require('tape');
var MockRequest = require('../index.js').Request;
var MockResponse = require('../index.js').Response;
var Cookies = require('cookies');
var PassThrough = require('stream').PassThrough;
var PassThrough = require('readable-stream').PassThrough;
test('Create request with cookie', function(t) {
test('MockRequest: Create request with cookie', function (t) {
t.plan(3);
var req = new MockRequest({

@@ -15,7 +18,6 @@ url: '/hello',

});
var res = new MockResponse();
t.ok(req, 'Request was created');
var cookies = new Cookies(req, res);
var cookies = new Cookies(req);
var foo = cookies.get('foo');

@@ -27,6 +29,7 @@ var bar = cookies.get('bar');

t.end();
});
test('can create with cookie header', function (t) {
test('MockRequest: can create with cookie header', function (t) {
t.plan(2);
var req = new MockRequest({

@@ -44,87 +47,25 @@ headers: {

test('can write to response', function t(assert) {
var res = new MockResponse(onResponse);
test('MockRequest: pipe to another stream', function (t) {
t.plan(1);
res.write('foo');
res.write('bar');
res.end();
var test_string = 'qweqwe';
var p = new PassThrough();
function onResponse(err, resp) {
assert.equal(resp.body, 'foobar');
assert.end();
}
});
p.on('data', function accumulate (d) {
t.equal(d.toString(), test_string);
});
p.on('end', function assertTest () {
t.end();
});
test('can write buffers to response', function t(assert) {
var res = new MockResponse(onResponse);
var req = new MockRequest({
headers: {
cookie: 's=foo'
}
});
res.write('foo');
res.write(new Buffer('bar'));
res.end();
req.pipe(p);
function onResponse(err, resp) {
assert.equal(resp.body, 'foobar');
assert.end();
}
req.write(test_string);
req.end();
});
test('can write buffer to end()', function t(assert) {
var res = new MockResponse(onResponse);
res.end(new Buffer('foobar'));
function onResponse(err, resp) {
assert.equal(
resp.body.toString('hex'), new Buffer('foobar').toString('hex')
);
assert.end();
}
})
test('can write only buffers to response', function t(assert) {
var res = new MockResponse(onResponse);
res.write(new Buffer('foo'));
res.write(new Buffer('bar'));
res.end();
function onResponse(err, resp) {
assert.equal(
resp.body.toString('hex'), new Buffer('foobar').toString('hex')
);
assert.end();
}
});
test('can write only buffers to response with pipe', function t(assert) {
var res = new MockResponse(onResponse);
var stream = new PassThrough();
stream.write(new Buffer('foo'));
stream.write(new Buffer('bar'));
stream.pipe(res);
stream.end();
function onResponse(err, resp) {
assert.equal(
resp.body.toString('hex'), new Buffer('foobar').toString('hex')
);
assert.end();
}
});
test('can handle empty responses', function t(assert) {
var res = new MockResponse(onResponse);
var stream = new PassThrough();
stream.pipe(res);
stream.end();
function onResponse(err, resp) {
assert.deepEqual(resp.body, '');
assert.end();
}
});
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc