diff --git a/app/routes/status.js b/app/routes/status.js index 9cb67aa5..40b8fda1 100644 --- a/app/routes/status.js +++ b/app/routes/status.js @@ -7,7 +7,7 @@ router.route('/') // get the status (accessed at GET http://localhost:8080/status) .get(function(req, res) { - var stat = {"status":"OK"}; + var stat = {"status":"running"} res.send(stat); }); diff --git a/package.json b/package.json index c41b1d96..42086820 100644 --- a/package.json +++ b/package.json @@ -7,7 +7,6 @@ "url": "https://github.com/Mainflux/mainflux" }, "license": "Apache-2.0", - "dependencies": { "express": "~4.0.0", "mongoose": "~3.6.13", @@ -17,8 +16,10 @@ "lodash": "~3.10.1" }, "devDependencies": { + "chai": "^3.4.0", "gulp-jshint": "^1.11.2", "gulp-nodemon": "^2.0.3", - "jshint-stylish": "^2.0.1" + "jshint-stylish": "^2.0.1", + "supertest": "^1.1.0" } } diff --git a/server.js b/server.js index e291c430..ca6f1d2e 100644 --- a/server.js +++ b/server.js @@ -1,4 +1,10 @@ -// server.js +/** + * Copyright (c) Mainflux + * + * Mainflux server is licensed under an Apache license, version 2.0 license. + * All rights not explicitly granted in the Apache license, version 2.0 are reserved. + * See the included LICENSE file for more details. + */ /** * Extrenal configs are kept in the config.js file on the same level @@ -7,31 +13,32 @@ var config = require('./config/config'); console.log(config.message); -// BASE SETUP -// ============================================================================= - -// call the packages we need +/** + * SETUP + */ var express = require('express'); // call express var app = express(); // define our app using express var bodyParser = require('body-parser'); -// MongoDB +/** MongoDB */ var mongoose = require('mongoose'); -// Docker MongoDB url + +/** Docker MongoDB url */ var docker_mongo_url = process.env.MAINFLUX_MONGODB_1_PORT_27017_TCP_ADDR -mongoose.connect(docker_mongo_url || config.db.path + ':' + config.db.port + '/' + config.db.name); // connect to our database +/** Connect to DB */ +mongoose.connect(docker_mongo_url || config.db.path + ':' + config.db.port + '/' + config.db.name); - -// configure app to use bodyParser() -// this will let us get the data from a POST +/** Configure app to use bodyParser() */ app.use(bodyParser.urlencoded({ extended: true })); app.use(bodyParser.json()); var port = process.env.PORT || config.port; // set our port -// ROUTES FOR OUR API -// ============================================================================= + +/** + * ROUTES + */ app.use('/status', require('./app/routes/status')); app.use('/devices', require('./app/routes/devices')); app.use('/users', require('./app/routes/users')); @@ -39,7 +46,15 @@ app.use('/sessions', require('./app/routes/sessions')); -// START THE SERVER -// ============================================================================= + +/** + * SERVER START + */ app.listen(port); console.log('Magic happens on port ' + port); + + +/** + * Export app for testing + */ +module.exports = app; diff --git a/test/apiTest.js b/test/apiTest.js new file mode 100644 index 00000000..e4103683 --- /dev/null +++ b/test/apiTest.js @@ -0,0 +1,35 @@ +/** Chai stuff */ +var should = require('chai').should; +var expect = require('chai').expect; + +/** Supertest for API */ +var supertest = require('supertest'); +var server = require('../server'); +var api = supertest(server); + +/** + * API test description + */ +describe('loading express', function () { + /** + * /status + */ + it('responds to /status', function testSlash(done) { + api + .get('/status') + .expect(200) + .end(function(err, res){ + expect(res.body.status).to.equal("running"); + done(); + }); + }); + + /** + * /foo/bar + */ + it('404 /foo/bar', function testPath(done) { + api + .get('/foo/bar') + .expect(404, done); + }); +});