Files
SteelBase/public/js/tests/test-persistencia-simples.js

185 lines
6.5 KiB
JavaScript

/**
* Teste Simples de Persistência - Executável no navegador
* Testa funcionalidades básicas do AdminConfigManager
*/
// Função principal de teste
async function testarPersistenciaSimples() {
console.log('🧪 Iniciando teste simples de persistência...');
try {
// Testar AdminConfigManager
if (typeof AdminConfigManager === 'undefined') {
throw new Error('AdminConfigManager não está disponível');
}
console.log('✅ AdminConfigManager disponível');
// Criar instância
const manager = new AdminConfigManager();
console.log('✅ Instância criada');
// Testar configuração padrão
const config = manager.getConfig();
console.log('✅ Configuração padrão obtida:', config);
// Testar salvamento
manager.updateConfig('app.name', 'Aço Calc Pro - Teste');
manager.updateConfig('theme.name', 'dark');
console.log('✅ Configurações atualizadas');
// Testar recuperação
const configAtualizada = manager.getConfig();
console.log('✅ Configuração recuperada:', configAtualizada);
// Verificar se as mudanças foram aplicadas
const nomeAtualizado = configAtualizada.app.name === 'Aço Calc Pro - Teste';
const temaAtualizado = configAtualizada.theme.name === 'dark';
console.log(`✅ Nome atualizado: ${nomeAtualizado}`);
console.log(`✅ Tema atualizado: ${temaAtualizado}`);
// Testar localStorage
const localStorageKey = manager.configKey;
const localStorageData = localStorage.getItem(localStorageKey);
console.log('✅ Dados no localStorage:', localStorageData ? 'Presentes' : 'Ausentes');
if (localStorageData) {
const parsedData = JSON.parse(localStorageData);
console.log('✅ Versão dos dados:', parsedData.version);
}
// Testar ToastManager se disponível
if (typeof ToastManager !== 'undefined') {
window.toastManager = new ToastManager();
console.log('✅ ToastManager inicializado');
if (nomeAtualizado && temaAtualizado) {
window.toastManager.success('🧪 Teste de persistência: SUCESSO!');
} else {
window.toastManager.warning('🧪 Teste de persistência: Parcial');
}
}
// Testar BackupManager se disponível
if (typeof BackupManager !== 'undefined') {
const backupManager = new BackupManager();
console.log('✅ BackupManager disponível');
// Criar backup de teste
const backup = await backupManager.createBackup();
console.log('✅ Backup criado:', backup.id);
// Listar backups
const backups = backupManager.getBackups();
console.log('✅ Backups disponíveis:', backups.length);
}
console.log('🎉 Teste simples concluído com sucesso!');
// Retornar resultado para uso externo
return {
success: nomeAtualizado && temaAtualizado,
details: {
nomeAtualizado,
temaAtualizado,
localStoragePresente: !!localStorageData
}
};
} catch (error) {
console.error('❌ Erro no teste:', error);
if (typeof ToastManager !== 'undefined' && window.toastManager) {
window.toastManager.error('❌ Erro no teste: ' + error.message);
}
return {
success: false,
error: error.message
};
}
}
// Função para testar persistência após reload
function testarReload() {
console.log('🔄 Preparando teste de reload...');
if (typeof AdminConfigManager !== 'undefined') {
const manager = new AdminConfigManager();
// Salvar configuração de teste
manager.updateConfig('app.name', 'Aço Calc Pro - Teste Reload');
manager.updateConfig('test.timestamp', new Date().toISOString());
console.log('✅ Configurações de teste salvas');
console.log('🔄 Recarregando em 3 segundos...');
if (window.toastManager) {
window.toastManager.info('🔄 Recarregando página para testar persistência...');
}
setTimeout(() => {
location.reload();
}, 3000);
} else {
console.log('⚠️ Verificando persistência após reload...');
// Verificar se as configurações persistiram
const manager = new AdminConfigManager();
const config = manager.getConfig();
if (config.app.name === 'Aço Calc Pro - Teste Reload') {
console.log('✅ Persistência após reload: SUCESSO!');
if (window.toastManager) {
window.toastManager.success('✅ Configurações persistiram após reload!');
}
} else {
console.log('❌ Persistência após reload: FALHA');
console.log('Config atual:', config.app.name);
if (window.toastManager) {
window.toastManager.error('❌ Configurações não persistiram após reload');
}
}
}
}
// Função para limpar testes
function limparTestes() {
console.log('🧹 Limpando testes...');
if (typeof AdminConfigManager !== 'undefined') {
const manager = new AdminConfigManager();
manager.resetConfig();
console.log('✅ Configurações resetadas');
}
if (typeof BackupManager !== 'undefined') {
const backupManager = new BackupManager();
backupManager.clearBackups();
console.log('✅ Backups limpos');
}
if (window.toastManager) {
window.toastManager.success('🧹 Testes limpos com sucesso!');
}
console.log('✅ Testes limpos');
}
// Disponibilizar funções globalmente
window.testarPersistenciaSimples = testarPersistenciaSimples;
window.testarReload = testarReload;
window.limparTestes = limparTestes;
// Auto-executar teste quando a página carregar
if (document.readyState === 'loading') {
document.addEventListener('DOMContentLoaded', () => {
setTimeout(testarPersistenciaSimples, 2000);
});
} else {
setTimeout(testarPersistenciaSimples, 2000);
}
console.log('🧪 Sistema de teste simples de persistência carregado');