menus
This commit is contained in:
@@ -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>
|
||||
Reference in New Issue
Block a user