fix: préserver la catégorie dans les statuts applicatifs

This commit is contained in:
Manus Déploiement Santinova
2026-09-04 15:37:19 +00:00
parent 5c3d644ab8
commit 4a2be26a10
2 changed files with 40 additions and 0 deletions

View File

@@ -63,6 +63,8 @@ async function checkApp(appConfig) {
id: appConfig.id,
name: appConfig.name,
description: appConfig.description || '',
// Préserve la catégorie du manifeste pour le rendu différencié des services INFRA.
category: appConfig.category || 'SANTINOVA',
urls: appConfig.urls,
containerName: appConfig.containerName,
lastCheck: new Date().toISOString(),

View File

@@ -0,0 +1,38 @@
const assert = require('node:assert/strict');
const Module = require('node:module');
// Le test est autonome : aucune dépendance externe ni requête réseau n’est nécessaire.
const originalLoad = Module._load;
Module._load = function mockAxios(request, parent, isMain) {
if (request === 'axios') return { get: async () => ({ status: 200 }) };
return originalLoad.call(this, request, parent, isMain);
};
// Le test isole Docker : il valide le contrat de données émis par healthcheck.
const dockerPath = require.resolve('../src/docker');
require.cache[dockerPath] = {
id: dockerPath,
filename: dockerPath,
loaded: true,
exports: {
getContainerInfo: async () => ({ running: true }),
},
};
const { checkApp } = require('../src/healthcheck');
(async () => {
const result = await checkApp({
id: 'referentiel-ia',
name: 'Référentiel IA Santinova',
category: 'INFRA',
urls: {},
containerName: 'referentiel-ia',
});
assert.equal(result.category, 'INFRA');
console.log('healthcheck-category: OK');
})().catch((error) => {
console.error(error);
process.exit(1);
});