| @ -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); | |||||
| }); | |||||
| }); | |||||