Initial commit SteelBase - Oficiais e Funcionando
This commit is contained in:
69
js/tests/test-backup-log.js
Normal file
69
js/tests/test-backup-log.js
Normal file
@@ -0,0 +1,69 @@
|
||||
/**
|
||||
* Teste completo de Backup e Log
|
||||
* Executar no console: runBackupAndLogTest()
|
||||
*/
|
||||
(function(){
|
||||
async function run(){
|
||||
const results = [];
|
||||
const add = (ok, msg) => { results.push({ ok, msg }); console.log(`${ok ? '✅' : '❌'} ${msg}`); };
|
||||
try {
|
||||
if (!window.backupManager || !window.dataManager) {
|
||||
add(false, 'Managers não encontrados (backupManager/dataManager)');
|
||||
return { results };
|
||||
}
|
||||
|
||||
console.group('🔧 Teste: Backup e Log');
|
||||
|
||||
// Estado inicial
|
||||
const beforeBackups = window.backupManager.getBackups();
|
||||
console.log('Backups existentes:', beforeBackups.length);
|
||||
|
||||
// 1) Criar backup manual
|
||||
const newBackup = await window.backupManager.createBackup('Backup manual - Teste');
|
||||
add(typeof newBackup.timestamp === 'number', 'timestamp numérico no backup criado');
|
||||
add(new Date(newBackup.createdAt).toString() !== 'Invalid Date', 'data válida no backup criado');
|
||||
add(typeof newBackup.sizeBytes === 'number' && newBackup.sizeBytes > 0, 'sizeBytes válido no backup criado');
|
||||
add(typeof newBackup.size === 'string' && /B|KB|MB|GB/.test(newBackup.size), 'size formatado no backup criado');
|
||||
|
||||
// 2) Listagem sem "Invalid Date" ou "undefined"
|
||||
const list = window.backupManager.getBackups();
|
||||
const invalids = list.filter(b => {
|
||||
const d = Number(b.createdAt ?? b.timestamp);
|
||||
return isNaN(d) || new Date(d).toString() === 'Invalid Date' || b.size == null || b.sizeBytes == null;
|
||||
});
|
||||
add(invalids.length === 0, 'lista de backups sem "Invalid Date"/"undefined"');
|
||||
|
||||
// 3) Restauração (escuta evento)
|
||||
let restoredEvent = false;
|
||||
const handler = () => { restoredEvent = true; };
|
||||
document.addEventListener('backupRestored', handler, { once: true });
|
||||
await window.backupManager.restoreBackup(newBackup.id);
|
||||
add(restoredEvent === true, 'evento de restauração disparado');
|
||||
|
||||
// 4) Remoção do backup criado
|
||||
window.backupManager.removeBackup(newBackup.id);
|
||||
const afterRemoval = window.backupManager.getBackups();
|
||||
add(!afterRemoval.find(b => b.id === newBackup.id), 'backup de teste removido com sucesso');
|
||||
|
||||
// 5) Atualização de logs (metadata)
|
||||
const metaBefore = window.dataManager.getMetadata();
|
||||
await window.dataManager.updateAllData();
|
||||
const metaAfter = window.dataManager.getMetadata();
|
||||
add(metaAfter && metaBefore && metaAfter.lastUpdate > metaBefore.lastUpdate, 'log: lastUpdate atualizado');
|
||||
add(metaAfter && (metaAfter.successCount + metaAfter.errorCount === metaAfter.totalTypes), 'log: contagem consistente');
|
||||
|
||||
console.groupEnd();
|
||||
|
||||
return {
|
||||
results,
|
||||
backups: window.backupManager.getBackups(),
|
||||
metadata: window.dataManager.getMetadata()
|
||||
};
|
||||
} catch (err) {
|
||||
add(false, `Erro no teste: ${err.message}`);
|
||||
return { results, error: err };
|
||||
}
|
||||
}
|
||||
|
||||
window.runBackupAndLogTest = run;
|
||||
})();
|
||||
Reference in New Issue
Block a user