Browse Source

test coverage, it's a good thing ™

master
Brett Langdon 12 years ago
parent
commit
bcb0d8f3af
1 changed files with 126 additions and 0 deletions
  1. +126
    -0
      test/server.rootHandler.js

+ 126
- 0
test/server.rootHandler.js View File

@ -0,0 +1,126 @@
var assert = require("assert");
var sinon = require("sinon");
var yaps = require("../");
suite("Server.RootHandler", function(){
test("should call default 404 when no handlers, setup or notFounds registered", function(done){
var response_api = {
writeHead: function(){},
end: function(){}
};
var response_writeHead = sinon.stub(response_api, "writeHead");
var response_end = sinon.stub(response_api, "end", function(){
assert.ok(this.writeHead.calledOnce);
assert.ok(this.end.calledOnce);
assert.ok(this.writeHead.calledWith(404));
assert.ok(this.end.calledWith("Not Found"));
done();
});
var server = new yaps.server();
server.rootHandler.call(server.server, {
url: "/test",
method: "GET",
}, response_api);
});
test("should call default 404 when no handlers respond", function(done){
var handler = function(request, server, respond){
respond(null);
};
var handler_spy = sinon.spy(handler);
var response_api = {
writeHead: function(){},
end: function(){}
};
var response_writeHead = sinon.stub(response_api, "writeHead");
var response_end = sinon.stub(response_api, "end", function(){
assert.ok(handler_spy.calledOnce);
assert.ok(this.writeHead.calledOnce);
assert.ok(this.end.calledOnce);
assert.ok(this.writeHead.calledWith(404));
assert.ok(this.end.calledWith("Not Found"));
done();
});
var server = new yaps.server();
server.routes.GET = {
"/test": [
handler_spy,
]
};
server.rootHandler.call(server.server, {
url: "/test",
method: "GET",
}, response_api);
});
test("should call default 404 when route has no handlers", function(done){
var response_api = {
writeHead: function(){},
end: function(){}
};
var response_writeHead = sinon.stub(response_api, "writeHead");
var response_end = sinon.stub(response_api, "end", function(){
assert.ok(this.writeHead.calledOnce);
assert.ok(this.end.calledOnce);
assert.ok(this.writeHead.calledWith(404));
assert.ok(this.end.calledWith("Not Found"));
done();
});
var server = new yaps.server();
server.routes.GET = {
"/test": []
};
server.rootHandler.call(server.server, {
url: "/test",
method: "GET",
}, response_api);
});
test("should properly end response when handler responds", function(done){
var handler = function(request, server, respond){
respond(200, "here is a test", {extra: "header"});
};
var handler_spy = sinon.spy(handler);
var response_api = {
writeHead: function(){},
end: function(){}
};
var response_writeHead = sinon.stub(response_api, "writeHead");
var response_end = sinon.stub(response_api, "end", function(){
assert.ok(handler_spy.calledOnce);
assert.ok(this.writeHead.calledOnce);
assert.ok(this.end.calledOnce);
assert.ok(this.writeHead.calledWith(200, {extra: "header"}));
assert.ok(this.end.calledWith("here is a test"));
done();
});
var server = new yaps.server();
server.routes.GET = {
"/test": [
handler_spy,
]
};
server.rootHandler.call(server.server, {
url: "/test",
method: "GET",
}, response_api);
});
});

Loading…
Cancel
Save