From d80d09c05d7b24afdba1c0672c92a31d8a84e3c6 Mon Sep 17 00:00:00 2001 From: Fernanda Martins Date: Wed, 25 May 2016 16:36:37 -0300 Subject: [PATCH] Adds wrapper for integration tests --- index.js | 4 ++-- package.json | 2 +- src/app/index.js | 24 ----------------------- src/app_test.js | 21 -------------------- src/server.js | 35 ++++++++++++++++++++++++++++++++++ tests/integration/run_tests.js | 24 +++++++++++++++++++++++ tests/unit/app/app_spec.js | 2 +- 7 files changed, 63 insertions(+), 49 deletions(-) delete mode 100644 src/app/index.js delete mode 100644 src/app_test.js create mode 100644 src/server.js create mode 100644 tests/integration/run_tests.js diff --git a/index.js b/index.js index 37b01cc..6c0c75e 100644 --- a/index.js +++ b/index.js @@ -1,3 +1,3 @@ -var app = require('./src/app'); +var server = require('./src/server'); -app.start(); +server.start(); diff --git a/package.json b/package.json index c227bd9..003df7f 100644 --- a/package.json +++ b/package.json @@ -9,7 +9,7 @@ "scripts": { "pretest": "node ./tests/test_setup.js", "unit-test": "jasmine-node --verbose tests/unit", - "integration-test": "NODE_ENV=test jasmine-node --verbose tests/integration", + "integration-test": "NODE_ENV=test node ./tests/integration/run_tests.js", "test": "NODE_ENV=test ./node_modules/jasmine-node/bin/jasmine-node tests/unit/", "start": "NODE_ENV=app node index.js" }, diff --git a/src/app/index.js b/src/app/index.js deleted file mode 100644 index 1eca3bb..0000000 --- a/src/app/index.js +++ /dev/null @@ -1,24 +0,0 @@ -var restify = require('restify'); -var database = require('../db.connection'); -var controllers = require('../controllers'); -var port = process.env.VAMOS_JUNTAS_PORT || 8080; - -module.exports = { - start: function () { - - var server = restify.createServer({ - name: 'VamosJuntas' - }); - - server.use(restify.queryParser()); - server.use(restify.bodyParser()); - - server.get('/risks-around', controllers.risksAround); - server.post('/report-risk', controllers.reportRisk); - - server.listen(port, function() { - database.open(); - console.log('Vamos Juntas Start :D'); - }); - } -}; diff --git a/src/app_test.js b/src/app_test.js deleted file mode 100644 index 08c25e1..0000000 --- a/src/app_test.js +++ /dev/null @@ -1,21 +0,0 @@ -var restify = require('restify'); -var database = require('./db.connection'); -var services = require('./services'); -var port = process.env.VAMOS_JUNTAS_PORT || 8080; - -module.exports = { - start: function () { - var server = restify.createServer({ - name: 'VamosJuntas' - }); - - server.use(restify.queryParser()); - - server.get('/risks-around', services.risksAround); - - server.listen(port, function() { - database.open('test'); - console.log('Vamos Juntas Start :D'); - }); - } -}; diff --git a/src/server.js b/src/server.js new file mode 100644 index 0000000..a59262b --- /dev/null +++ b/src/server.js @@ -0,0 +1,35 @@ +var restify = require('restify'); +var database = require('./db.connection'); +var controllers = require('./controllers'); +var port = process.env.VAMOS_JUNTAS_PORT || 8080; +var server; + +module.exports = { + start: function(callback) { + + server = restify.createServer({ + name: 'VamosJuntas' + }); + + server.use(restify.queryParser()); + server.use(restify.bodyParser()); + + server.get('/risks-around', controllers.risksAround); + server.post('/report-risk', controllers.reportRisk); + + server.listen(port, function() { + database.open(); + console.log('VamosJuntas started in port %d', port); + //callback to call when the server is ready + if(callback) { + callback(); + } + }); + }, + + close: function() { + console.log(server); + server.close(); + process.exit(0); + } +}; diff --git a/tests/integration/run_tests.js b/tests/integration/run_tests.js new file mode 100644 index 0000000..c673270 --- /dev/null +++ b/tests/integration/run_tests.js @@ -0,0 +1,24 @@ +//This run integration test + +// util that spawns a child process +var spawn = require('child_process').spawn; + +// reference to our node application server +var server = require('../../src/server.js'); + +// starts the server +server.start(function() { + // on server ready launch the jasmine-node process with your test file + var jasmineNode = spawn('jasmine-node', ['--verbose', './' ]); + + // logs process stdout/stderr to the console + function logToConsole(data) { + console.log(String(data)); + } + jasmineNode.stdout.on('data', logToConsole); + jasmineNode.stderr.on('data', logToConsole); + jasmineNode.on('exit', function(exitCode) { + // when jasmine-node is done, shuts down the application server + server.close(); + }); +}); diff --git a/tests/unit/app/app_spec.js b/tests/unit/app/app_spec.js index 2f9ff9a..9c2b2ba 100644 --- a/tests/unit/app/app_spec.js +++ b/tests/unit/app/app_spec.js @@ -3,7 +3,7 @@ var place = require('../../../src/domains/place.model'); describe('App', function () { var server, app; - app = require('../../../src/app'); + app = require('../../../src/server.js'); beforeEach(function () { server = createSpyObj('server', ['get', 'post', 'listen', 'use']);