diff --git a/src/routes/routesBase.js b/src/routes/routesBase.js index 79b51e5..e29c3fa 100644 --- a/src/routes/routesBase.js +++ b/src/routes/routesBase.js @@ -1,5 +1,6 @@ const express = require('express'); +const { protegeRouteAvecOOTS } = require('./utils'); const documentRecu = require('../api/documentRecu'); const routesBase = (config) => { @@ -25,7 +26,11 @@ const routesBase = (config) => { }, ); - routes.get('/documentRecu', (requete, reponse) => documentRecu(depotDonnees, reponse)); + routes.get( + '/documentRecu', + protegeRouteAvecOOTS(adaptateurEnvironnement), + (_requete, reponse) => documentRecu(depotDonnees, reponse), + ); return routes; }; diff --git a/src/routes/utils.js b/src/routes/utils.js new file mode 100644 index 0000000..7f7750d --- /dev/null +++ b/src/routes/utils.js @@ -0,0 +1,9 @@ +const protegeRouteAvecOOTS = (adaptateurEnvironnement) => ( + (_requete, reponse, suite) => ( + adaptateurEnvironnement.avecOOTS() + ? suite() + : reponse.status(501).send('Not Implemented Yet!') + ) +); + +module.exports = { protegeRouteAvecOOTS }; diff --git a/src/siteVitrine.js b/src/siteVitrine.js index 4e44a99..567c7b8 100644 --- a/src/siteVitrine.js +++ b/src/siteVitrine.js @@ -5,6 +5,7 @@ const express = require('express'); const routesAuth = require('./routes/routesAuth'); const routesBase = require('./routes/routesBase'); const routesOOTS = require('./routes/routesOOTS'); +const { protegeRouteAvecOOTS } = require('./routes/utils'); const creeServeur = (config) => { const { @@ -47,14 +48,12 @@ const creeServeur = (config) => { middleware, })); - const protegeRoute = (_requete, reponse, suite) => ( - adaptateurEnvironnement.avecOOTS() - ? suite() - : reponse.status(501).send('Not Implemented Yet!') + app.use( + '/oots', + protegeRouteAvecOOTS(adaptateurEnvironnement), + routesOOTS({ adaptateurEnvironnement, depotDonnees }), ); - app.use('/oots', protegeRoute, routesOOTS({ adaptateurEnvironnement, depotDonnees })); - app.use('/', routesBase({ adaptateurEnvironnement, depotDonnees, middleware })); const arreteEcoute = (suite) => serveur.close(suite); diff --git a/test/routes/routesBase.spec.js b/test/routes/routesBase.spec.js index fd025fb..18d93ab 100644 --- a/test/routes/routesBase.spec.js +++ b/test/routes/routesBase.spec.js @@ -77,4 +77,17 @@ describe('Le serveur des routes `/`', () => { }); }); }); + + describe('sur GET /documentRecu', () => { + it('retourne une erreur HTTP 501 (Not Implemented) si feature flip désactivé', () => { + expect.assertions(2); + serveur.adaptateurEnvironnement().avecOOTS = () => false; + + return axios.get(`http://localhost:${port}/documentRecu`) + .catch(({ response }) => { + expect(response.status).toBe(501); + expect(response.data).toBe('Not Implemented Yet!'); + }); + }); + }); });