Files
SteelBase/js/tests/verificador-persistencia.js

176 lines
7.1 KiB
JavaScript

/**
* Verificador de Status do Sistema de Persistência
* Verifica se os módulos foram carregados corretamente
*/
(function verificarStatusPersistencia() {
console.log('🔍 Verificando status do sistema de persistência...');
// Verificar após um delay para garantir que tudo foi carregado
setTimeout(() => {
const status = {
AdminConfigManager: typeof AdminConfigManager !== 'undefined',
BackupManager: typeof BackupManager !== 'undefined',
ToastManager: typeof ToastManager !== 'undefined',
adminConfigManager: window.adminConfigManager !== null,
backupManager: window.backupManager !== null,
toastManager: window.toastManager !== null
};
console.log('📊 Status do Sistema de Persistência:');
console.table(status);
// Verificar localStorage
const localStorageKeys = Object.keys(localStorage).filter(key =>
key.includes('admin') || key.includes('backup') || key.includes('config')
);
console.log('📁 Chaves no localStorage:', localStorageKeys);
// Tentar criar instâncias se não existirem
if (typeof AdminConfigManager !== 'undefined' && !window.adminConfigManager) {
try {
window.adminConfigManager = new AdminConfigManager();
console.log('✅ AdminConfigManager inicializado manualmente');
} catch (error) {
console.error('❌ Erro ao inicializar AdminConfigManager:', error);
}
}
if (typeof BackupManager !== 'undefined' && !window.backupManager) {
try {
window.backupManager = new BackupManager();
console.log('✅ BackupManager inicializado manualmente');
} catch (error) {
console.error('❌ Erro ao inicializar BackupManager:', error);
}
}
if (typeof ToastManager !== 'undefined' && !window.toastManager) {
try {
window.toastManager = new ToastManager();
console.log('✅ ToastManager inicializado manualmente');
} catch (error) {
console.error('❌ Erro ao inicializar ToastManager:', error);
}
}
// Testar funcionalidade básica
if (window.adminConfigManager) {
try {
const config = window.adminConfigManager.getConfig();
console.log('✅ Configuração atual:', config);
// Testar salvamento
window.adminConfigManager.updateConfig('test.verification', new Date().toISOString());
console.log('✅ Teste de salvamento realizado');
} catch (error) {
console.error('❌ Erro ao testar AdminConfigManager:', error);
}
}
// Mostrar resumo
const totalModulos = Object.keys(status).length;
const modulosOk = Object.values(status).filter(v => v).length;
const percentual = (modulosOk / totalModulos * 100).toFixed(1);
console.log(`📈 Sistema de Persistência: ${modulosOk}/${totalModulos} módulos OK (${percentual}%)`);
if (window.toastManager) {
if (percentual === '100.0') {
window.toastManager.success('✅ Sistema de persistência totalmente operacional!');
} else if (percentual >= '66.7') {
window.toastManager.warning(`⚠️ Sistema de persistência parcial (${percentual}%)`);
} else {
window.toastManager.error(`❌ Sistema de persistência com problemas (${percentual}%)`);
}
}
}, 3000); // Aguardar 3 segundos para garantir carregamento
// Também verificar após 10 segundos (backup)
setTimeout(() => {
console.log('🔍 Verificação de backup do sistema de persistência:');
if (window.adminConfigManager) {
try {
const config = window.adminConfigManager.getConfig();
console.log('✅ Config após 10s:', {
appName: config.app.name,
theme: config.theme.name,
version: config.version
});
} catch (error) {
console.error('❌ AdminConfigManager ainda com problemas:', error);
}
} else {
console.error('❌ AdminConfigManager não disponível após 10s');
}
}, 10000);
})();
// Função para debug detalhado
window.debugPersistencia = function() {
console.group('🔍 Debug Detalhado do Sistema de Persistência');
// Verificar cada módulo
console.log('1. Verificando AdminConfigManager:');
console.log(' - Tipo:', typeof AdminConfigManager);
console.log(' - Disponível:', typeof AdminConfigManager !== 'undefined');
if (typeof AdminConfigManager !== 'undefined') {
try {
const tempManager = new AdminConfigManager();
console.log(' - Instância criada com sucesso');
console.log(' - Config padrão:', tempManager.getConfig());
// Testar localStorage
const key = tempManager.configKey;
const data = localStorage.getItem(key);
console.log(' - localStorage key:', key);
console.log(' - Dados no localStorage:', data ? 'Presentes' : 'Ausentes');
} catch (error) {
console.error(' - Erro ao criar instância:', error);
}
}
console.log('2. Verificando BackupManager:');
console.log(' - Tipo:', typeof BackupManager);
console.log(' - Disponível:', typeof BackupManager !== 'undefined');
console.log('3. Verificando ToastManager:');
console.log(' - Tipo:', typeof ToastManager);
console.log(' - Disponível:', typeof ToastManager !== 'undefined');
console.log('4. Verificando variáveis globais:');
console.log(' - window.adminConfigManager:', window.adminConfigManager);
console.log(' - window.backupManager:', window.backupManager);
console.log(' - window.toastManager:', window.toastManager);
console.log('5. Verificando localStorage:');
const relevantKeys = Object.keys(localStorage).filter(key =>
key.includes('admin') || key.includes('backup') || key.includes('config')
);
console.log(' - Chaves relevantes:', relevantKeys);
relevantKeys.forEach(key => {
try {
const data = JSON.parse(localStorage.getItem(key));
console.log(` - ${key}:`, {
type: typeof data,
hasVersion: !!data.version,
hasAppConfig: !!(data.app || data.application),
hasTheme: !!(data.theme || data.themes),
size: JSON.stringify(data).length
});
} catch (e) {
console.log(` - ${key}: (dados inválidos)`);
}
});
console.groupEnd();
};
console.log('🔍 Sistema de verificação de persistência carregado');