From 2ca18f9c655b72d5f5f5bb6c4a4471b498820b25 Mon Sep 17 00:00:00 2001 From: Claude Date: Thu, 1 Oct 2026 10:39:56 +0000 Subject: [PATCH] Analyse: Services-Route faellt bei Fehler der Analyse-Abfrage nicht aus Co-Authored-By: Claude Sonnet 5.5 --- server/routes/admin/services.js | 16 +++++++++++----- test/servicesRoute.test.js | 14 ++++++++++++++ 2 files changed, 25 insertions(+), 5 deletions(-) diff --git a/server/routes/admin/services.js b/server/routes/admin/services.js index 86dd63b..b9dc194 100644 --- a/server/routes/admin/services.js +++ b/server/routes/admin/services.js @@ -43,11 +43,17 @@ router.get('/', async (_req, res) => { loadByIds(config.collections.workorders, projects.map((p) => p.ticketId)), ]) - const analyseDocs = await listDocuments(config.collections.portalFeatures, [ - Query.equal('featureKey', 'analyse'), - Query.limit(5000), - ]) - const analyseState = new Map((analyseDocs || []).map((d) => [d.projectId, d.state || 'off'])) + // Ein Fehler hier darf die Services-Seite nicht kosten: dann ohne Analyse-Zustand + let analyseState = new Map() + try { + const analyseDocs = await listDocuments(config.collections.portalFeatures, [ + Query.equal('featureKey', 'analyse'), + Query.limit(5000), + ]) + analyseState = new Map((analyseDocs || []).map((d) => [d.projectId, d.state || 'off'])) + } catch (err) { + console.warn('[admin-services] Analyse-Zustände nicht geladen:', err.message) + } const groups = {} for (const p of projects) { diff --git a/test/servicesRoute.test.js b/test/servicesRoute.test.js index 6464a9f..375b0f9 100644 --- a/test/servicesRoute.test.js +++ b/test/servicesRoute.test.js @@ -80,3 +80,17 @@ test('Analyse: features.analyse je Projekt, Katalogstatus folgt ANALYSE_ENABLED' const { FEATURES } = await import('../server/services/projectKinds.js') assert.equal(FEATURES.analyse.status, 'in_development') }) + +test('Analyse-Abfrage scheitert => 200, features.analyse null', async () => { + aw.failNext({ method: 'GET', pathIncludes: '/portalFeatures/', status: 500 }) + const warn = console.warn + console.warn = () => {} + try { + const r = await get('jwt-admin') + assert.equal(r.status, 200) + const body = await r.json() + assert.equal(body.groups.website[0].features.analyse, null) + } finally { + console.warn = warn + } +})