spr migrated books, and tester
This commit is contained in:
92
atlas/book/gherkin-samples/es/pet-owner/01-registro.feature
Normal file
92
atlas/book/gherkin-samples/es/pet-owner/01-registro.feature
Normal file
@@ -0,0 +1,92 @@
|
||||
# language: es
|
||||
# Fuente: album/book/ops-templates/pet-owner/01-registro.md
|
||||
# Drive: 08. IT y Producto/Funcionalidades Plataforma Veterinario
|
||||
# Tests Backend: pytest tests/contracts/common/test_users.py
|
||||
# Tests Frontend: npx playwright test auth.spec.ts
|
||||
|
||||
Característica: Registro de usuario
|
||||
|
||||
Como visitante de la plataforma
|
||||
Quiero poder crear una cuenta
|
||||
Para gestionar mis mascotas y reservar turnos
|
||||
|
||||
# ============================================
|
||||
# CAMINO FELIZ
|
||||
# ============================================
|
||||
|
||||
Escenario: Registro exitoso con datos validos
|
||||
Dado que estoy en la pagina de registro
|
||||
Cuando ingreso email "nuevo@ejemplo.com"
|
||||
Y ingreso contraseña "Password123"
|
||||
Y confirmo contraseña "Password123"
|
||||
Y acepto los terminos y condiciones
|
||||
Y hago click en "Crear cuenta"
|
||||
Entonces deberia ver mensaje "Te enviamos un email de verificacion"
|
||||
Y deberia recibir email de verificacion
|
||||
|
||||
Escenario: Verificar email y activar cuenta
|
||||
Dado que me registre con email "nuevo@ejemplo.com"
|
||||
Y recibi el email de verificacion
|
||||
Cuando hago click en el link de verificacion
|
||||
Entonces mi cuenta deberia estar activa
|
||||
Y deberia ser redirigido al dashboard
|
||||
|
||||
# ============================================
|
||||
# VALIDACIONES
|
||||
# ============================================
|
||||
|
||||
Esquema del escenario: Registro con datos invalidos
|
||||
Dado que estoy en la pagina de registro
|
||||
Cuando ingreso email "<email>"
|
||||
Y ingreso contraseña "<password>"
|
||||
Y confirmo contraseña "<confirmacion>"
|
||||
Y hago click en "Crear cuenta"
|
||||
Entonces deberia ver error "<mensaje_error>"
|
||||
|
||||
Ejemplos:
|
||||
| email | password | confirmacion | mensaje_error |
|
||||
| invalido | Password123 | Password123 | Email invalido |
|
||||
| test@test.com | 123 | 123 | Contraseña muy corta |
|
||||
| test@test.com | password | password | Debe contener al menos un numero |
|
||||
| test@test.com | Password123 | Diferente123 | Las contraseñas no coinciden |
|
||||
|
||||
Escenario: Registro con email ya existente
|
||||
Dado que existe un usuario con email "existente@ejemplo.com"
|
||||
Y estoy en la pagina de registro
|
||||
Cuando ingreso email "existente@ejemplo.com"
|
||||
Y completo el resto del formulario correctamente
|
||||
Y hago click en "Crear cuenta"
|
||||
Entonces deberia ver error "Este email ya esta registrado"
|
||||
Y deberia ver link "Recuperar contraseña"
|
||||
|
||||
# ============================================
|
||||
# CASOS ESPECIALES
|
||||
# ============================================
|
||||
|
||||
Escenario: Registro linkea con cuenta invitado existente
|
||||
# Usuario que reservo turno como invitado y ahora quiere registrarse
|
||||
Dado que existe un usuario invitado con email "invitado@ejemplo.com"
|
||||
Y ese usuario tiene una mascota "Luna" registrada
|
||||
Y estoy en la pagina de registro
|
||||
Cuando me registro con email "invitado@ejemplo.com"
|
||||
Y verifico mi cuenta
|
||||
Entonces deberia ver mi mascota "Luna" en el dashboard
|
||||
Y deberia ver mis turnos anteriores
|
||||
|
||||
Escenario: Registro desde flujo de turnero
|
||||
# Usuario empezo a reservar turno y decide crear cuenta
|
||||
Dado que estoy en el paso final del turnero
|
||||
Y ingrese mis datos de contacto
|
||||
Cuando hago click en "Crear cuenta para guardar mis datos"
|
||||
Entonces deberia ver formulario simplificado
|
||||
Y mi email ya deberia estar pre-llenado
|
||||
Y solo deberia ingresar contraseña
|
||||
|
||||
Escenario: Reenviar email de verificacion
|
||||
Dado que me registre pero no verifique mi cuenta
|
||||
Y estoy en la pagina de login
|
||||
Cuando intento iniciar sesion
|
||||
Entonces deberia ver "Tu cuenta no esta verificada"
|
||||
Y deberia ver boton "Reenviar email"
|
||||
Cuando hago click en "Reenviar email"
|
||||
Entonces deberia recibir nuevo email de verificacion
|
||||
@@ -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
|
||||
@@ -0,0 +1,154 @@
|
||||
# language: es
|
||||
# Fuente: album/book/ops-templates/pet-owner/03-gestion-mascotas.md
|
||||
# Drive: 08. IT y Producto/Funcionalidades Plataforma Veterinario
|
||||
# Tests Backend: pytest tests/contracts/mascotas/test_pets.py
|
||||
# Tests Frontend: npx playwright test pets.spec.ts
|
||||
|
||||
Característica: Gestion de mascotas
|
||||
|
||||
Como dueno de mascota registrado
|
||||
Quiero gestionar la informacion de mis mascotas
|
||||
Para tenerla actualizada y acceder a su historial medico
|
||||
|
||||
Antecedentes:
|
||||
Dado que estoy logueado como dueno de mascota
|
||||
Y estoy en la seccion "Mis mascotas"
|
||||
|
||||
# ============================================
|
||||
# AGREGAR MASCOTA
|
||||
# ============================================
|
||||
|
||||
Escenario: Agregar mascota con datos minimos
|
||||
Cuando hago click en "Agregar mascota"
|
||||
Y completo el formulario:
|
||||
| campo | valor |
|
||||
| nombre | Luna |
|
||||
| tipo | Gato |
|
||||
Y hago click en "Guardar"
|
||||
Entonces deberia ver "Luna" en mi lista de mascotas
|
||||
Y Luna deberia aparecer disponible en el turnero
|
||||
|
||||
Escenario: Agregar mascota con datos completos
|
||||
Cuando hago click en "Agregar mascota"
|
||||
Y completo el formulario:
|
||||
| campo | valor |
|
||||
| nombre | Rocky |
|
||||
| tipo | Perro |
|
||||
| raza | Labrador |
|
||||
| fecha_nacimiento | 2020-03-15 |
|
||||
| peso | 25 |
|
||||
| sexo | Macho |
|
||||
| castrado | Si |
|
||||
Y subo una foto de Rocky
|
||||
Y hago click en "Guardar"
|
||||
Entonces deberia ver "Rocky" con su foto en mi lista
|
||||
Y deberia ver badge "Castrado"
|
||||
|
||||
Esquema del escenario: Validacion de datos de mascota
|
||||
Cuando intento agregar mascota con <campo> igual a "<valor>"
|
||||
Entonces deberia ver error "<mensaje>"
|
||||
|
||||
Ejemplos:
|
||||
| campo | valor | mensaje |
|
||||
| nombre | | El nombre es obligatorio |
|
||||
| nombre | A | Nombre muy corto |
|
||||
| tipo | | Selecciona el tipo |
|
||||
| peso | -5 | El peso debe ser positivo |
|
||||
| peso | 500 | Peso fuera de rango |
|
||||
|
||||
# ============================================
|
||||
# EDITAR MASCOTA
|
||||
# ============================================
|
||||
|
||||
Escenario: Editar peso de mascota
|
||||
Dado que tengo una mascota "Luna" con peso 4kg
|
||||
Cuando edito a Luna
|
||||
Y cambio el peso a 5kg
|
||||
Y guardo los cambios
|
||||
Entonces Luna deberia mostrar peso "5 kg"
|
||||
|
||||
Escenario: Marcar mascota como castrada
|
||||
Dado que tengo una mascota "Rocky" no castrado
|
||||
Cuando edito a Rocky
|
||||
Y marco "Esta castrado"
|
||||
Y guardo los cambios
|
||||
Entonces Rocky deberia mostrar badge "Castrado"
|
||||
Y el servicio "Castracion" no deberia aparecer para Rocky en el turnero
|
||||
|
||||
Escenario: Actualizar foto de mascota
|
||||
Dado que tengo una mascota "Luna" sin foto
|
||||
Cuando edito a Luna
|
||||
Y subo una nueva foto
|
||||
Y guardo los cambios
|
||||
Entonces deberia ver la foto de Luna en su tarjeta
|
||||
|
||||
# ============================================
|
||||
# ELIMINAR MASCOTA
|
||||
# ============================================
|
||||
|
||||
Escenario: Eliminar mascota sin historial
|
||||
Dado que tengo una mascota "Nuevo" sin visitas
|
||||
Cuando hago click en "Eliminar" para Nuevo
|
||||
Y confirmo la eliminacion
|
||||
Entonces Nuevo no deberia aparecer en mi lista
|
||||
# Nota: Es soft delete
|
||||
|
||||
Escenario: Eliminar mascota con historial medico
|
||||
Dado que tengo una mascota "Luna" con visitas anteriores
|
||||
Cuando hago click en "Eliminar" para Luna
|
||||
Entonces deberia ver advertencia "Luna tiene historial medico"
|
||||
Y deberia ver "El historial se conservara pero no podras verlo"
|
||||
Cuando confirmo la eliminacion
|
||||
Entonces Luna no deberia aparecer en mi lista
|
||||
|
||||
Escenario: No puedo eliminar mascota con turno pendiente
|
||||
Dado que tengo una mascota "Rocky" con turno pendiente
|
||||
Cuando intento eliminar a Rocky
|
||||
Entonces deberia ver error "Rocky tiene turnos pendientes"
|
||||
Y deberia ver sugerencia "Cancela los turnos primero"
|
||||
|
||||
# ============================================
|
||||
# VER HISTORIAL MEDICO
|
||||
# ============================================
|
||||
|
||||
Escenario: Ver historial de visitas de mascota
|
||||
Dado que tengo una mascota "Luna" con 3 visitas completadas
|
||||
Cuando hago click en Luna
|
||||
Y voy a la seccion "Historial"
|
||||
Entonces deberia ver 3 visitas listadas
|
||||
Y deberian estar ordenadas por fecha descendente
|
||||
|
||||
Escenario: Ver detalle de visita
|
||||
Dado que tengo una mascota "Luna" con visitas
|
||||
Cuando veo el historial de Luna
|
||||
Y hago click en la primera visita
|
||||
Entonces deberia ver:
|
||||
| campo |
|
||||
| Fecha |
|
||||
| Veterinario |
|
||||
| Diagnostico |
|
||||
| Tratamiento |
|
||||
| Medicamentos |
|
||||
|
||||
Escenario: Mascota sin historial
|
||||
Dado que tengo una mascota "Nuevo" recien agregada
|
||||
Cuando veo el perfil de Nuevo
|
||||
Entonces la seccion "Historial" deberia estar vacia
|
||||
Y deberia ver mensaje "Aun no hay visitas registradas"
|
||||
Y deberia ver boton "Reservar primer turno"
|
||||
|
||||
# ============================================
|
||||
# CASOS ESPECIALES
|
||||
# ============================================
|
||||
|
||||
Escenario: Mascota heredada de cuenta invitado
|
||||
Dado que me registre con email "juan@test.com"
|
||||
Y previamente reserve turno como invitado para "Firulais"
|
||||
Cuando voy a "Mis mascotas"
|
||||
Entonces deberia ver "Firulais" en mi lista
|
||||
Y deberia ver su historial de visitas previas
|
||||
|
||||
Escenario: Razas filtradas por tipo
|
||||
Cuando agrego una mascota tipo "Gato"
|
||||
Entonces las razas disponibles deberian ser razas de gato
|
||||
Y no deberia ver razas de perro como "Labrador"
|
||||
141
atlas/book/gherkin-samples/es/pet-owner/04-pago-turno.feature
Normal file
141
atlas/book/gherkin-samples/es/pet-owner/04-pago-turno.feature
Normal file
@@ -0,0 +1,141 @@
|
||||
# language: es
|
||||
# Fuente: album/book/ops-templates/pet-owner/04-pago-turno.md
|
||||
# Drive: 07. Finanzas y contabilidad/Mercado Pago
|
||||
# Tests Backend: pytest tests/contracts/payments/test_mercadopago.py
|
||||
# Tests Frontend: npx playwright test payment.spec.ts
|
||||
|
||||
Característica: Pago de turno
|
||||
|
||||
Como dueno de mascota con turno coordinado
|
||||
Quiero pagar mi turno online
|
||||
Para confirmar la visita del veterinario
|
||||
|
||||
Antecedentes:
|
||||
Dado que tengo un turno en estado "Coordinado"
|
||||
Y el turno tiene asignado veterinario "Dra. Garcia"
|
||||
Y la fecha asignada es "15 de enero a las 10:00"
|
||||
|
||||
# ============================================
|
||||
# FLUJO DE PAGO EXITOSO
|
||||
# ============================================
|
||||
|
||||
Escenario: Pagar turno con tarjeta de credito
|
||||
Dado que estoy en el detalle de mi turno coordinado
|
||||
Cuando hago click en "Pagar"
|
||||
Entonces deberia ser redirigido a Mercado Pago
|
||||
Y deberia ver el monto correcto
|
||||
|
||||
Cuando selecciono "Tarjeta de credito"
|
||||
Y completo los datos de la tarjeta
|
||||
Y confirmo el pago
|
||||
Entonces deberia volver a la plataforma
|
||||
Y deberia ver "Pago exitoso"
|
||||
Y el turno deberia estar en estado "Pagado"
|
||||
|
||||
Escenario: Recibir confirmacion de pago
|
||||
Dado que complete el pago exitosamente
|
||||
Entonces deberia recibir email de confirmacion
|
||||
Y el email deberia contener:
|
||||
| campo |
|
||||
| Fecha del turno |
|
||||
| Direccion |
|
||||
| Veterinario asignado |
|
||||
| Monto pagado |
|
||||
| Numero de operacion |
|
||||
|
||||
# ============================================
|
||||
# METODOS DE PAGO
|
||||
# ============================================
|
||||
|
||||
Esquema del escenario: Pagar con diferentes metodos
|
||||
Dado que estoy en Mercado Pago
|
||||
Cuando selecciono metodo "<metodo>"
|
||||
Y completo el pago
|
||||
Entonces el pago deberia ser <resultado>
|
||||
Y el estado de acreditacion deberia ser "<acreditacion>"
|
||||
|
||||
Ejemplos:
|
||||
| metodo | resultado | acreditacion |
|
||||
| Tarjeta credito | exitoso | inmediata |
|
||||
| Tarjeta debito | exitoso | inmediata |
|
||||
| Dinero en cuenta | exitoso | inmediata |
|
||||
| Transferencia | pendiente | 1-2 dias |
|
||||
| Rapipago | pendiente | hasta 24hs |
|
||||
|
||||
# ============================================
|
||||
# MANEJO DE ERRORES
|
||||
# ============================================
|
||||
|
||||
Escenario: Pago rechazado por fondos insuficientes
|
||||
Dado que estoy en Mercado Pago
|
||||
Cuando intento pagar con tarjeta sin fondos
|
||||
Entonces deberia ver error "Fondos insuficientes"
|
||||
Y deberia poder reintentar con otra tarjeta
|
||||
Y el turno deberia seguir en estado "Coordinado"
|
||||
|
||||
Escenario: Usuario cancela el pago
|
||||
Dado que estoy en Mercado Pago
|
||||
Cuando hago click en "Volver al sitio"
|
||||
Entonces deberia volver a la plataforma
|
||||
Y deberia ver mensaje "El pago fue cancelado"
|
||||
Y deberia ver boton "Reintentar pago"
|
||||
Y el turno deberia seguir en estado "Coordinado"
|
||||
|
||||
Escenario: Cierre de browser durante pago
|
||||
Dado que estoy en Mercado Pago
|
||||
Y cierro el navegador accidentalmente
|
||||
Cuando vuelvo a la plataforma
|
||||
Y voy a "Mis turnos"
|
||||
Entonces deberia poder ver el estado real del pago
|
||||
# Si se proceso: Pagado. Si no: Coordinado con opcion de pagar
|
||||
|
||||
# ============================================
|
||||
# CASOS ESPECIALES
|
||||
# ============================================
|
||||
|
||||
Escenario: Link de pago expirado
|
||||
Dado que recibi el link de pago hace mas de 24 horas
|
||||
Cuando hago click en el link
|
||||
Entonces deberia ver "Este link ha expirado"
|
||||
Y deberia ver "Contacta a soporte para generar uno nuevo"
|
||||
|
||||
Escenario: Intento pagar turno ya pagado
|
||||
Dado que mi turno ya esta en estado "Pagado"
|
||||
Cuando accedo al link de pago
|
||||
Entonces deberia ver "Este turno ya fue pagado"
|
||||
Y deberia ver boton "Ver detalle del turno"
|
||||
|
||||
Escenario: Precio cambio desde la coordinacion
|
||||
# Caso muy raro pero posible
|
||||
Dado que el precio del servicio aumento desde que se coordino
|
||||
Cuando voy a pagar
|
||||
Entonces deberia ver el precio original acordado
|
||||
# El precio se congela al momento de coordinacion
|
||||
|
||||
# ============================================
|
||||
# INTEGRACION CON WEBHOOK
|
||||
# ============================================
|
||||
|
||||
Regla: El estado del turno se actualiza via webhook de Mercado Pago
|
||||
|
||||
Escenario: Webhook confirma pago aprobado
|
||||
Dado que el usuario completo el pago en Mercado Pago
|
||||
Cuando Mercado Pago envia webhook con status "approved"
|
||||
Entonces el turno deberia cambiar a estado "Pagado"
|
||||
Y el veterinario deberia recibir notificacion
|
||||
Y el usuario deberia recibir email de confirmacion
|
||||
|
||||
Escenario: Webhook informa pago pendiente
|
||||
Dado que el usuario pago con transferencia bancaria
|
||||
Cuando Mercado Pago envia webhook con status "pending"
|
||||
Entonces el turno deberia quedarse en "Coordinado"
|
||||
Y deberia registrarse el pago pendiente
|
||||
Y el usuario deberia recibir email "Esperando acreditacion"
|
||||
|
||||
Escenario: Webhook falla pero pago se proceso
|
||||
# Caso de error que requiere intervencion manual
|
||||
Dado que el usuario pago exitosamente
|
||||
Pero el webhook fallo por error de red
|
||||
Entonces el turno seguira en "Coordinado"
|
||||
Y el equipo de ops deberia recibir alerta
|
||||
Y deberian poder actualizar manualmente
|
||||
@@ -0,0 +1,148 @@
|
||||
# language: es
|
||||
# Fuente: album/book/ops-templates/pet-owner/05-historial-medico.md
|
||||
# Drive: 08. IT y Producto/Funcionalidades Plataforma Veterinario
|
||||
# Tests Backend: pytest tests/contracts/mascotas/test_vet_visits.py
|
||||
# Tests Frontend: npx playwright test medical-history.spec.ts
|
||||
|
||||
Característica: Ver historial medico
|
||||
|
||||
Como dueno de mascota
|
||||
Quiero ver el historial medico de mis mascotas
|
||||
Para tener registro de sus visitas y tratamientos
|
||||
|
||||
Antecedentes:
|
||||
Dado que estoy logueado como dueno de mascota
|
||||
Y tengo una mascota "Luna" con visitas completadas
|
||||
|
||||
# ============================================
|
||||
# ACCESO AL HISTORIAL
|
||||
# ============================================
|
||||
|
||||
Escenario: Acceder al historial desde mascotas
|
||||
Dado que estoy en "Mis mascotas"
|
||||
Cuando hago click en "Luna"
|
||||
Y voy a la seccion "Historial de visitas"
|
||||
Entonces deberia ver lista de visitas de Luna
|
||||
|
||||
Escenario: Acceder al historial desde turnos
|
||||
Dado que estoy en "Mis turnos"
|
||||
Y filtro por "Completados"
|
||||
Cuando hago click en un turno de Luna
|
||||
Y hago click en "Ver informe medico"
|
||||
Entonces deberia ver el informe de esa visita
|
||||
|
||||
# ============================================
|
||||
# VISUALIZACION DE VISITAS
|
||||
# ============================================
|
||||
|
||||
Escenario: Ver lista de visitas ordenadas
|
||||
Dado que Luna tiene visitas en las siguientes fechas:
|
||||
| fecha |
|
||||
| 2024-01-15 |
|
||||
| 2023-11-20 |
|
||||
| 2023-06-10 |
|
||||
Cuando veo el historial de Luna
|
||||
Entonces deberia ver las visitas ordenadas de mas reciente a mas antigua
|
||||
Y la primera deberia ser del "15 de enero 2024"
|
||||
|
||||
Escenario: Ver detalle completo de informe
|
||||
Cuando hago click en una visita completada
|
||||
Entonces deberia ver los siguientes datos:
|
||||
| seccion | contenido |
|
||||
| Informacion | Fecha, veterinario, servicios |
|
||||
| Examen fisico | Peso, temperatura, FC, obs |
|
||||
| Diagnostico | Descripcion del diagnostico |
|
||||
| Tratamiento | Plan de tratamiento |
|
||||
| Medicamentos | Lista con dosis y frecuencia |
|
||||
| Estudios | Estudios solicitados y estado |
|
||||
| Seguimiento | Recomendaciones, proximo control |
|
||||
|
||||
Escenario: Ver informe con medicamentos recetados
|
||||
Dado que la visita incluye medicamentos:
|
||||
"""
|
||||
1. Amoxicilina 250mg - 1 comprimido cada 12hs por 7 dias
|
||||
2. Meloxicam 1.5mg - 1 comprimido por dia por 3 dias
|
||||
"""
|
||||
Cuando veo el informe
|
||||
Entonces deberia ver la lista de medicamentos
|
||||
Y cada medicamento deberia mostrar:
|
||||
| campo |
|
||||
| Nombre |
|
||||
| Dosis |
|
||||
| Frecuencia |
|
||||
| Duracion |
|
||||
|
||||
# ============================================
|
||||
# DESCARGA Y COMPARTIR
|
||||
# ============================================
|
||||
|
||||
Escenario: Descargar informe como PDF
|
||||
Dado que estoy viendo un informe medico
|
||||
Cuando hago click en "Descargar PDF"
|
||||
Entonces deberia descargarse un archivo PDF
|
||||
Y el PDF deberia contener toda la informacion del informe
|
||||
Y deberia tener el logo de Amar Mascotas
|
||||
|
||||
Escenario: Imprimir informe
|
||||
Dado que estoy viendo un informe medico
|
||||
Cuando hago click en "Imprimir"
|
||||
Entonces deberia abrirse el dialogo de impresion
|
||||
Y el formato deberia ser optimizado para impresion
|
||||
|
||||
# ============================================
|
||||
# CASOS ESPECIALES
|
||||
# ============================================
|
||||
|
||||
Escenario: Visita completada sin informe cargado
|
||||
# El vet no cargo el informe todavia
|
||||
Dado que Luna tiene una visita marcada como "Completada"
|
||||
Pero el veterinario no cargo el informe aun
|
||||
Cuando intento ver el informe
|
||||
Entonces deberia ver mensaje "Informe pendiente"
|
||||
Y deberia ver "El veterinario esta completando el informe"
|
||||
|
||||
Escenario: Informe con estudios pendientes
|
||||
Dado que el informe solicita estudios de laboratorio
|
||||
Y los resultados aun no estan disponibles
|
||||
Cuando veo el informe
|
||||
Entonces deberia ver seccion "Estudios solicitados"
|
||||
Y deberia ver estado "Pendiente de resultados"
|
||||
Y deberia ver nota "Se notificara cuando esten listos"
|
||||
|
||||
Escenario: Mascota con multiples visitas el mismo dia
|
||||
# Raro pero posible: consulta de urgencia + seguimiento
|
||||
Dado que Luna tuvo 2 visitas el 15 de enero
|
||||
Cuando veo el historial
|
||||
Entonces deberia ver ambas visitas listadas
|
||||
Y deberian estar diferenciadas por hora
|
||||
|
||||
# ============================================
|
||||
# PERMISOS Y PRIVACIDAD
|
||||
# ============================================
|
||||
|
||||
Regla: Solo el dueno puede ver el historial de su mascota
|
||||
|
||||
Escenario: Dueno ve historial de su mascota
|
||||
Dado que soy dueno de Luna
|
||||
Cuando accedo al historial de Luna
|
||||
Entonces deberia poder verlo completo
|
||||
|
||||
Escenario: No puedo ver historial de mascota ajena
|
||||
Dado que existe mascota "Rocky" de otro dueno
|
||||
Cuando intento acceder al historial de Rocky
|
||||
Entonces deberia ver error "No tienes acceso"
|
||||
# 403 Forbidden
|
||||
|
||||
# ============================================
|
||||
# BUSQUEDA Y FILTROS
|
||||
# ============================================
|
||||
|
||||
Escenario: Filtrar historial por tipo de servicio
|
||||
Dado que Luna tiene visitas de vacunacion y consulta
|
||||
Cuando filtro por "Vacunacion"
|
||||
Entonces solo deberia ver visitas de vacunacion
|
||||
|
||||
Escenario: Buscar en historial por fecha
|
||||
Cuando busco visitas del "2023"
|
||||
Entonces solo deberia ver visitas del 2023
|
||||
Y no deberia ver visitas del 2024
|
||||
Reference in New Issue
Block a user