135 lines
5.2 KiB
Gherkin
135 lines
5.2 KiB
Gherkin
# language: es
|
|
# 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
|
|
|
|
Característica: Gestion de agenda veterinaria
|
|
|
|
Como veterinario
|
|
Quiero gestionar mi calendario y disponibilidad
|
|
Para organizar mis visitas a domicilio eficientemente
|
|
|
|
Antecedentes:
|
|
Dado que estoy logueado como veterinario
|
|
Y estoy en la seccion "Mi agenda"
|
|
|
|
# ============================================
|
|
# VER AGENDA
|
|
# ============================================
|
|
|
|
Escenario: Ver calendario semanal
|
|
Cuando veo mi agenda en vista semanal
|
|
Entonces deberia ver los 7 dias de la semana
|
|
Y deberia ver mis visitas programadas
|
|
Y cada visita deberia mostrar hora y nombre del paciente
|
|
|
|
Escenario: Ver visitas con codigo de color por estado
|
|
Dado que tengo visitas en diferentes estados
|
|
Cuando veo mi agenda
|
|
Entonces las visitas deberian mostrarse con colores:
|
|
| estado | color |
|
|
| Coordinado | amarillo |
|
|
| Pagado | verde |
|
|
| En progreso | azul |
|
|
| Completado | gris |
|
|
|
|
Escenario: Ver detalle de visita desde el calendario
|
|
Dado que tengo una visita programada para hoy
|
|
Cuando hago click en la visita
|
|
Entonces deberia ver popup con:
|
|
| campo | valor |
|
|
| Hora | 10:00 - 11:00 |
|
|
| Dueno | Maria Garcia |
|
|
| Direccion | Av Santa Fe 1234 |
|
|
| Mascota | Luna (Gato, 3 años) |
|
|
| Servicios | Vacunacion, Consulta |
|
|
| Estado pago | Pagado |
|
|
Y deberia ver boton "Ver detalle completo"
|
|
|
|
# ============================================
|
|
# CONFIGURAR DISPONIBILIDAD SEMANAL
|
|
# ============================================
|
|
|
|
Escenario: Configurar horario laboral
|
|
Cuando voy a "Configuracion" -> "Mi disponibilidad"
|
|
Y 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 | | | | |
|
|
Y guardo la configuracion
|
|
Entonces mi disponibilidad deberia actualizarse
|
|
Y no deberia recibir solicitudes fuera de ese horario
|
|
|
|
# ============================================
|
|
# BLOQUEAR DIAS ESPECIFICOS
|
|
# ============================================
|
|
|
|
Escenario: Marcar dia como no disponible
|
|
Dado que necesito el 20 de enero libre
|
|
Cuando hago click en el dia 20 de enero en el calendario
|
|
Y selecciono "Marcar como no disponible"
|
|
Y ingreso motivo "Vacaciones"
|
|
Y confirmo
|
|
Entonces el dia 20 deberia mostrarse como bloqueado
|
|
Y no deberia poder aceptar solicitudes para ese dia
|
|
|
|
Escenario: Bloquear rango de fechas
|
|
Dado que tomo vacaciones del 15 al 22 de enero
|
|
Cuando voy a "Agregar indisponibilidad"
|
|
Y selecciono fecha inicio "15 de enero"
|
|
Y selecciono fecha fin "22 de enero"
|
|
Y ingreso motivo "Vacaciones"
|
|
Y confirmo
|
|
Entonces todos esos dias deberian mostrarse como bloqueados
|
|
|
|
Escenario: Desbloquear dia
|
|
Dado que tengo el 20 de enero bloqueado
|
|
Y ya no necesito ese dia libre
|
|
Cuando hago click en el dia bloqueado
|
|
Y selecciono "Quitar bloqueo"
|
|
Entonces el dia deberia estar disponible nuevamente
|
|
|
|
# ============================================
|
|
# IMPACTO EN SOLICITUDES
|
|
# ============================================
|
|
|
|
Regla: Los bloqueos no afectan visitas ya aceptadas
|
|
|
|
Escenario: Bloquear dia con visita ya aceptada
|
|
Dado que tengo una visita aceptada para el 15 de enero
|
|
Cuando intento bloquear el 15 de enero
|
|
Entonces deberia ver advertencia "Tienes una visita programada ese dia"
|
|
Y deberia poder elegir:
|
|
| opcion |
|
|
| Cancelar el bloqueo |
|
|
| Bloquear y contactar al dueno |
|
|
|
|
Regla: Cambios de disponibilidad solo afectan solicitudes futuras
|
|
|
|
Escenario: Cambiar horario no afecta visitas existentes
|
|
Dado que tengo una visita a las 17:00 el lunes
|
|
Cuando cambio mi horario del lunes para terminar a las 16:00
|
|
Y guardo los cambios
|
|
Entonces la visita de las 17:00 deberia mantenerse
|
|
Y deberia ver advertencia sobre la inconsistencia
|
|
|
|
# ============================================
|
|
# NAVEGACION
|
|
# ============================================
|
|
|
|
Escenario: Navegar entre semanas
|
|
Cuando hago click en "Semana siguiente"
|
|
Entonces deberia ver el calendario de la proxima semana
|
|
Y deberia poder volver con "Semana anterior"
|
|
|
|
Escenario: Ir a fecha especifica
|
|
Cuando hago click en el selector de fecha
|
|
Y selecciono "15 de marzo"
|
|
Entonces deberia ver la semana que contiene el 15 de marzo
|