spr migrated books, and tester

This commit is contained in:
buenosairesam
2025-12-31 09:07:27 -03:00
parent 21b8eab3cb
commit cccc6b5a93
136 changed files with 15763 additions and 472 deletions

View File

@@ -0,0 +1,141 @@
# language: es
# Fuente: album/book/ops-templates/pet-owner/02-reservar-turno.md
# Drive: 08. IT y Producto/Funcionalidades Plataforma Veterinario
# Tests Backend: pytest tests/contracts/workflows/test_turnero_general.py
# Tests Frontend: npx playwright test turnero.spec.ts
# Relacionado: def/work_plan/10-flow-turnero.md
Característica: Reservar turno veterinario (Turnero)
Como dueno de mascota
Quiero reservar un turno veterinario a domicilio
Para que atiendan a mi mascota sin salir de casa
Antecedentes:
Dado que estoy en la pagina del turnero
# ============================================
# VERIFICACION DE COBERTURA
# ============================================
Escenario: Verificar cobertura en zona disponible
Cuando ingreso direccion "Av Santa Fe 1234, CABA"
Entonces deberia ver mensaje "Tenemos cobertura en tu zona"
Y deberia poder continuar al siguiente paso
Escenario: Zona sin cobertura
Cuando ingreso direccion "Calle Principal 100, Ushuaia"
Entonces deberia ver mensaje "Aun no tenemos cobertura en tu zona"
Y deberia ver formulario "Avisame cuando lleguen"
# ============================================
# FLUJO COMPLETO POR TIPO DE USUARIO
# ============================================
Esquema del escenario: Reservar turno como <tipo_usuario>
Dado que soy un usuario <tipo_usuario>
Y tengo cobertura en mi zona
Cuando completo los datos de mi mascota:
| campo | valor |
| nombre | Luna |
| tipo | Gato |
| edad | 2 años |
| castrada | Si |
Y selecciono servicios:
| servicio |
| Vacunacion |
Y selecciono fechas preferidas:
| fecha | franja |
| 2024-01-15 | Mañana |
| 2024-01-16 | Tarde |
Y completo datos de contacto con email "<email>"
Y envio la solicitud
Entonces deberia crearse una solicitud en estado "Pendiente"
Y el dueno deberia ser <estado_dueno>
Y deberia recibir email de confirmacion
Ejemplos:
| tipo_usuario | email | estado_dueno |
| invitado | nuevo@test.com | creado como invitado |
| registrado | user@test.com | mi cuenta existente |
| recurrente | conocido@test.com | identificado por email |
# ============================================
# SELECCION DE SERVICIOS
# ============================================
Escenario: Servicios filtrados por tipo de mascota
Dado que agregue una mascota tipo "Gato"
Cuando veo los servicios disponibles
Entonces deberia ver "Vacuna triple felina"
Y deberia ver "Vacuna antirabica"
Pero no deberia ver "Vacuna sextuple canina"
Escenario: Consulta clinica se agrega automaticamente con vacunacion
Dado que estoy seleccionando servicios
Cuando selecciono "Vacunacion"
Entonces "Consulta clinica" deberia agregarse automaticamente
Y deberia ver nota "Incluye revision general"
Y no deberia poder quitar "Consulta clinica"
Escenario: Servicios combo con descuento
Dado que estoy seleccionando servicios
Cuando agrego los siguientes servicios:
| servicio |
| Vacunacion |
| Desparasitacion |
| Antipulgas |
Entonces deberia ver "Plan preventivo completo"
Y el total deberia incluir descuento de combo
Escenario: Castracion no disponible para mascota castrada
Dado que mi mascota esta marcada como castrada
Cuando veo los servicios disponibles
Entonces no deberia ver "Castracion"
# ============================================
# DATOS DE CONTACTO Y CUENTA
# ============================================
Escenario: Pre-llenado de datos para usuario logueado
Dado que estoy logueado como "maria@ejemplo.com"
Y tengo registrada mascota "Firulais"
Cuando inicio el flujo de turnero
Entonces mi direccion deberia estar pre-llenada
Y deberia poder seleccionar "Firulais" de mis mascotas
Y mis datos de contacto ya deberian estar completos
Escenario: Detectar usuario existente por email
Dado que soy usuario invitado
Y existe una cuenta con email "existente@ejemplo.com"
Cuando ingreso email "existente@ejemplo.com" en datos de contacto
Entonces deberia ver "Ya tenes cuenta con este email"
Y deberia ver opciones:
| opcion |
| Iniciar sesion |
| Continuar como invitado |
# ============================================
# EDGE CASES
# ============================================
Escenario: Usuario abandona flujo a mitad
Dado que complete los datos de mascota
Y cerre el navegador sin enviar
Cuando vuelvo a la pagina del turnero
Entonces deberia poder recuperar mi progreso
# Nota: datos guardados en localStorage o session
Escenario: Multiples mascotas en una solicitud
Dado que quiero atender a 2 mascotas
Cuando agrego mascota "Luna" tipo "Gato"
Y agrego mascota "Rocky" tipo "Perro"
Y selecciono servicios para cada una
Entonces deberia crearse una solicitud con 2 mascotas
Y el precio deberia reflejar ambas
Escenario: Franja horaria especifica
Dado que solo puedo por la mañana
Cuando selecciono franja "Mañana (9-12hs)"
Entonces la solicitud deberia registrar esa preferencia
# Nota: Es preferencia, no garantia