diff --git a/src/libs/middlewares/query.js b/src/libs/middlewares/query.js index 42b7b7df784de6f35e18c2fed7047ee56a5b4949..ecef42951b95deabe9a11c3d90e9af11dc01d013 100644 --- a/src/libs/middlewares/query.js +++ b/src/libs/middlewares/query.js @@ -10,7 +10,7 @@ function query(req, res, next) { log.debug(result); req.result = result; if (result.length === 0) { - next({status: 404, message: 'Not Found'}); + next({status: 404, message: 'No results found in database'}); } next(); }, (error) => { diff --git a/src/libs/routes/simulation.js b/src/libs/routes/simulation.js index 6469d4d6b3df70077b9f38fca96c6ae479133022..da1204be89dc4b4bec38a7d20749c73e83cb6b56 100644 --- a/src/libs/routes/simulation.js +++ b/src/libs/routes/simulation.js @@ -14,6 +14,21 @@ const response = require(`${libs}/middlewares/response`); const Simulation = require(`${libs}/models/simulation`); +simulationApp.get('/time', (req, res, next) => { + const maxTime = parseInt(req.query.max_time, 10); + log.debug('maxTime: ', maxTime); + if(isNaN(maxTime)) { + res.status(400); + next({ + status: 400, + message: 'Invalid value for mandatory parameter max_time' + }); + } + res.json({ + result: Array.apply(null, {length: maxTime}).map(Number.call, Number).map((i)=>i+1) + }); +}); + simulationApp.get('/', (req, res) => { let out = { success: true, msg: 'controller working' }; out.result = new Array() diff --git a/src/test/query.js b/src/test/query.js index 6ff6d95b6bbf43777609a7c93e5283a7e23254bf..6d3454452d882fb34f3d75092e63d74cb3d3642d 100644 --- a/src/test/query.js +++ b/src/test/query.js @@ -84,7 +84,7 @@ describe('Query middleware', () => { error.should.have.property('status'); error.status.should.be.equal(404); error.should.have.property('message'); - error.message.should.be.equal('Not Found'); + error.message.should.be.equal('No results found in database'); done(); }); }); diff --git a/src/test/simulation.js b/src/test/simulation.js index c74ca3ae0c8d47171c7ab402d9e6ff460dcc46a5..91996ce1774c283f522aa7a0d431c76476aeab11 100644 --- a/src/test/simulation.js +++ b/src/test/simulation.js @@ -405,4 +405,29 @@ describe('Requires a simulation', () => { done(); }); }); + + it('should returns an array in simulation/time', (done) => { + let max_time = 10; + chai.request(server) + .get(`/api/v1/simulation/time?max_time=${max_time}`) + .end((err, res) => { + res.should.have.status(200); + res.should.be.json; + res.body.should.have.property('result'); + res.body.result.should.be.array; + done(); + }); + }); + + it('should return an error when no max_time is specified in simulation/time', (done) => { + chai.request(server) + .get(`/api/v1/simulation/time`) + .end((err, res) => { + res.should.have.status(400); + res.should.be.json; + res.body.should.have.property('error'); + res.body.error.should.equal('Invalid value for mandatory parameter max_time'); + done(); + }); + }); });