WIP: 6533 myLogger_salix #2
|
@ -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);
|
||||
}
|
||||
})();
|
Loading…
Reference in New Issue