110 lines
4.2 KiB
Gherkin
110 lines
4.2 KiB
Gherkin
# 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
|
|
|
|
Feature: 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
|
|
|
|
Background:
|
|
Given que estoy logueado como veterinario
|
|
And tengo cobertura en los barrios "Palermo" y "Recoleta"
|
|
And estoy en el dashboard de veterinario
|
|
|
|
# ============================================
|
|
# VER SOLICITUDES PENDIENTES
|
|
# ============================================
|
|
|
|
Scenario: Ver lista de solicitudes en mi zona
|
|
When veo la seccion "Solicitudes pendientes"
|
|
Then deberia ver solo solicitudes de "Palermo" y "Recoleta"
|
|
And no deberia ver solicitudes de otros barrios
|
|
|
|
Scenario: Ver detalle de solicitud
|
|
Given que hay una solicitud pendiente
|
|
When hago click en la solicitud
|
|
Then 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
|
|
# ============================================
|
|
|
|
Scenario: Aceptar solicitud con fecha disponible
|
|
Given que hay una solicitud para el barrio "Palermo"
|
|
And el dueno prefiere fechas:
|
|
| fecha | franja |
|
|
| 2024-01-15 | Mañana |
|
|
| 2024-01-16 | Tarde |
|
|
And tengo disponibilidad el 15 de enero a las 10:00
|
|
When hago click en "Aceptar"
|
|
And selecciono fecha "15 de enero" hora "10:00"
|
|
And confirmo la aceptacion
|
|
Then la solicitud deberia pasar a estado "Coordinado"
|
|
And deberia quedar asignada a mi
|
|
And el dueno deberia recibir notificacion con mis datos
|
|
And la visita deberia aparecer en mi agenda
|
|
|
|
Scenario: Aceptar solicitud con datos de mascota que ya atendi
|
|
Given que hay una solicitud para mascota "Luna"
|
|
And yo atendi a "Luna" anteriormente
|
|
When veo el detalle de la solicitud
|
|
Then deberia ver badge "Paciente recurrente"
|
|
And deberia ver el historial de mis visitas anteriores a Luna
|
|
|
|
# ============================================
|
|
# RECHAZAR SOLICITUD
|
|
# ============================================
|
|
|
|
Scenario Outline: Rechazar solicitud con motivo
|
|
Given que hay una solicitud pendiente
|
|
When hago click en "Rechazar"
|
|
And selecciono motivo "<motivo>"
|
|
And confirmo el rechazo
|
|
Then la solicitud deberia desaparecer de mi lista
|
|
And deberia seguir visible para otros veterinarios
|
|
|
|
Examples:
|
|
| motivo |
|
|
| No tengo disponibilidad |
|
|
| Fuera de mi zona |
|
|
| No realizo este servicio |
|
|
| Otro |
|
|
|
|
# ============================================
|
|
# RACE CONDITIONS
|
|
# ============================================
|
|
|
|
Rule: Solo un veterinario puede aceptar cada solicitud
|
|
|
|
Scenario: Otro vet acepta mientras estoy viendo
|
|
Given que estoy viendo el detalle de una solicitud
|
|
And otro veterinario acepta la misma solicitud
|
|
When intento aceptarla
|
|
Then deberia ver error "Esta solicitud ya fue aceptada"
|
|
And deberia ser redirigido al listado
|
|
|
|
# ============================================
|
|
# CASOS ESPECIALES
|
|
# ============================================
|
|
|
|
Scenario: Solicitud urgente destacada
|
|
Given que hay una solicitud marcada como "Urgente"
|
|
When veo el listado de solicitudes
|
|
Then deberia ver la solicitud con indicador de urgencia
|
|
And deberia aparecer primero en la lista
|
|
|
|
Scenario: No puedo aceptar con agenda completa
|
|
Given que tengo mi agenda completa para las fechas de la solicitud
|
|
When intento aceptar la solicitud
|
|
Then deberia ver advertencia "No tienes disponibilidad en las fechas preferidas"
|
|
And deberia poder proponer una fecha alternativa
|