node-mocks-http
Advanced tools
Comparing version 0.0.9 to 1.0.0
/** | ||
* File: mockResponse | ||
* | ||
* | ||
* This file implements node.js's implementation of a 'response' object. | ||
* Like all good mocks, the response file that can be called and used in | ||
* Like all good mocks, the response file that can be called and used in | ||
* place of a real HTTP response object. | ||
* | ||
* | ||
* @author Howard Abrams <howard.abrams@gmail.com> | ||
@@ -16,3 +16,3 @@ */ | ||
* Creates a new mock 'response' instance. All values are reset to the | ||
* defaults. | ||
* defaults. | ||
* | ||
@@ -41,4 +41,4 @@ * Parameters: | ||
var writableStream = new (options.writableStream || WritableStream)(); | ||
var eventEmitter = new (options.eventEmitter || EventEmitter)(); | ||
var writableStream = new (options.writableStream || WritableStream)(); | ||
var eventEmitter = new (options.eventEmitter || EventEmitter)(); | ||
@@ -48,2 +48,12 @@ return { | ||
cookies: {}, | ||
cookie: function(name, value, options) { | ||
this.cookies[name] = { value: value, options: options }; | ||
}, | ||
clearCookie: function(name) { | ||
delete this.cookies[name] | ||
}, | ||
status: function(code) { | ||
@@ -53,3 +63,3 @@ this.statusCode = code; | ||
}, | ||
/** | ||
@@ -59,3 +69,3 @@ * Function: writeHead | ||
* The 'writeHead' function from node's HTTP API. | ||
* | ||
* | ||
* Parameters: | ||
@@ -71,5 +81,5 @@ * | ||
} | ||
this.statusCode = statusCode; | ||
// Note: Not sure if the headers given in this function | ||
@@ -85,7 +95,7 @@ // overwrite any headers specified earlier. | ||
}, | ||
/** | ||
* The 'send' function from node's HTTP API that returns data | ||
* to the client. Can be called multiple times. | ||
* | ||
* | ||
* @param data The data to return. Must be a string. | ||
@@ -98,6 +108,6 @@ */ | ||
break; | ||
case 2: | ||
if (typeof a == 'number') { | ||
this.statusCode = a; | ||
this.statusCode = a; | ||
_data += b; | ||
@@ -108,3 +118,3 @@ } | ||
this.statusCode = b; | ||
console.warn("WARNING: Called 'send' with deprecated parameter order"); | ||
console.warn("WARNING: Called 'send' with deprecated parameter order"); | ||
} | ||
@@ -116,3 +126,3 @@ else { | ||
break; | ||
case 3: | ||
@@ -122,5 +132,5 @@ _data += a; | ||
this.statusCode = c; | ||
console.warn("WARNING: Called 'send' with deprecated three parameters"); | ||
console.warn("WARNING: Called 'send' with deprecated three parameters"); | ||
break; | ||
default: | ||
@@ -130,4 +140,4 @@ break; | ||
}, | ||
/** | ||
@@ -140,7 +150,7 @@ * Function: write | ||
* | ||
* data - The data to return. Must be a string. Appended to | ||
* data - The data to return. Must be a string. Appended to | ||
* previous calls to data. | ||
* encoding - Optional encoding value. | ||
*/ | ||
write: function( data, encoding ) { | ||
@@ -158,7 +168,7 @@ _data += data; | ||
* the connection request. This must be called. | ||
* | ||
* | ||
* Parameters: | ||
* | ||
* data - Optional data to return. Must be a string. Appended | ||
* to previous calls to <send>. | ||
* to previous calls to <send>. | ||
* encoding - Optional encoding value. | ||
@@ -217,42 +227,42 @@ */ | ||
writable: function(){ | ||
return writableStream.writable.apply(this, arguments); | ||
writable: function(){ | ||
return writableStream.writable.apply(this, arguments); | ||
}, | ||
// end: function(){ | ||
// return writableStream.end.apply(this, arguments); | ||
// end: function(){ | ||
// return writableStream.end.apply(this, arguments); | ||
// }, | ||
destroy: function(){ | ||
return writableStream.destroy.apply(this, arguments); | ||
destroy: function(){ | ||
return writableStream.destroy.apply(this, arguments); | ||
}, | ||
destroySoon: function(){ | ||
return writableStream.destroySoon.apply(this, arguments); | ||
destroySoon: function(){ | ||
return writableStream.destroySoon.apply(this, arguments); | ||
}, | ||
addListener: function(event, listener){ | ||
return eventEmitter.addListener.apply(this, arguments); | ||
addListener: function(event, listener){ | ||
return eventEmitter.addListener.apply(this, arguments); | ||
}, | ||
on: function(event, listener){ | ||
return eventEmitter.on.apply(this, arguments); | ||
on: function(event, listener){ | ||
return eventEmitter.on.apply(this, arguments); | ||
}, | ||
once: function(event, listener){ | ||
return eventEmitter.once.apply(this, arguments); | ||
once: function(event, listener){ | ||
return eventEmitter.once.apply(this, arguments); | ||
}, | ||
removeListener: function(event, listener){ | ||
return eventEmitter.removeListener.apply(this, arguments); | ||
removeListener: function(event, listener){ | ||
return eventEmitter.removeListener.apply(this, arguments); | ||
}, | ||
removeAllListeners: function(event){ | ||
return eventEmitter.removeAllListeners.apply(this, arguments); | ||
removeAllListeners: function(event){ | ||
return eventEmitter.removeAllListeners.apply(this, arguments); | ||
}, | ||
setMaxListeners: function(n){ | ||
return eventEmitter.setMaxListeners.apply(this, arguments) | ||
setMaxListeners: function(n){ | ||
return eventEmitter.setMaxListeners.apply(this, arguments) | ||
}, | ||
listeners: function(event){ | ||
return eventEmitter.listeners.apply(this, arguments); | ||
listeners: function(event){ | ||
return eventEmitter.listeners.apply(this, arguments); | ||
}, | ||
emit: function(event){ | ||
return eventEmitter.emit.apply(this, arguments); | ||
emit: function(event){ | ||
return eventEmitter.emit.apply(this, arguments); | ||
}, | ||
// | ||
// | ||
//This mock object stores some state as well | ||
//as some test-analysis functions: | ||
/** | ||
@@ -268,3 +278,3 @@ * Function: _isEndCalled | ||
/** | ||
@@ -309,3 +319,3 @@ * Function: _getHeaders | ||
}, | ||
/** | ||
@@ -316,3 +326,3 @@ * Function: _isUTF8 | ||
* this function return true. False otherwise. | ||
* | ||
* | ||
* Returns: | ||
@@ -348,2 +358,2 @@ * | ||
}; | ||
}; | ||
}; |
@@ -5,3 +5,3 @@ { | ||
"description": "Mock 'http' objects for testing Express routing functions", | ||
"version": "0.0.9", | ||
"version": "1.0.0", | ||
"homepage": "http://www.github.com/howardabrams/node-mocks-http", | ||
@@ -8,0 +8,0 @@ "keywords": [ |
@@ -28,5 +28,5 @@ node-mocks-http | ||
var response = httpMocks.createResponse(); | ||
aroute(request, response); | ||
var data = JSON.parse( response._getData() ); | ||
@@ -54,3 +54,3 @@ test.equal("Bob Dog", data.name); | ||
var httpMocks = require('../lib/http-mock'); | ||
Design Decisions | ||
@@ -74,2 +74,7 @@ ---------------- | ||
v 0.0.9 | ||
------- | ||
* Add support for response cookies | ||
v 0.0.8 | ||
@@ -102,3 +107,3 @@ ------- | ||
calling the `_setSessionVariable()` method, and read as an object. | ||
v 0.0.3 | ||
@@ -114,3 +119,3 @@ ------- | ||
* Code refactoring of the `Response` mock. | ||
v 0.0.1 | ||
@@ -117,0 +122,0 @@ ------- |
@@ -11,3 +11,3 @@ /** | ||
var response = httpMocks.createResponse(); | ||
response.send("Hello", 'utf8'); | ||
@@ -35,3 +35,3 @@ response.send("World"); | ||
response.end("World"); | ||
test.equal("HelloWorld", response._getData()); | ||
@@ -47,3 +47,3 @@ | ||
response.end("Hello World"); | ||
test.equal("Hello World", response._getData()); | ||
@@ -57,6 +57,6 @@ | ||
var response = httpMocks.createResponse(); | ||
response.write("Hello", 'utf8'); | ||
response.end("World"); | ||
test.equal("HelloWorld", response._getData()); | ||
@@ -71,6 +71,6 @@ | ||
var response = httpMocks.createResponse(); | ||
response.setHeader('foo', 'bar'); | ||
response.setHeader('bling', 'blang'); | ||
test.equal('bar', response.getHeader('foo')); | ||
@@ -81,3 +81,3 @@ test.equal('blang', response.getHeader('bling')); | ||
test.ok( !response.getHeader('bling')); | ||
test.done(); | ||
@@ -88,6 +88,6 @@ }; | ||
var response = httpMocks.createResponse(); | ||
var body = 'hello world'; | ||
response.end(body); | ||
test.throws( function() { | ||
@@ -101,3 +101,3 @@ response.setHead('Content-Length', body.length); | ||
var response = httpMocks.createResponse(); | ||
var body = 'hello world'; | ||
@@ -108,3 +108,3 @@ response.writeHead(200, { | ||
response.end(body); | ||
test.equal(200, response._getStatusCode() ); | ||
@@ -120,6 +120,6 @@ test.equal(body, response._getData() ); | ||
var response = httpMocks.createResponse(); | ||
var body = 'hello world'; | ||
response.end(body); | ||
test.throws( function() { | ||
@@ -143,3 +143,3 @@ response.writeHead(200, { | ||
var t = 'This is a weird status code'; | ||
var response = httpMocks.createResponse(); | ||
@@ -156,3 +156,3 @@ response.send(s, t); | ||
var t = 'This is a weird status code'; | ||
var response = httpMocks.createResponse(); | ||
@@ -167,3 +167,3 @@ response.send(t, s); | ||
exports['implement - WriteableStream'] = function(test){ | ||
var response = httpMocks.createResponse(); | ||
var response = httpMocks.createResponse(); | ||
test.equal(typeof(response.writable), 'function'); | ||
@@ -176,3 +176,3 @@ test.equal(typeof(response.destroy), 'function'); | ||
exports['implement - EventEmitter'] = function(test){ | ||
var response = httpMocks.createResponse(); | ||
var response = httpMocks.createResponse(); | ||
test.equal(typeof(response.addListener), 'function'); | ||
@@ -188,1 +188,22 @@ test.equal(typeof(response.on), 'function'); | ||
}; | ||
exports['cookies - Cookies creation'] = function(test) { | ||
var response = httpMocks.createResponse(); | ||
test.deepEqual(response.cookies, {}); | ||
test.done(); | ||
}; | ||
exports['cookies - Cookies assignment'] = function(test) { | ||
var response = httpMocks.createResponse(); | ||
response.cookie("egg", "chicken", { maxAge: 1000 }); | ||
test.deepEqual(response.cookies, {egg: {value: 'chicken', options: { maxAge: 1000 }}}); | ||
test.done(); | ||
}; | ||
exports['cookies - Cookie deletion'] = function(test) { | ||
var response = httpMocks.createResponse(); | ||
response.cookie("egg", "chicken", { maxAge: 1000 }); | ||
response.clearCookie("egg"); | ||
test.deepEqual(response.cookies, {}); | ||
test.done(); | ||
}; |
No v1
QualityPackage is not semver >=1. This means it is not stable and does not support ^ ranges.
Found 1 instance in 1 package
31301
773
0
120