/** * 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');