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",
|
"id": "manus-dashboard",
|
||||||
"name": "Dashboard Recette",
|
"name": "Dashboard",
|
||||||
"category": "INFRA",
|
"category": "INFRA",
|
||||||
"urls": {
|
"urls": {
|
||||||
"recette": "https://dashboard.recette.santinova-soft.org",
|
"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');
|
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 {
|
return {
|
||||||
...manifest,
|
...manifest,
|
||||||
name: manifest.name.trim(),
|
name: displayName,
|
||||||
directory,
|
directory,
|
||||||
containerName: manifest.containerName || manifest.id,
|
containerName: manifest.containerName || manifest.id,
|
||||||
healthCheckUrl: manifest.urls[environment],
|
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', {
|
writeManifest(sandbox, 'invalide', {
|
||||||
id: 'app-invalide',
|
id: 'app-invalide',
|
||||||
name: 'Application invalide',
|
name: 'Application invalide',
|
||||||
@@ -38,22 +48,32 @@ try {
|
|||||||
});
|
});
|
||||||
|
|
||||||
const discovery = discoverApps({ appsBasePath: sandbox, environment: 'recette' });
|
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');
|
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.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.healthCheckUrl, app.urls.recette, 'la vérification doit cibler l’environnement courant');
|
||||||
assert.equal(app.containerName, 'itinova-contacts');
|
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 = {
|
const config = {
|
||||||
appsBasePath: sandbox,
|
appsBasePath: sandbox,
|
||||||
environment: 'recette',
|
environment: 'recette',
|
||||||
apps: [{ id: 'itinova-contacts', name: 'ancienne valeur statique' }],
|
apps: [{ id: 'itinova-contacts', name: 'ancienne valeur statique' }],
|
||||||
};
|
};
|
||||||
const refresh = refreshApps(config);
|
const refresh = refreshApps(config);
|
||||||
assert.equal(refresh.apps.length, 1, 'les applications non déployées ne doivent pas rester en cache');
|
assert.equal(refresh.apps.length, 2, '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(
|
||||||
|
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');
|
console.log('OK app-registry');
|
||||||
} finally {
|
} finally {
|
||||||
|
|||||||
Reference in New Issue
Block a user