node-mocks-http
Advanced tools
Comparing version 1.2.4 to 1.2.5
@@ -31,2 +31,4 @@ 'use strict'; | ||
var url = require('url'); | ||
function createRequest(options) { | ||
@@ -44,2 +46,3 @@ | ||
mockRequest.url = (options.url) ? options.url : ''; | ||
mockRequest.path = (options.url) ? url.parse(options.url).pathname : ''; | ||
mockRequest.params = (options.params) ? options.params : {}; | ||
@@ -54,4 +57,4 @@ mockRequest.session = (options.session) ? options.session : {}; | ||
//parse query string from url to object | ||
if (Object.keys(mockRequest.query).length == 0) { | ||
mockRequest.query = require('querystring').parse(mockRequest.url.split('?')[1]) | ||
if (Object.keys(mockRequest.query).length === 0) { | ||
mockRequest.query = require('querystring').parse(mockRequest.url.split('?')[1]); | ||
} | ||
@@ -58,0 +61,0 @@ |
@@ -53,3 +53,3 @@ 'use strict'; | ||
mockResponse.statusCode = -1; | ||
mockResponse.statusCode = 200; | ||
mockResponse.cookies = {}; | ||
@@ -198,7 +198,2 @@ | ||
mockResponse.setHeader('Content-Type', 'application/json'); | ||
// Sets default status code if none has been specify. | ||
if(mockResponse.statusCode === -1) { | ||
mockResponse.statusCode = 200; | ||
} | ||
if (a) { | ||
@@ -270,16 +265,34 @@ if (typeof a === 'number') { | ||
/** | ||
* Function: header | ||
* | ||
* An alias of either getHeader or setHeader depending on | ||
* the amount of passed parameters. | ||
*/ | ||
mockResponse.header = function(name, value) { | ||
if (typeof value !== 'undefined') { | ||
return mockResponse.setHeader(name, value); | ||
/** | ||
* Set header `field` to `val`, or pass | ||
* an object of header fields. | ||
* | ||
* Examples: | ||
* | ||
* res.set('Foo', ['bar', 'baz']); | ||
* res.set('Accept', 'application/json'); | ||
* res.set({ Accept: 'text/plain', 'X-API-Key': 'tobi' }); | ||
* | ||
* Aliased as `mockResponse.header()`. | ||
* | ||
* @param {String|Object|Array} field | ||
* @param {String} val | ||
* @return {ServerResponse} for chaining | ||
* @api public | ||
*/ | ||
mockResponse.set = mockResponse.header = function header(field, val) { | ||
if (arguments.length === 2) { | ||
if (Array.isArray(val)) { | ||
val = val.map(String); | ||
} | ||
else { | ||
val = String(val); | ||
} | ||
mockResponse.setHeader(field, val); | ||
} else { | ||
return mockResponse.getHeader(name); | ||
for (var key in field) { | ||
mockResponse.setHeader(key, field[key]); | ||
} | ||
} | ||
return mockResponse; | ||
}; | ||
@@ -303,3 +316,3 @@ | ||
*/ | ||
mockResponse.set = mockResponse.setHeader = function(name, value) { | ||
mockResponse.setHeader = function(name, value) { | ||
_headers[name] = value; | ||
@@ -342,2 +355,3 @@ return value; | ||
mockResponse.statusCode = 302; | ||
_redirectUrl = a; | ||
@@ -344,0 +358,0 @@ break; |
@@ -5,3 +5,3 @@ { | ||
"description": "Mock 'http' objects for testing Express routing functions", | ||
"version": "1.2.4", | ||
"version": "1.2.5", | ||
"homepage": "http://www.github.com/howardabrams/node-mocks-http", | ||
@@ -8,0 +8,0 @@ "license" : "MIT", |
@@ -120,3 +120,10 @@ node-mocks-http | ||
* v 1.2.5 | ||
* Add `path` to request similar to how express does `req.path` | ||
* Emit send and end events for json response too | ||
* res.set() works like Express when passed an object #33 | ||
* Set mockResponse.statusCode default to 200, instead of -1 | ||
License | ||
@@ -123,0 +130,0 @@ --- |
@@ -199,1 +199,11 @@ /** | ||
}; | ||
exports['path(pathname) has to be parsed from url'] = function(test) { | ||
var request = httpMocks.createRequest({ | ||
url: 'http://www.whatever.com/iamthepath?a=1&b=2&c=3' | ||
}); | ||
test.equal(request.path, '/iamthepath'); | ||
test.done(); | ||
} |
@@ -23,3 +23,3 @@ /** | ||
var response = httpMocks.createResponse(); | ||
test.equal(-1, response.statusCode); | ||
test.equal(200, response.statusCode); | ||
test.equal("", response._getData()); | ||
@@ -94,2 +94,16 @@ test.ok(!response._isUTF8()); | ||
exports['set - Can set multiple headers with object'] = function (test) { | ||
var response = httpMocks.createResponse(); | ||
response.set({ | ||
'foo': 'bar', | ||
'bling': 'blang' | ||
}); | ||
test.equal('bar', response.getHeader('foo')); | ||
test.equal('blang', response.getHeader('bling')); | ||
test.done(); | ||
}; | ||
exports['writeHead - Simple verification'] = function (test) { | ||
@@ -227,2 +241,3 @@ var response = httpMocks.createResponse(); | ||
test.equal(response._getRedirectUrl(), url); | ||
test.equal(response._getStatusCode(), 302); | ||
test.done(); | ||
@@ -229,0 +244,0 @@ }; |
49161
1265
132