185 lines
6.5 KiB
JavaScript
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'); |