105 lines
3.6 KiB
Gherkin
105 lines
3.6 KiB
Gherkin
# 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
|
|
|
|
Feature: Gestion de solicitudes de servicio
|
|
|
|
Como administrador del backoffice
|
|
Quiero gestionar todas las solicitudes del sistema
|
|
Para asegurar que se atiendan correctamente
|
|
|
|
Background:
|
|
Given que estoy logueado como administrador
|
|
And estoy en la seccion "Solicitudes" del backoffice
|
|
|
|
# ============================================
|
|
# VER Y FILTRAR SOLICITUDES
|
|
# ============================================
|
|
|
|
Scenario: Ver listado de todas las solicitudes
|
|
When cargo la pagina de solicitudes
|
|
Then deberia ver un listado paginado
|
|
And cada solicitud deberia mostrar:
|
|
| campo |
|
|
| ID |
|
|
| Dueno |
|
|
| Mascota |
|
|
| Servicios |
|
|
| Estado |
|
|
| Fecha |
|
|
|
|
Scenario Outline: Filtrar solicitudes por estado
|
|
When filtro por estado "<estado>"
|
|
Then solo deberia ver solicitudes con estado "<estado>"
|
|
|
|
Examples:
|
|
| estado |
|
|
| Pendiente |
|
|
| Coordinado |
|
|
| Pagado |
|
|
| Completado |
|
|
| Cancelado |
|
|
|
|
# ============================================
|
|
# ASIGNAR VETERINARIO MANUALMENTE
|
|
# ============================================
|
|
|
|
Scenario: Asignar veterinario a solicitud pendiente
|
|
Given que hay una solicitud pendiente en "Palermo"
|
|
And no fue aceptada por ningun veterinario
|
|
When abro el detalle de la solicitud
|
|
And hago click en "Asignar veterinario"
|
|
Then deberia ver lista de veterinarios con cobertura en Palermo
|
|
|
|
When selecciono "Dra. Garcia"
|
|
And selecciono fecha "15 de enero" hora "10:00"
|
|
And confirmo la asignacion
|
|
Then la solicitud deberia pasar a estado "Coordinado"
|
|
And deberia estar asignada a Dra. Garcia
|
|
And el dueno deberia recibir notificacion
|
|
And el veterinario deberia recibir notificacion
|
|
|
|
# ============================================
|
|
# CAMBIAR ESTADO MANUALMENTE
|
|
# ============================================
|
|
|
|
Scenario: Cambiar estado de solicitud
|
|
Given que hay una solicitud en estado "Coordinado"
|
|
And el pago se proceso pero el webhook fallo
|
|
When abro la solicitud
|
|
And hago click en "Cambiar estado"
|
|
And selecciono "Pagado"
|
|
And ingreso motivo "Pago confirmado manualmente - ID MP: 12345"
|
|
And confirmo el cambio
|
|
Then la solicitud deberia pasar a "Pagado"
|
|
And el cambio deberia registrarse en el historial
|
|
|
|
Rule: Solo ciertos cambios de estado son validos
|
|
|
|
Scenario: No puedo volver a estado anterior
|
|
Given que hay una solicitud en estado "Completado"
|
|
When intento cambiar el estado a "Pagado"
|
|
Then deberia ver error "No se puede volver a un estado anterior"
|
|
|
|
Scenario: Puedo cancelar desde cualquier estado
|
|
Given que hay una solicitud en estado "Coordinado"
|
|
When cambio el estado a "Cancelado"
|
|
And ingreso motivo de cancelacion
|
|
Then la solicitud deberia cancelarse
|
|
|
|
# ============================================
|
|
# CASOS ESPECIALES
|
|
# ============================================
|
|
|
|
Scenario: Reasignar veterinario
|
|
Given que hay una solicitud asignada a "Dr. Lopez"
|
|
And Dr. Lopez no puede asistir
|
|
When abro la solicitud
|
|
And hago click en "Reasignar"
|
|
And selecciono otro veterinario
|
|
And confirmo
|
|
Then Dr. Lopez deberia ser notificado de la desasignacion
|
|
And el nuevo vet deberia ser notificado
|
|
And el dueno deberia ser notificado del cambio
|