| @ -0,0 +1,143 @@ | |||||
| var assert = require("assert"); | |||||
| var sinon = require("sinon"); | |||||
| var yaps = require("../"); | |||||
| suite("Server.Constructor", function(){ | |||||
| test("should setup default attributes", function(){ | |||||
| var server = new yaps.server(); | |||||
| assert.deepEqual(server.settings, {}); | |||||
| assert.equal(server.bind, "0.0.0.0:8000"); | |||||
| assert.deepEqual(server.enabledPlugins, []); | |||||
| assert.deepEqual(server.routes, {}); | |||||
| assert.deepEqual(server.notFound, []); | |||||
| assert.deepEqual(server.setup, []); | |||||
| assert.ok(server.server.yaps); | |||||
| }); | |||||
| test("should take our provided settings", function(){ | |||||
| var server = new yaps.server({ | |||||
| test: true, | |||||
| bind: "127.0.0.1:9090", | |||||
| }); | |||||
| assert.deepEqual(server.settings, { | |||||
| test: true, | |||||
| bind: "127.0.0.1:9090", | |||||
| }); | |||||
| assert.equal(server.bind, "127.0.0.1:9090"); | |||||
| }); | |||||
| test("should take out provided http server", function(){ | |||||
| var server = new yaps.server({}, { | |||||
| test: true, | |||||
| }); | |||||
| var keys = []; | |||||
| for(var key in server.server){ | |||||
| keys.push(key); | |||||
| } | |||||
| assert.deepEqual(keys, ["test", "yaps"]); | |||||
| assert.equal(server.server.test, true); | |||||
| assert.ok(server.server.yaps); | |||||
| }); | |||||
| }); | |||||
| suite("Server.Stop", function(){ | |||||
| test("should call http_server.close on stop", function(){ | |||||
| var http_server_api = { | |||||
| close: function(){} | |||||
| }; | |||||
| var http_server = sinon.mock(http_server_api); | |||||
| http_server.expects("close").once(); | |||||
| var server = new yaps.server({}, http_server_api); | |||||
| server.stop(); | |||||
| http_server.verify(); | |||||
| }); | |||||
| }); | |||||
| suite("Server.ErrorHandler", function(){ | |||||
| test("should raise Error when errorHandler is called", function(){ | |||||
| var server = new yaps.server(); | |||||
| assert.throws(function(){ | |||||
| server.errorHandler("test error message"); | |||||
| }, Error); | |||||
| }); | |||||
| }); | |||||
| suite("Server.Start", function(){ | |||||
| test("should call http_server.on and http_server.listen", function(){ | |||||
| var http_server_api = { | |||||
| on: function(){}, | |||||
| listen: function(){} | |||||
| }; | |||||
| var http_server = sinon.mock(http_server_api); | |||||
| http_server.expects("listen").withArgs("8000", "0.0.0.0").once(); | |||||
| http_server.expects("on").twice(); | |||||
| var server = new yaps.server({}, http_server_api); | |||||
| server.start(); | |||||
| http_server.verify(); | |||||
| }); | |||||
| test("should call http_server.listen with different http bind", function(){ | |||||
| var http_server_api = { | |||||
| on: function(){}, | |||||
| listen: function(){} | |||||
| }; | |||||
| var http_server = sinon.mock(http_server_api); | |||||
| http_server.expects("listen").withArgs("9090", "127.0.0.1").once(); | |||||
| http_server.expects("on").twice(); | |||||
| var server = new yaps.server({ | |||||
| bind: "127.0.0.1:9090", | |||||
| }, http_server_api); | |||||
| server.start(); | |||||
| http_server.verify(); | |||||
| }); | |||||
| test("should call http_server.listen with unix socket", function(){ | |||||
| var http_server_api = { | |||||
| on: function(){}, | |||||
| listen: function(){} | |||||
| }; | |||||
| var http_server = sinon.mock(http_server_api); | |||||
| http_server.expects("listen").withArgs("unix://tmp/my.sock").once(); | |||||
| http_server.expects("on").twice(); | |||||
| var server = new yaps.server({ | |||||
| bind: "unix://tmp/my.sock", | |||||
| }, http_server_api); | |||||
| server.start(); | |||||
| http_server.verify(); | |||||
| }); | |||||
| test("should raise error when bind has more than 1 :", function(){ | |||||
| var http_server = sinon.stub(); | |||||
| var http_server_api = { | |||||
| on: function(){}, | |||||
| listen: function(){} | |||||
| }; | |||||
| var http_server = sinon.mock(http_server_api); | |||||
| var server = new yaps.server({ | |||||
| bind: "127.0.0.1:90:90", | |||||
| }, http_server_api); | |||||
| assert.throws(function(){ | |||||
| server.start(); | |||||
| }, Error); | |||||
| }); | |||||
| test("should call http_server.listen properly with only port number", function(){ | |||||
| var http_server_api = { | |||||
| on: function(){}, | |||||
| listen: function(){} | |||||
| }; | |||||
| var http_server = sinon.mock(http_server_api); | |||||
| http_server.expects("listen").withArgs("9090", "0.0.0.0").once(); | |||||
| http_server.expects("on").twice(); | |||||
| var server = new yaps.server({ | |||||
| bind: "9090", | |||||
| }, http_server_api); | |||||
| server.start(); | |||||
| http_server.verify(); | |||||
| }); | |||||
| }); | |||||