WIP: 6533 myLogger_salix #2

Draft
jsegarra wants to merge 11 commits from 6533_myLogger_salix into master
1 changed files with 99 additions and 0 deletions
Showing only changes of commit 3bedd85e60 - Show all commits

View File

@ -0,0 +1,99 @@
const assert = require("assert");
const fs = require("fs");
const path = require("path");
const Salix = require("./Salix"); // Ajusta la ruta si está en otro directorio
// Mock del sistema de archivos
const mockFs = {
files: {},
existsSync(filePath) {
return !!this.files[filePath];
},
writeFileSync(filePath, content) {
this.files[filePath] = content;
},
readFileSync(filePath) {
if (!this.existsSync(filePath)) {
throw { code: "ENOENT" };
}
return this.files[filePath];
},
reset() {
this.files = {};
},
};
// Reemplaza los métodos reales de fs con el mock
const originalFs = { ...fs };
Object.assign(fs, mockFs);
(async () => {
try {
// Configuración inicial
const loggerMock = {
conf: {
salix: {
url: "http://example.com",
api: {
status: "status",
logInfo: "logInfo",
},
renewInterval: 10,
},
},
};
// Test: Inicialización básica
const salix = new Salix();
await salix.init(loggerMock);
assert.strictEqual(salix.conf, loggerMock.conf, "La configuración no se inicializó correctamente");
console.log("✅ Salix.init configuró correctamente los valores iniciales.");
// Test: Cargar configuración
const mockFilePath = path.join(__dirname, "..", "config/salix.local.yml");
mockFs.files[mockFilePath] = JSON.stringify({ salixVersion: "1.0.0" });
const loadedConfig = await salix.loadConfig();
assert.deepStrictEqual(
loadedConfig,
{ salixVersion: "1.0.0" },
"La configuración cargada no coincide con lo esperado"
);
console.log("✅ Salix.loadConfig cargó correctamente el archivo YAML.");
// Test: Guardar configuración
const newConfig = { log: "testLog" };
await salix.saveConfig(newConfig);
const savedContent = JSON.parse(mockFs.files[mockFilePath]);
assert.strictEqual(
savedContent.log,
"testLog",
"La configuración no se guardó correctamente"
);
console.log("✅ Salix.saveConfig guardó correctamente el archivo YAML.");
// Test: Comparar versiones
const isDeprecated = salix.compareVersion("2.0.0", "1.0.0");
assert.strictEqual(
isDeprecated,
true,
"La comparación de versiones no detectó correctamente la versión como desactualizada"
);
console.log("✅ Salix.compareVersion funciona correctamente.");
// Limpia el mock del sistema de archivos
mockFs.reset();
} catch (error) {
console.error("❌ Error en las pruebas:", error);
} finally {
// Restaura los métodos originales de fs
Object.assign(fs, originalFs);
}
})();