// Shared JavaScript across all pages // Modal Management function openTestModal() { document.getElementById('testModal').classList.remove('hidden'); document.body.style.overflow = 'hidden'; } function closeTestModal() { document.getElementById('testModal').classList.add('hidden'); document.body.style.overflow = 'auto'; } function startChatbot() { closeTestModal(); document.getElementById('chatbotModal').classList.remove('hidden'); document.body.style.overflow = 'hidden'; // Add welcome message addBotMessage('Ótimo! Agora estou pronto para ajudar você a testar seu aplicativo. Posso instalar o APK, executar testes automatizados, gerar evidências e muito mais. Como posso ajudar?'); } function closeChatbot() { document.getElementById('chatbotModal').classList.add('hidden'); document.body.style.overflow = 'auto'; } // Chatbot Functions function sendMessage() { const input = document.getElementById('chatInput'); const message = input.value.trim(); if (message) { addUserMessage(message); input.value = ''; // Simulate bot response setTimeout(() => { simulateBotResponse(message); }, 1000); } } function addUserMessage(message) { const chatMessages = document.getElementById('chatMessages'); const messageDiv = document.createElement('div'); messageDiv.className = 'flex justify-end message-appear'; messageDiv.innerHTML = `

${message}

`; chatMessages.appendChild(messageDiv); chatMessages.scrollTop = chatMessages.scrollHeight; } function addBotMessage(message) { const chatMessages = document.getElementById('chatMessages'); const messageDiv = document.createElement('div'); messageDiv.className = 'flex justify-start message-appear'; messageDiv.innerHTML = `

${message}

`; chatMessages.appendChild(messageDiv); chatMessages.scrollTop = chatMessages.scrollHeight; } function simulateBotResponse(userMessage) { const responses = { 'instalar': 'Iniciando instalação do aplicativo no emulador selecionado...', 'teste': 'Executando testes automatizados no aplicativo...', 'evidência': 'Gerando relatório de evidências dos testes...', 'login': 'Testando funcionalidade de login... Verificando campos de usuário e senha.', 'cadastro': 'Testando fluxo de cadastro de usuário... Validando dados e integração.', 'navegação': 'Testando navegação entre telas... Verificando transições e estados.', 'performance': 'Analisando performance do aplicativo... Medindo tempo de resposta e consumo de recursos.' }; let response = 'Entendi sua solicitação. Estou processando sua requisição e executando os testes necessários. Posso ajudar com algo mais?'; Object.keys(responses).forEach(key => { if (userMessage.toLowerCase().includes(key)) { response = responses[key]; } }); addBotMessage(response); } // Chatbot Control Functions function installApp() { addUserMessage('Instalar aplicativo'); setTimeout(() => { addBotMessage('Iniciando instalação do APK no emulador Android... Verificando dependências e permissões.'); }, 1000); } function runTests() { addUserMessage('Rodar testes'); setTimeout(() => { addBotMessage('Executando suite de testes automatizados... Analisando funcionalidades principais e verificando comportamentos esperados.'); } function openEvidences() { addUserMessage('Abrir evidências'); setTimeout(() => { addBotMessage('Gerando relatório completo de evidências... Capturando screenshots, logs e métricas de performance.'); } function clearMessages() { if (confirm('Tem certeza que deseja excluir todas as mensagens?'); document.getElementById('chatMessages').innerHTML = ''; addBotMessage('Olá! Como posso ajudar você com os testes do seu aplicativo hoje?'); } } function openSettings() { addUserMessage('Configurações'); setTimeout(() => { addBotMessage('Abrindo painel de configurações... Aqui você pode ajustar parâmetros do emulador, configurações de teste e preferências do assistente.'); } // Handle Enter key in chat input document.addEventListener('DOMContentLoaded', function() { const chatInput = document.getElementById('chatInput'); if (chatInput) { chatInput.addEventListener('keypress', function(e) { if (e.key === 'Enter') { sendMessage(); } }); } // Close modals when clicking outside document.addEventListener('click', function(e) { const testModal = document.getElementById('testModal'); const chatbotModal = document.getElementById('chatbotModal'); if (testModal && !testModal.classList.contains('hidden')) { if (e.target === testModal) { closeTestModal(); } } if (chatbotModal && !chatbotModal.classList.contains('hidden')) { if (e.target === chatbotModal) { closeChatbot(); } } }); // Initialize app console.log('APK Tester Pro loaded successfully');