This commit is contained in:
lizandrogd
2026-01-12 22:42:41 -05:00
parent 5cca545806
commit 01c30ca594
12 changed files with 1397 additions and 106 deletions
+153
View File
@@ -0,0 +1,153 @@
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Test Menús - WhatsApp Bot Manager</title>
<style>
body { font-family: Arial, sans-serif; max-width: 800px; margin: 0 auto; padding: 20px; }
.success { color: green; }
.error { color: red; }
.info { color: blue; }
button { padding: 10px 15px; margin: 5px; cursor: pointer; }
pre { background: #f5f5f5; padding: 15px; border-radius: 5px; overflow-x: auto; }
.result { margin: 10px 0; padding: 10px; border-radius: 5px; }
</style>
</head>
<body>
<h1>🔧 Test de Funcionalidad de Menús</h1>
<p>Este test verificará que la funcionalidad de menús esté trabajando correctamente.</p>
<div id="results"></div>
<h2>🧪 Pruebas de API</h2>
<button onclick="testGetMenus()">📋 Probar get_menus.php</button>
<button onclick="testSaveMenu()">💾 Probar save_menu.php</button>
<button onclick="testDeleteMenu()">🗑️ Probar delete_menu.php</button>
<button onclick="clearResults()">🧽 Limpiar Resultados</button>
<div id="test-results"></div>
<script>
function clearResults() {
document.getElementById('test-results').innerHTML = '';
}
function showResult(title, data, isError = false) {
const div = document.createElement('div');
div.className = `result ${isError ? 'error' : 'success'}`;
div.innerHTML = `
<h3>${title}</h3>
<pre>${typeof data === 'object' ? JSON.stringify(data, null, 2) : data}</pre>
`;
document.getElementById('test-results').appendChild(div);
}
async function testGetMenus() {
try {
const response = await fetch('./api/get_menus.php');
const data = await response.json();
showResult('✅ GET Menús - Respuesta', data);
if (data.success && data.data.length > 0) {
showResult('📊 Total de menús encontrados', `${data.data.length} menús`);
} else if (data.success && data.data.length === 0) {
showResult('️ Sin menús', 'No se encontraron menús configurados');
}
} catch (error) {
showResult('❌ Error GET Menús', error.message, true);
}
}
async function testSaveMenu() {
const testMenu = {
name: 'Menú de Prueba',
menu_key: 'test_' + Date.now(),
description: 'Menú creado para prueba automática',
welcome_message: '¡Hola! Este es un menú de prueba. Selecciona una opción:',
status: 'active',
options: [
{
key: '1',
text: 'Opción 1',
action: 'message',
value: 'Respuesta de la opción 1',
order_index: 1
},
{
key: '2',
text: 'Opción 2',
action: 'message',
value: 'Respuesta de la opción 2',
order_index: 2
}
]
};
try {
const response = await fetch('./api/save_menu.php', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify(testMenu)
});
const data = await response.json();
showResult('✅ SAVE Menú - Respuesta', data);
if (data.success) {
// Actualizar lista después de crear
setTimeout(testGetMenus, 1000);
}
} catch (error) {
showResult('❌ Error SAVE Menú', error.message, true);
}
}
async function testDeleteMenu() {
// Primero obtener menús para encontrar uno que eliminar
try {
const getResponse = await fetch('./api/get_menus.php');
const getData = await getResponse.json();
if (getData.success && getData.data.length > 0) {
// Buscar un menú de prueba para eliminar
const testMenu = getData.data.find(menu => menu.menu_key.startsWith('test_'));
if (testMenu) {
const deleteResponse = await fetch('./api/delete_menu.php', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({
menu_id: testMenu.id
})
});
const deleteData = await deleteResponse.json();
showResult(`🗑️ DELETE Menú (ID: ${testMenu.id})`, deleteData);
if (deleteData.success) {
// Actualizar lista después de eliminar
setTimeout(testGetMenus, 1000);
}
} else {
showResult('️ DELETE Menú', 'No se encontró un menú de prueba para eliminar. Crea uno primero.');
}
} else {
showResult('️ DELETE Menú', 'No hay menús para eliminar');
}
} catch (error) {
showResult('❌ Error DELETE Menú', error.message, true);
}
}
// Ejecutar test inicial
document.addEventListener('DOMContentLoaded', function() {
testGetMenus();
});
</script>
</body>
</html>