Files
soleprint/cfg/amar/atlas/books/gherkin-samples/en/veterinarian/02-gestion-agenda.feature
2026-01-20 05:31:26 -03:00

100 lines
3.9 KiB
Gherkin

# Fuente: album/book/ops-templates/veterinarian/02-gestion-agenda.md
# Drive: 08. IT y Producto/Funcionalidades Plataforma Veterinario
# Tests Backend: pytest tests/contracts/mascotas/test_vet_availability.py
# Tests Frontend: npx playwright test vet-schedule.spec.ts
Feature: Gestion de agenda veterinaria
Como veterinario
Quiero gestionar mi calendario y disponibilidad
Para organizar mis visitas a domicilio eficientemente
Background:
Given que estoy logueado como veterinario
And estoy en la seccion "Mi agenda"
# ============================================
# VER AGENDA
# ============================================
Scenario: Ver calendario semanal
When veo mi agenda en vista semanal
Then deberia ver los 7 dias de la semana
And deberia ver mis visitas programadas
And cada visita deberia mostrar hora y nombre del paciente
Scenario: Ver visitas con codigo de color por estado
Given que tengo visitas en diferentes estados
When veo mi agenda
Then las visitas deberian mostrarse con colores:
| estado | color |
| Coordinado | amarillo |
| Pagado | verde |
| En progreso | azul |
| Completado | gris |
# ============================================
# CONFIGURAR DISPONIBILIDAD SEMANAL
# ============================================
Scenario: Configurar horario laboral
When voy a "Configuracion" -> "Mi disponibilidad"
And configuro mi horario:
| dia | trabajo | desde | hasta | pausa_desde | pausa_hasta |
| Lunes | Si | 09:00 | 18:00 | 13:00 | 14:00 |
| Martes | Si | 09:00 | 18:00 | 13:00 | 14:00 |
| Miercoles | Si | 09:00 | 18:00 | 13:00 | 14:00 |
| Jueves | Si | 09:00 | 18:00 | 13:00 | 14:00 |
| Viernes | Si | 09:00 | 15:00 | | |
| Sabado | No | | | | |
| Domingo | No | | | | |
And guardo la configuracion
Then mi disponibilidad deberia actualizarse
And no deberia recibir solicitudes fuera de ese horario
# ============================================
# BLOQUEAR DIAS ESPECIFICOS
# ============================================
Scenario: Marcar dia como no disponible
Given que necesito el 20 de enero libre
When hago click en el dia 20 de enero en el calendario
And selecciono "Marcar como no disponible"
And ingreso motivo "Vacaciones"
And confirmo
Then el dia 20 deberia mostrarse como bloqueado
And no deberia poder aceptar solicitudes para ese dia
Scenario: Bloquear rango de fechas
Given que tomo vacaciones del 15 al 22 de enero
When voy a "Agregar indisponibilidad"
And selecciono fecha inicio "15 de enero"
And selecciono fecha fin "22 de enero"
And ingreso motivo "Vacaciones"
And confirmo
Then todos esos dias deberian mostrarse como bloqueados
# ============================================
# IMPACTO EN SOLICITUDES
# ============================================
Rule: Los bloqueos no afectan visitas ya aceptadas
Scenario: Bloquear dia con visita ya aceptada
Given que tengo una visita aceptada para el 15 de enero
When intento bloquear el 15 de enero
Then deberia ver advertencia "Tienes una visita programada ese dia"
And deberia poder elegir:
| opcion |
| Cancelar el bloqueo |
| Bloquear y contactar al dueno |
Rule: Cambios de disponibilidad solo afectan solicitudes futuras
Scenario: Cambiar horario no afecta visitas existentes
Given que tengo una visita a las 17:00 el lunes
When cambio mi horario del lunes para terminar a las 16:00
And guardo los cambios
Then la visita de las 17:00 deberia mantenerse
And deberia ver advertencia sobre la inconsistencia