130 lines
5.0 KiB
Gherkin
130 lines
5.0 KiB
Gherkin
# language: es
|
|
# Fuente: album/book/ops-templates/veterinarian/01-aceptar-solicitud.md
|
|
# Drive: 08. IT y Producto/Funcionalidades Plataforma Veterinario
|
|
# Tests Backend: pytest tests/contracts/solicitudes/test_service_requests.py
|
|
# Tests Frontend: npx playwright test vet-requests.spec.ts
|
|
|
|
Característica: Aceptar o rechazar solicitudes de servicio
|
|
|
|
Como veterinario de la plataforma
|
|
Quiero revisar y responder a solicitudes en mi zona
|
|
Para gestionar mi agenda de visitas a domicilio
|
|
|
|
Antecedentes:
|
|
Dado que estoy logueado como veterinario
|
|
Y tengo cobertura en los barrios "Palermo" y "Recoleta"
|
|
Y estoy en el dashboard de veterinario
|
|
|
|
# ============================================
|
|
# VER SOLICITUDES PENDIENTES
|
|
# ============================================
|
|
|
|
Escenario: Ver lista de solicitudes en mi zona
|
|
Cuando veo la seccion "Solicitudes pendientes"
|
|
Entonces deberia ver solo solicitudes de "Palermo" y "Recoleta"
|
|
Y no deberia ver solicitudes de otros barrios
|
|
|
|
Escenario: Ver detalle de solicitud
|
|
Dado que hay una solicitud pendiente
|
|
Cuando hago click en la solicitud
|
|
Entonces deberia ver:
|
|
| seccion | contenido |
|
|
| Dueno | Nombre, telefono, direccion |
|
|
| Mascota | Nombre, tipo, edad, foto |
|
|
| Servicios | Lista de servicios solicitados |
|
|
| Fechas | Fechas preferidas por el dueno |
|
|
| Historial | Visitas anteriores si las hay |
|
|
|
|
# ============================================
|
|
# ACEPTAR SOLICITUD
|
|
# ============================================
|
|
|
|
Escenario: Aceptar solicitud con fecha disponible
|
|
Dado que hay una solicitud para el barrio "Palermo"
|
|
Y el dueno prefiere fechas:
|
|
| fecha | franja |
|
|
| 2024-01-15 | Mañana |
|
|
| 2024-01-16 | Tarde |
|
|
Y tengo disponibilidad el 15 de enero a las 10:00
|
|
Cuando hago click en "Aceptar"
|
|
Y selecciono fecha "15 de enero" hora "10:00"
|
|
Y confirmo la aceptacion
|
|
Entonces la solicitud deberia pasar a estado "Coordinado"
|
|
Y deberia quedar asignada a mi
|
|
Y el dueno deberia recibir notificacion con mis datos
|
|
Y la visita deberia aparecer en mi agenda
|
|
|
|
Escenario: Aceptar solicitud con datos de mascota que ya atendi
|
|
Dado que hay una solicitud para mascota "Luna"
|
|
Y yo atendi a "Luna" anteriormente
|
|
Cuando veo el detalle de la solicitud
|
|
Entonces deberia ver badge "Paciente recurrente"
|
|
Y deberia ver el historial de mis visitas anteriores a Luna
|
|
|
|
# ============================================
|
|
# RECHAZAR SOLICITUD
|
|
# ============================================
|
|
|
|
Esquema del escenario: Rechazar solicitud con motivo
|
|
Dado que hay una solicitud pendiente
|
|
Cuando hago click en "Rechazar"
|
|
Y selecciono motivo "<motivo>"
|
|
Y confirmo el rechazo
|
|
Entonces la solicitud deberia desaparecer de mi lista
|
|
Y deberia seguir visible para otros veterinarios
|
|
|
|
Ejemplos:
|
|
| motivo |
|
|
| No tengo disponibilidad |
|
|
| Fuera de mi zona |
|
|
| No realizo este servicio |
|
|
| Otro |
|
|
|
|
Escenario: Rechazar sin seleccionar motivo
|
|
Dado que hay una solicitud pendiente
|
|
Cuando hago click en "Rechazar"
|
|
Y confirmo sin seleccionar motivo
|
|
Entonces deberia poder rechazar igual
|
|
# El motivo es opcional
|
|
|
|
# ============================================
|
|
# RACE CONDITIONS
|
|
# ============================================
|
|
|
|
Regla: Solo un veterinario puede aceptar cada solicitud
|
|
|
|
Escenario: Otro vet acepta mientras estoy viendo
|
|
Dado que estoy viendo el detalle de una solicitud
|
|
Y otro veterinario acepta la misma solicitud
|
|
Cuando intento aceptarla
|
|
Entonces deberia ver error "Esta solicitud ya fue aceptada"
|
|
Y deberia ser redirigido al listado
|
|
|
|
Escenario: Solicitud desaparece cuando otro la acepta
|
|
Dado que estoy viendo el listado de solicitudes
|
|
Y otro veterinario acepta una solicitud
|
|
Entonces esa solicitud deberia desaparecer de mi lista
|
|
# Idealmente en tiempo real via websocket
|
|
|
|
# ============================================
|
|
# CASOS ESPECIALES
|
|
# ============================================
|
|
|
|
Escenario: Solicitud urgente destacada
|
|
Dado que hay una solicitud marcada como "Urgente"
|
|
Cuando veo el listado de solicitudes
|
|
Entonces deberia ver la solicitud con indicador de urgencia
|
|
Y deberia aparecer primero en la lista
|
|
|
|
Escenario: Solicitud con multiples mascotas
|
|
Dado que hay una solicitud para 2 mascotas
|
|
Cuando veo el detalle
|
|
Entonces deberia ver informacion de ambas mascotas
|
|
Y deberia ver nota sobre tiempo estimado adicional
|
|
|
|
Escenario: No puedo aceptar con agenda completa
|
|
Dado que tengo mi agenda completa para las fechas de la solicitud
|
|
Cuando intento aceptar la solicitud
|
|
Entonces deberia ver advertencia "No tienes disponibilidad en las fechas preferidas"
|
|
Y deberia poder proponer una fecha alternativa
|