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/simulation.js b/src/test/simulation.js index c74ca3ae0c8d47171c7ab402d9e6ff460dcc46a5..d620d615b1240dabac69ea7b1ed910284c2df39b 100644 --- a/src/test/simulation.js +++ b/src/test/simulation.js @@ -405,4 +405,30 @@ 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.equal([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]); + done(); + }); + }); + + it('should return an error when no max_time is specified 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(400); + res.should.be.json; + res.body.should.have.property('message'); + res.body.message.should.equal('Invalid value for mandatory parameter max_time'); + done(); + }); + }); });