From b406d3c7cf98dd7f0f8f7635bb1da1179dff4b11 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ivar=20Conradi=20=C3=98sthus?= Date: Fri, 23 Apr 2021 13:29:24 +0200 Subject: [PATCH] fix: should allow revive toggles --- src/lib/db/feature-toggle-store.js | 6 +++++- src/lib/routes/admin-api/archive.ts | 9 +++++++-- src/test/e2e/stores/feature-toggle-store.e2e.test.js | 5 +++++ 3 files changed, 17 insertions(+), 3 deletions(-) diff --git a/src/lib/db/feature-toggle-store.js b/src/lib/db/feature-toggle-store.js index 8c2ebfd4c1..55121b57a5 100644 --- a/src/lib/db/feature-toggle-store.js +++ b/src/lib/db/feature-toggle-store.js @@ -103,7 +103,11 @@ class FeatureToggleStore { .first(['project']) .from(TABLE) .where({ name }) - .then(r => (r ? r.project : undefined)); + .then(r => (r ? r.project : undefined)) + .catch(e => { + this.logger.error(e); + return undefined; + }); } async hasFeature(name) { diff --git a/src/lib/routes/admin-api/archive.ts b/src/lib/routes/admin-api/archive.ts index fd6f7e0937..b0cf8ce59b 100644 --- a/src/lib/routes/admin-api/archive.ts +++ b/src/lib/routes/admin-api/archive.ts @@ -21,7 +21,11 @@ export default class ArchiveController extends Controller { this.featureService = featureToggleService; this.get('/features', this.getArchivedFeatures); - this.post('/revive/:name', this.reviveFeatureToggle, UPDATE_FEATURE); + this.post( + '/revive/:featureName', + this.reviveFeatureToggle, + UPDATE_FEATURE, + ); } // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types @@ -37,9 +41,10 @@ export default class ArchiveController extends Controller { // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types async reviveFeatureToggle(req, res): Promise { const userName = extractUser(req); + const { featureName } = req.params; try { - await this.featureService.reviveToggle(req.params.name, userName); + await this.featureService.reviveToggle(featureName, userName); return res.status(200).end(); } catch (error) { this.logger.error('Server failed executing request', error); diff --git a/src/test/e2e/stores/feature-toggle-store.e2e.test.js b/src/test/e2e/stores/feature-toggle-store.e2e.test.js index 2ddf87e4ea..f545236efb 100644 --- a/src/test/e2e/stores/feature-toggle-store.e2e.test.js +++ b/src/test/e2e/stores/feature-toggle-store.e2e.test.js @@ -24,3 +24,8 @@ test.serial('should not crash for unknown toggle', async t => { ); t.is(project, undefined); }); + +test.serial('should not crash for undefined toggle name', async t => { + const project = await featureToggleStore.getProjectId(undefined); + t.is(project, undefined); +});