UNPKG

fluentnode

Version:

Fluent apis for node (based on the concepts used in C#'s FluentSharp

134 lines (129 loc) 4.44 kB
// Generated by CoffeeScript 1.12.7 (function() { var http; require('../../src/fluentnode'); http = require('http'); describe('| node-native | http.Server', function() { var server, test_Data, test_Ip, test_Port, url; test_Port = 45566 + Math.floor((Math.random() * 100) + 1); test_Ip = '127.0.0.1'; test_Data = 'hello from web'; url = "http://" + test_Ip + ":" + test_Port; server = null; before(function(done) { url.assert_Contains(test_Ip).assert_Contains(test_Port); server = http.createServer(null); return server.listen_OnPort_Saying(test_Port, test_Data, (function(_this) { return function() { return done(); }; })(this)); }); after(function(done) { return server.close_And_Destroy_Sockets(function() { assert_Is_Null(server._handle); assert_Is_Null(server.address()); server._sockets.keys_Own().assert_Is_Array().assert_Size_Is(0); return done(); }); }); it('global.__fluentnode.settings.http', function() { return using(global.__fluentnode.http, function() { this.assert_Is_Object(); this.HTTP_GET_TIMEOUT.assert_Is(500); return this.HTTP_GET_DELAY.assert_Is(10); }); }); it('createServer_OnPort_Saying', function() { server.listen_OnPort_Saying.assert_Is_Function(); server.assert_Instance_Of(http.Server); server._handle.assert_Is_Not_Null(); server.address().port.assert_Is(test_Port); server.address().address.assert_Is(test_Ip); server._sockets.assert_Is_Object(); server._sockets._keys().assert_Is_Array().assert_Size_Is(0); return server._socket_Count.assert_Is(0); }); it('close_And_Destroy_Sockets (case when sockets where left open)', function(done) { var temp_Port, temp_Url; temp_Port = 1000..random(40000); temp_Url = "http://127.0.0.1:" + temp_Port; using(http.createServer(null), function() { this.add_Sockets_Close_Suport(); this.addListener('request', (function(_this) { return function(req, res) { _this.close_And_Destroy_Sockets(); return res.end('aaaaa'); }; })(this)); return this.listen(temp_Port); }); return temp_Url.GET(function(data, error) { assert_Is_Null(data); error.message.assert_Is('socket hang up'); error.code.assert_Is('ECONNRESET'); return done(); }); }); it('respond_With_Request_Headers', function(done) { var port; server.respond_With_Request_Headers(); port = url.split(':').last(); return url.GET_Json(function(headers) { headers.assert_Is({ "host": "127.0.0.1:" + port, "connection": "close" }); return done(); }); }); it('respond_With_Request_Url', function(done) { server.respond_With_Request_Url(); return url.append('/aaa/bbbb').GET_Json(function(url) { url.assert_Is({ "url": "/aaa/bbbb" }); return done(); }); }); it('respond_With_Object_As_Json', function(done) { var test_Object; server.respond_With_Object_As_Json.assert_Is_Function(); test_Object = { a: 123, b: 456 }; server.respond_With_Object_As_Json(test_Object); return url.GET(function(json) { json.assert_Is(JSON.stringify(test_Object)); test_Object.a = 'abc'; return url.GET_Json(function(value) { value.a.assert_Is('abc'); value.b.assert_Is(456); return done(); }); }); }); it('respond_With_String_As_Text', function(done) { var text; text = 20..random_Letters(); server.respond_With_String_As_Text(text); return url.GET(function(value) { value.assert_Is(text); server.respond_With_String_As_Text(test_Data); return url.GET(function(value) { value.assert_Is(test_Data); return done(); }); }); }); return it('respond_With_Request_Object', function(done) { server.respond_With_Request_Object(); return url.GET(function(req_Data) { req_Data.assert_Is_String(); req_Data.assert_Contains("headers: { host: '127.0.0.1:").assert_Contains(['socket:', 'connection:']); return done(); }); }); }); }).call(this);