159 lines
5.5 KiB
Gherkin
159 lines
5.5 KiB
Gherkin
# language: es
|
|
# Fuente: album/book/ops-templates/backoffice/01-gestion-solicitudes.md
|
|
# Drive: 05. ATC - Operaciones/Procedimientos
|
|
# Tests Backend: pytest tests/contracts/solicitudes/test_service_requests.py
|
|
# Tests Frontend: npx playwright test admin-requests.spec.ts
|
|
|
|
Característica: Gestion de solicitudes de servicio
|
|
|
|
Como administrador del backoffice
|
|
Quiero gestionar todas las solicitudes del sistema
|
|
Para asegurar que se atiendan correctamente
|
|
|
|
Antecedentes:
|
|
Dado que estoy logueado como administrador
|
|
Y estoy en la seccion "Solicitudes" del backoffice
|
|
|
|
# ============================================
|
|
# VER Y FILTRAR SOLICITUDES
|
|
# ============================================
|
|
|
|
Escenario: Ver listado de todas las solicitudes
|
|
Cuando cargo la pagina de solicitudes
|
|
Entonces deberia ver un listado paginado
|
|
Y cada solicitud deberia mostrar:
|
|
| campo |
|
|
| ID |
|
|
| Dueno |
|
|
| Mascota |
|
|
| Servicios |
|
|
| Estado |
|
|
| Fecha |
|
|
|
|
Esquema del escenario: Filtrar solicitudes por estado
|
|
Cuando filtro por estado "<estado>"
|
|
Entonces solo deberia ver solicitudes con estado "<estado>"
|
|
|
|
Ejemplos:
|
|
| estado |
|
|
| Pendiente |
|
|
| Coordinado |
|
|
| Pagado |
|
|
| Completado |
|
|
| Cancelado |
|
|
|
|
Escenario: Buscar solicitud especifica
|
|
Cuando busco por email "maria@ejemplo.com"
|
|
Entonces deberia ver solo solicitudes de ese dueno
|
|
|
|
Escenario: Filtrar por rango de fechas
|
|
Cuando filtro desde "01/01/2024" hasta "31/01/2024"
|
|
Entonces solo deberia ver solicitudes de enero 2024
|
|
|
|
# ============================================
|
|
# ASIGNAR VETERINARIO MANUALMENTE
|
|
# ============================================
|
|
|
|
Escenario: Asignar veterinario a solicitud pendiente
|
|
Dado que hay una solicitud pendiente en "Palermo"
|
|
Y no fue aceptada por ningun veterinario
|
|
Cuando abro el detalle de la solicitud
|
|
Y hago click en "Asignar veterinario"
|
|
Entonces deberia ver lista de veterinarios con cobertura en Palermo
|
|
|
|
Cuando selecciono "Dra. Garcia"
|
|
Y selecciono fecha "15 de enero" hora "10:00"
|
|
Y confirmo la asignacion
|
|
Entonces la solicitud deberia pasar a estado "Coordinado"
|
|
Y deberia estar asignada a Dra. Garcia
|
|
Y el dueno deberia recibir notificacion
|
|
Y el veterinario deberia recibir notificacion
|
|
|
|
Escenario: Ver disponibilidad de veterinarios antes de asignar
|
|
Dado que estoy asignando un veterinario
|
|
Cuando veo la lista de veterinarios disponibles
|
|
Entonces deberia ver para cada uno:
|
|
| informacion |
|
|
| Nombre |
|
|
| Disponibilidad |
|
|
| Visitas del dia |
|
|
| Distancia a destino |
|
|
|
|
# ============================================
|
|
# CAMBIAR ESTADO MANUALMENTE
|
|
# ============================================
|
|
|
|
Escenario: Cambiar estado de solicitud
|
|
Dado que hay una solicitud en estado "Coordinado"
|
|
Y el pago se proceso pero el webhook fallo
|
|
Cuando abro la solicitud
|
|
Y hago click en "Cambiar estado"
|
|
Y selecciono "Pagado"
|
|
Y ingreso motivo "Pago confirmado manualmente - ID MP: 12345"
|
|
Y confirmo el cambio
|
|
Entonces la solicitud deberia pasar a "Pagado"
|
|
Y el cambio deberia registrarse en el historial
|
|
Y deberia quedar mi usuario como responsable del cambio
|
|
|
|
Regla: Solo ciertos cambios de estado son validos
|
|
|
|
Escenario: No puedo volver a estado anterior
|
|
Dado que hay una solicitud en estado "Completado"
|
|
Cuando intento cambiar el estado a "Pagado"
|
|
Entonces deberia ver error "No se puede volver a un estado anterior"
|
|
|
|
Escenario: Puedo cancelar desde cualquier estado
|
|
Dado que hay una solicitud en estado "Coordinado"
|
|
Cuando cambio el estado a "Cancelado"
|
|
Y ingreso motivo de cancelacion
|
|
Entonces la solicitud deberia cancelarse
|
|
|
|
# ============================================
|
|
# VER DETALLE COMPLETO
|
|
# ============================================
|
|
|
|
Escenario: Ver historial de cambios de una solicitud
|
|
Dado que hay una solicitud con varios cambios de estado
|
|
Cuando abro el detalle de la solicitud
|
|
Y voy a la pestaña "Historial"
|
|
Entonces deberia ver todos los cambios con:
|
|
| campo |
|
|
| Fecha y hora |
|
|
| Estado anterior |
|
|
| Estado nuevo |
|
|
| Usuario |
|
|
| Motivo |
|
|
|
|
Escenario: Ver informacion de pago
|
|
Dado que hay una solicitud pagada
|
|
Cuando abro el detalle
|
|
Entonces deberia ver seccion "Pago" con:
|
|
| campo |
|
|
| Monto |
|
|
| Fecha de pago |
|
|
| Metodo |
|
|
| ID operacion MP |
|
|
| Estado del pago |
|
|
|
|
# ============================================
|
|
# CASOS ESPECIALES
|
|
# ============================================
|
|
|
|
Escenario: Reasignar veterinario
|
|
Dado que hay una solicitud asignada a "Dr. Lopez"
|
|
Y Dr. Lopez no puede asistir
|
|
Cuando abro la solicitud
|
|
Y hago click en "Reasignar"
|
|
Y selecciono otro veterinario
|
|
Y confirmo
|
|
Entonces Dr. Lopez deberia ser notificado de la desasignacion
|
|
Y el nuevo vet deberia ser notificado
|
|
Y el dueno deberia ser notificado del cambio
|
|
|
|
Escenario: Solicitud sin veterinarios disponibles
|
|
Dado que hay una solicitud pendiente en una zona remota
|
|
Y no hay veterinarios con cobertura en esa zona
|
|
Cuando intento asignar veterinario
|
|
Entonces deberia ver mensaje "No hay veterinarios disponibles"
|
|
Y deberia poder expandir la busqueda a zonas cercanas
|