100 lines
3.9 KiB
Gherkin
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
|