major restructure
This commit is contained in:
@@ -0,0 +1,141 @@
|
||||
# language: es
|
||||
# Fuente: album/book/ops-templates/pet-owner/04-pago-turno.md
|
||||
# Drive: 07. Finanzas y contabilidad/Mercado Pago
|
||||
# Tests Backend: pytest tests/contracts/payments/test_mercadopago.py
|
||||
# Tests Frontend: npx playwright test payment.spec.ts
|
||||
|
||||
Característica: Pago de turno
|
||||
|
||||
Como dueno de mascota con turno coordinado
|
||||
Quiero pagar mi turno online
|
||||
Para confirmar la visita del veterinario
|
||||
|
||||
Antecedentes:
|
||||
Dado que tengo un turno en estado "Coordinado"
|
||||
Y el turno tiene asignado veterinario "Dra. Garcia"
|
||||
Y la fecha asignada es "15 de enero a las 10:00"
|
||||
|
||||
# ============================================
|
||||
# FLUJO DE PAGO EXITOSO
|
||||
# ============================================
|
||||
|
||||
Escenario: Pagar turno con tarjeta de credito
|
||||
Dado que estoy en el detalle de mi turno coordinado
|
||||
Cuando hago click en "Pagar"
|
||||
Entonces deberia ser redirigido a Mercado Pago
|
||||
Y deberia ver el monto correcto
|
||||
|
||||
Cuando selecciono "Tarjeta de credito"
|
||||
Y completo los datos de la tarjeta
|
||||
Y confirmo el pago
|
||||
Entonces deberia volver a la plataforma
|
||||
Y deberia ver "Pago exitoso"
|
||||
Y el turno deberia estar en estado "Pagado"
|
||||
|
||||
Escenario: Recibir confirmacion de pago
|
||||
Dado que complete el pago exitosamente
|
||||
Entonces deberia recibir email de confirmacion
|
||||
Y el email deberia contener:
|
||||
| campo |
|
||||
| Fecha del turno |
|
||||
| Direccion |
|
||||
| Veterinario asignado |
|
||||
| Monto pagado |
|
||||
| Numero de operacion |
|
||||
|
||||
# ============================================
|
||||
# METODOS DE PAGO
|
||||
# ============================================
|
||||
|
||||
Esquema del escenario: Pagar con diferentes metodos
|
||||
Dado que estoy en Mercado Pago
|
||||
Cuando selecciono metodo "<metodo>"
|
||||
Y completo el pago
|
||||
Entonces el pago deberia ser <resultado>
|
||||
Y el estado de acreditacion deberia ser "<acreditacion>"
|
||||
|
||||
Ejemplos:
|
||||
| metodo | resultado | acreditacion |
|
||||
| Tarjeta credito | exitoso | inmediata |
|
||||
| Tarjeta debito | exitoso | inmediata |
|
||||
| Dinero en cuenta | exitoso | inmediata |
|
||||
| Transferencia | pendiente | 1-2 dias |
|
||||
| Rapipago | pendiente | hasta 24hs |
|
||||
|
||||
# ============================================
|
||||
# MANEJO DE ERRORES
|
||||
# ============================================
|
||||
|
||||
Escenario: Pago rechazado por fondos insuficientes
|
||||
Dado que estoy en Mercado Pago
|
||||
Cuando intento pagar con tarjeta sin fondos
|
||||
Entonces deberia ver error "Fondos insuficientes"
|
||||
Y deberia poder reintentar con otra tarjeta
|
||||
Y el turno deberia seguir en estado "Coordinado"
|
||||
|
||||
Escenario: Usuario cancela el pago
|
||||
Dado que estoy en Mercado Pago
|
||||
Cuando hago click en "Volver al sitio"
|
||||
Entonces deberia volver a la plataforma
|
||||
Y deberia ver mensaje "El pago fue cancelado"
|
||||
Y deberia ver boton "Reintentar pago"
|
||||
Y el turno deberia seguir en estado "Coordinado"
|
||||
|
||||
Escenario: Cierre de browser durante pago
|
||||
Dado que estoy en Mercado Pago
|
||||
Y cierro el navegador accidentalmente
|
||||
Cuando vuelvo a la plataforma
|
||||
Y voy a "Mis turnos"
|
||||
Entonces deberia poder ver el estado real del pago
|
||||
# Si se proceso: Pagado. Si no: Coordinado con opcion de pagar
|
||||
|
||||
# ============================================
|
||||
# CASOS ESPECIALES
|
||||
# ============================================
|
||||
|
||||
Escenario: Link de pago expirado
|
||||
Dado que recibi el link de pago hace mas de 24 horas
|
||||
Cuando hago click en el link
|
||||
Entonces deberia ver "Este link ha expirado"
|
||||
Y deberia ver "Contacta a soporte para generar uno nuevo"
|
||||
|
||||
Escenario: Intento pagar turno ya pagado
|
||||
Dado que mi turno ya esta en estado "Pagado"
|
||||
Cuando accedo al link de pago
|
||||
Entonces deberia ver "Este turno ya fue pagado"
|
||||
Y deberia ver boton "Ver detalle del turno"
|
||||
|
||||
Escenario: Precio cambio desde la coordinacion
|
||||
# Caso muy raro pero posible
|
||||
Dado que el precio del servicio aumento desde que se coordino
|
||||
Cuando voy a pagar
|
||||
Entonces deberia ver el precio original acordado
|
||||
# El precio se congela al momento de coordinacion
|
||||
|
||||
# ============================================
|
||||
# INTEGRACION CON WEBHOOK
|
||||
# ============================================
|
||||
|
||||
Regla: El estado del turno se actualiza via webhook de Mercado Pago
|
||||
|
||||
Escenario: Webhook confirma pago aprobado
|
||||
Dado que el usuario completo el pago en Mercado Pago
|
||||
Cuando Mercado Pago envia webhook con status "approved"
|
||||
Entonces el turno deberia cambiar a estado "Pagado"
|
||||
Y el veterinario deberia recibir notificacion
|
||||
Y el usuario deberia recibir email de confirmacion
|
||||
|
||||
Escenario: Webhook informa pago pendiente
|
||||
Dado que el usuario pago con transferencia bancaria
|
||||
Cuando Mercado Pago envia webhook con status "pending"
|
||||
Entonces el turno deberia quedarse en "Coordinado"
|
||||
Y deberia registrarse el pago pendiente
|
||||
Y el usuario deberia recibir email "Esperando acreditacion"
|
||||
|
||||
Escenario: Webhook falla pero pago se proceso
|
||||
# Caso de error que requiere intervencion manual
|
||||
Dado que el usuario pago exitosamente
|
||||
Pero el webhook fallo por error de red
|
||||
Entonces el turno seguira en "Coordinado"
|
||||
Y el equipo de ops deberia recibir alerta
|
||||
Y deberian poder actualizar manualmente
|
||||
Reference in New Issue
Block a user