Ejercicio: Proyecto final: el bot del minimarket
Objetivo
Entregar el bot completo de Minimarket La Esquina, funcionando en consola, probado con pruebas automáticas, desplegado en Cloudflare y comprobado con tu teléfono, con la lista de entrega y la rúbrica del proyecto.
Cómo se trabaja
Este ejercicio no tiene comprobaciones automáticas en la página: tu evidencia son los resultados de npm test, los logs de wrangler tail y tu README. Avanza en el orden de la lección y haz un commit pequeño por paso. Usa solo datos ficticios.
💡 Reto extra
Haz que el mensaje de fuera de horario diga exactamente cuándo atenderán («hoy a las 17:00» o «mañana a las 9:00») con una función proximaApertura, y cúbrela con pruebas para viernes por la noche y sábado.
Pasos
Marca cada paso a medida que lo completes. Tu avance se guarda en este navegador.
💡 Pista 1: Si una prueba nueva falla
Lee el mensaje con calma antes de tocar el código: muchas veces el bot tiene razón. Mi escenario de delivery falló porque el subtotal quedaba bajo el mínimo de S/ 25.00; había que corregir la prueba, no el bot.
💡 Pista 2: Dos módulos que se importan entre sí
worker.js importa humano.js y humano.js importa procesarMensaje de worker.js. Funciona porque ambos solo exportan funciones que se llaman después de cargar los módulos. Si ves un error de inicialización, comprueba que no ejecutas nada en el nivel superior del archivo.
💡 Pista 3: Si el bot no responde en WhatsApp
Revisa en este orden: que el webhook esté verificado, que el campo messages esté suscrito, que tu teléfono esté en la lista de destinatarios permitidos (131030), que WA_TOKEN no haya vencido y qué dicen los logs de wrangler tail.
💡 Pista 4: Plantillas sin aprobar
No es un fallo de tu código. Declara el pendiente en el README y verifica que el cron registre el error sin tumbar el Worker.