Spaces:
Running
Running
File size: 5,551 Bytes
e36bb15 411ac85 e36bb15 411ac85 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 |
// 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 = `
<div class="bg-secondary text-white rounded-2xl rounded-br-none px-4 py-3 max-w-xs lg:max-w-md">
<p>${message}</p>
</div>
`;
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 = `
<div class="bg-primary text-white rounded-2xl rounded-bl-none px-4 py-3 max-w-xs lg:max-w-md">
<p>${message}</p>
</div>
`;
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'); |