Files
whatsapp/test_menus_api.html
T
2026-01-12 22:42:41 -05:00

153 lines
6.1 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!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>