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', ai: { engines: [{ provider: 'Ollama', model: 'llama3.2:1b' }] }, urls: {}, containerName: 'referentiel-ia', }); assert.equal(result.category, 'INFRA'); assert.deepEqual(result.ai, { engines: [{ provider: 'Ollama', model: 'llama3.2:1b' }] }); console.log('healthcheck-category: OK'); })().catch((error) => { console.error(error); process.exit(1); });