spr migrated books, and tester

This commit is contained in:
buenosairesam
2025-12-31 09:07:27 -03:00
parent 21b8eab3cb
commit cccc6b5a93
136 changed files with 15763 additions and 472 deletions

View File

@@ -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