fix: nommer le dashboard selon l environnement
This commit is contained in:
2
app.json
2
app.json
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"id": "manus-dashboard",
|
||||
"name": "Dashboard Recette",
|
||||
"name": "Dashboard",
|
||||
"category": "INFRA",
|
||||
"urls": {
|
||||
"recette": "https://dashboard.recette.santinova-soft.org",
|
||||
|
||||
@@ -51,9 +51,13 @@ function normalizeManifest(manifest, directory, environment) {
|
||||
throw new Error('ci doit être un objet avec une propriété required booléenne');
|
||||
}
|
||||
|
||||
const displayName = manifest.id === 'manus-dashboard'
|
||||
? `Dashboard ${environment === 'prod' ? 'Production' : 'Recette'}`
|
||||
: manifest.name.trim();
|
||||
|
||||
return {
|
||||
...manifest,
|
||||
name: manifest.name.trim(),
|
||||
name: displayName,
|
||||
directory,
|
||||
containerName: manifest.containerName || manifest.id,
|
||||
healthCheckUrl: manifest.urls[environment],
|
||||
|
||||
@@ -30,6 +30,16 @@ try {
|
||||
},
|
||||
});
|
||||
|
||||
writeManifest(sandbox, 'dashboard', {
|
||||
id: 'manus-dashboard',
|
||||
name: 'Dashboard',
|
||||
category: 'INFRA',
|
||||
urls: {
|
||||
recette: 'https://dashboard.recette.santinova-soft.org',
|
||||
prod: 'https://dashboard.santinova-soft.org',
|
||||
},
|
||||
});
|
||||
|
||||
writeManifest(sandbox, 'invalide', {
|
||||
id: 'app-invalide',
|
||||
name: 'Application invalide',
|
||||
@@ -38,22 +48,32 @@ try {
|
||||
});
|
||||
|
||||
const discovery = discoverApps({ appsBasePath: sandbox, environment: 'recette' });
|
||||
assert.equal(discovery.apps.length, 1, 'un manifeste invalide doit être exclu');
|
||||
assert.equal(discovery.apps.length, 2, 'un manifeste invalide doit être exclu');
|
||||
assert.equal(discovery.errors.length, 1, 'une erreur explicite doit être retournée');
|
||||
|
||||
const app = discovery.apps[0];
|
||||
const app = discovery.apps.find((candidate) => candidate.id === 'itinova-contacts');
|
||||
assert.equal(app.directory, 'contacts', 'le dossier doit être déduit du chemin du manifeste');
|
||||
assert.equal(app.healthCheckUrl, app.urls.recette, 'la vérification doit cibler l’environnement courant');
|
||||
assert.equal(app.containerName, 'itinova-contacts');
|
||||
|
||||
const dashboardRecette = discovery.apps.find((candidate) => candidate.id === 'manus-dashboard');
|
||||
assert.equal(dashboardRecette.name, 'Dashboard Recette');
|
||||
const productionDiscovery = discoverApps({ appsBasePath: sandbox, environment: 'prod' });
|
||||
const dashboardProduction = productionDiscovery.apps.find((candidate) => candidate.id === 'manus-dashboard');
|
||||
assert.equal(dashboardProduction.name, 'Dashboard Production');
|
||||
|
||||
const config = {
|
||||
appsBasePath: sandbox,
|
||||
environment: 'recette',
|
||||
apps: [{ id: 'itinova-contacts', name: 'ancienne valeur statique' }],
|
||||
};
|
||||
const refresh = refreshApps(config);
|
||||
assert.equal(refresh.apps.length, 1, 'les applications non déployées ne doivent pas rester en cache');
|
||||
assert.equal(config.apps[0].name, 'Itinova Contacts', 'app.json doit prévaloir sur toute définition statique');
|
||||
assert.equal(refresh.apps.length, 2, 'les applications non déployées ne doivent pas rester en cache');
|
||||
assert.equal(
|
||||
config.apps.find((candidate) => candidate.id === 'itinova-contacts').name,
|
||||
'Itinova Contacts',
|
||||
'app.json doit prévaloir sur toute définition statique'
|
||||
);
|
||||
|
||||
console.log('OK app-registry');
|
||||
} finally {
|
||||
|
||||
Reference in New Issue
Block a user