From 763f37d144993a140df6a8a1d5581e6c5b147e57 Mon Sep 17 00:00:00 2001 From: Joy Chang Date: Fri, 12 Oct 2018 13:16:56 -0500 Subject: [PATCH] fix(test): Use callback instead of timeout for server test --- .../app/templates/angularjs/test-server.js | 86 ++++++++++--------- generators/app/templates/basic/test-server.js | 86 ++++++++++--------- generators/app/templates/react/test-server.js | 86 ++++++++++--------- 3 files changed, 138 insertions(+), 120 deletions(-) diff --git a/generators/app/templates/angularjs/test-server.js b/generators/app/templates/angularjs/test-server.js index c8091f8..7d58d1a 100644 --- a/generators/app/templates/angularjs/test-server.js +++ b/generators/app/templates/angularjs/test-server.js @@ -16,55 +16,61 @@ var http = require('http'); // Below code demonstrates using various methods of testing describe('Testing Server', function() { + let test_server; + this.timeout(0); - before(function(done){ - require(process.cwd() + '/server/server'); - setTimeout(done, 5000); // Waiting 5 seconds for server to start - this.timeout(10000); + before(done => { + let app = require(process.cwd() + '/server/server'); + test_server = app.listen(process.env.PORT || 3000, done); }); - it('Public endpoint returns "Hello!"', function(done){ - var responseString = ''; - var options = { - host: 'localhost', - port: process.env.PORT || 3000, - path: '/' - }; + it('Public endpoint returns "Hello!"', function(done){ + var responseString = ''; - var callback = function(response){ - response.on('data', function (chunk) { - responseString += chunk; - }); + var options = { + host: 'localhost', + port: process.env.PORT || 3000, + path: '/' + }; - response.on('end', function () { - expect(responseString).to.include('You need to enable JavaScript to run this app.'); - done(); - }); - }; + var callback = function(response){ + response.on('data', function (chunk) { + responseString += chunk; + }); - http.request(options, callback).end(); - }); + response.on('end', function () { + expect(responseString).to.include('You need to enable JavaScript to run this app.'); + done(); + }); + }; - it('Health endpoint shows status up', function(done){ - var responseString = ''; + http.request(options, callback).end(); + }); + + it('Health endpoint shows status up', function(done){ + var responseString = ''; - var options = { - host: 'localhost', - port: process.env.PORT || 3000, - path: '/health' - }; + var options = { + host: 'localhost', + port: process.env.PORT || 3000, + path: '/health' + }; - var callback = function(response){ - response.on('data', function (chunk) { - responseString += chunk; - }); + var callback = function(response){ + response.on('data', function (chunk) { + responseString += chunk; + }); - response.on('end', function () { - expect(responseString).to.equal('{"status":"UP"}'); - done(); - }); - }; + response.on('end', function () { + expect(responseString).to.equal('{"status":"UP"}'); + done(); + }); + }; - http.request(options, callback).end(); - }); + http.request(options, callback).end(); + }); + + after(done => { + test_server.close(done); + }); }); diff --git a/generators/app/templates/basic/test-server.js b/generators/app/templates/basic/test-server.js index 48f2771..96ef092 100644 --- a/generators/app/templates/basic/test-server.js +++ b/generators/app/templates/basic/test-server.js @@ -16,55 +16,61 @@ var http = require('http'); // Below code demonstrates using various methods of testing describe('Testing Server', function() { + let test_server; + this.timeout(0); - before(function(done){ - require(process.cwd() + '/server/server'); - setTimeout(done, 5000); // Waiting 5 seconds for server to start - this.timeout(10000); + before(done => { + let app = require(process.cwd() + '/server/server'); + test_server = app.listen(process.env.PORT || 3000, done); }); - it('Public endpoint returns "Hello!"', function(done){ - var responseString = ''; - var options = { - host: 'localhost', - port: process.env.PORT || 3000, - path: '/' - }; + it('Public endpoint returns "Hello!"', function(done){ + var responseString = ''; - var callback = function(response){ - response.on('data', function (chunk) { - responseString += chunk; - }); + var options = { + host: 'localhost', + port: process.env.PORT || 3000, + path: '/' + }; - response.on('end', function () { - expect(responseString).to.include('You are currently running a Node.js app built for the IBM Cloud.'); - done(); - }); - }; + var callback = function(response){ + response.on('data', function (chunk) { + responseString += chunk; + }); - http.request(options, callback).end(); - }); + response.on('end', function () { + expect(responseString).to.include('You are currently running a Node.js app built for the IBM Cloud.'); + done(); + }); + }; - it('Health endpoint shows status up', function(done){ - var responseString = ''; + http.request(options, callback).end(); + }); + + it('Health endpoint shows status up', function(done){ + var responseString = ''; - var options = { - host: 'localhost', - port: process.env.PORT || 3000, - path: '/health' - }; + var options = { + host: 'localhost', + port: process.env.PORT || 3000, + path: '/health' + }; - var callback = function(response){ - response.on('data', function (chunk) { - responseString += chunk; - }); + var callback = function(response){ + response.on('data', function (chunk) { + responseString += chunk; + }); - response.on('end', function () { - expect(responseString).to.equal('{"status":"UP"}'); - done(); - }); - }; + response.on('end', function () { + expect(responseString).to.equal('{"status":"UP"}'); + done(); + }); + }; - http.request(options, callback).end(); - }); + http.request(options, callback).end(); + }); + + after(done => { + test_server.close(done); + }); }); diff --git a/generators/app/templates/react/test-server.js b/generators/app/templates/react/test-server.js index c8091f8..7d58d1a 100644 --- a/generators/app/templates/react/test-server.js +++ b/generators/app/templates/react/test-server.js @@ -16,55 +16,61 @@ var http = require('http'); // Below code demonstrates using various methods of testing describe('Testing Server', function() { + let test_server; + this.timeout(0); - before(function(done){ - require(process.cwd() + '/server/server'); - setTimeout(done, 5000); // Waiting 5 seconds for server to start - this.timeout(10000); + before(done => { + let app = require(process.cwd() + '/server/server'); + test_server = app.listen(process.env.PORT || 3000, done); }); - it('Public endpoint returns "Hello!"', function(done){ - var responseString = ''; - var options = { - host: 'localhost', - port: process.env.PORT || 3000, - path: '/' - }; + it('Public endpoint returns "Hello!"', function(done){ + var responseString = ''; - var callback = function(response){ - response.on('data', function (chunk) { - responseString += chunk; - }); + var options = { + host: 'localhost', + port: process.env.PORT || 3000, + path: '/' + }; - response.on('end', function () { - expect(responseString).to.include('You need to enable JavaScript to run this app.'); - done(); - }); - }; + var callback = function(response){ + response.on('data', function (chunk) { + responseString += chunk; + }); - http.request(options, callback).end(); - }); + response.on('end', function () { + expect(responseString).to.include('You need to enable JavaScript to run this app.'); + done(); + }); + }; - it('Health endpoint shows status up', function(done){ - var responseString = ''; + http.request(options, callback).end(); + }); + + it('Health endpoint shows status up', function(done){ + var responseString = ''; - var options = { - host: 'localhost', - port: process.env.PORT || 3000, - path: '/health' - }; + var options = { + host: 'localhost', + port: process.env.PORT || 3000, + path: '/health' + }; - var callback = function(response){ - response.on('data', function (chunk) { - responseString += chunk; - }); + var callback = function(response){ + response.on('data', function (chunk) { + responseString += chunk; + }); - response.on('end', function () { - expect(responseString).to.equal('{"status":"UP"}'); - done(); - }); - }; + response.on('end', function () { + expect(responseString).to.equal('{"status":"UP"}'); + done(); + }); + }; - http.request(options, callback).end(); - }); + http.request(options, callback).end(); + }); + + after(done => { + test_server.close(done); + }); });