HTML and CSS Reference
In-Depth Information
Listing 14.12 Using stubFn with Node
module.exports = function (returnValue) {
function stub() {
stub.called = true;
stub.args = arguments;
stub.thisArg = this;
return returnValue;
}
stub.called = false;
return stub;
};
Listing 14.13 shows the test. It includes quite a bit of setup code, which we will
move around in a moment.
Listing 14.13 Expecting the request body to be parsed as JSON
var EventEmitter = require("events").EventEmitter;
var stub = require("stub");
/* ... */
testCase(exports, "chatRoomController.post", {
setUp: function () {
this.jsonParse = JSON.parse;
},
tearDown: function () {
JSON.parse = this.jsonParse;
},
"should parse request body as JSON": function (test) {
var req = new EventEmitter();
var controller = chatRoomController.create(req, {});
var data = { data: { user: "cjno", message: "hi" } };
var stringData = JSON.stringify(data);
var str = encodeURI(stringData);
JSON.parse = stub(data);
controller.post();
req.emit("data", str.substring(0, str.length / 2));
req.emit("data", str.substring(str.length / 2));
req.emit("end");
 
Search WWH ::




Custom Search