154 lines
5.6 KiB
Gherkin
154 lines
5.6 KiB
Gherkin
# 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
|
|
|
|
Feature: Gestion de mascotas
|
|
|
|
Como dueno de mascota registrado
|
|
Quiero gestionar la informacion de mis mascotas
|
|
Para tenerla actualizada y acceder a su historial medico
|
|
|
|
Background:
|
|
Given que estoy logueado como dueno de mascota
|
|
And estoy en la seccion "Mis mascotas"
|
|
|
|
# ============================================
|
|
# AGREGAR MASCOTA
|
|
# ============================================
|
|
|
|
Scenario: Agregar mascota con datos minimos
|
|
When hago click en "Agregar mascota"
|
|
And completo el formulario:
|
|
| campo | valor |
|
|
| nombre | Luna |
|
|
| tipo | Gato |
|
|
And hago click en "Guardar"
|
|
Then deberia ver "Luna" en mi lista de mascotas
|
|
And Luna deberia aparecer disponible en el turnero
|
|
|
|
Scenario: Agregar mascota con datos completos
|
|
When hago click en "Agregar mascota"
|
|
And completo el formulario:
|
|
| campo | valor |
|
|
| nombre | Rocky |
|
|
| tipo | Perro |
|
|
| raza | Labrador |
|
|
| fecha_nacimiento | 2020-03-15 |
|
|
| peso | 25 |
|
|
| sexo | Macho |
|
|
| castrado | Si |
|
|
And subo una foto de Rocky
|
|
And hago click en "Guardar"
|
|
Then deberia ver "Rocky" con su foto en mi lista
|
|
And deberia ver badge "Castrado"
|
|
|
|
Scenario Outline: Validacion de datos de mascota
|
|
When intento agregar mascota con <campo> igual a "<valor>"
|
|
Then deberia ver error "<mensaje>"
|
|
|
|
Examples:
|
|
| 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
|
|
# ============================================
|
|
|
|
Scenario: Editar peso de mascota
|
|
Given que tengo una mascota "Luna" con peso 4kg
|
|
When edito a Luna
|
|
And cambio el peso a 5kg
|
|
And guardo los cambios
|
|
Then Luna deberia mostrar peso "5 kg"
|
|
|
|
Scenario: Marcar mascota como castrada
|
|
Given que tengo una mascota "Rocky" no castrado
|
|
When edito a Rocky
|
|
And marco "Esta castrado"
|
|
And guardo los cambios
|
|
Then Rocky deberia mostrar badge "Castrado"
|
|
And el servicio "Castracion" no deberia aparecer para Rocky en el turnero
|
|
|
|
Scenario: Actualizar foto de mascota
|
|
Given que tengo una mascota "Luna" sin foto
|
|
When edito a Luna
|
|
And subo una nueva foto
|
|
And guardo los cambios
|
|
Then deberia ver la foto de Luna en su tarjeta
|
|
|
|
# ============================================
|
|
# ELIMINAR MASCOTA
|
|
# ============================================
|
|
|
|
Scenario: Eliminar mascota sin historial
|
|
Given que tengo una mascota "Nuevo" sin visitas
|
|
When hago click en "Eliminar" para Nuevo
|
|
And confirmo la eliminacion
|
|
Then Nuevo no deberia aparecer en mi lista
|
|
# Nota: Es soft delete
|
|
|
|
Scenario: Eliminar mascota con historial medico
|
|
Given que tengo una mascota "Luna" con visitas anteriores
|
|
When hago click en "Eliminar" para Luna
|
|
Then deberia ver advertencia "Luna tiene historial medico"
|
|
And deberia ver "El historial se conservara pero no podras verlo"
|
|
When confirmo la eliminacion
|
|
Then Luna no deberia aparecer en mi lista
|
|
|
|
Scenario: No puedo eliminar mascota con turno pendiente
|
|
Given que tengo una mascota "Rocky" con turno pendiente
|
|
When intento eliminar a Rocky
|
|
Then deberia ver error "Rocky tiene turnos pendientes"
|
|
And deberia ver sugerencia "Cancela los turnos primero"
|
|
|
|
# ============================================
|
|
# VER HISTORIAL MEDICO
|
|
# ============================================
|
|
|
|
Scenario: Ver historial de visitas de mascota
|
|
Given que tengo una mascota "Luna" con 3 visitas completadas
|
|
When hago click en Luna
|
|
And voy a la seccion "Historial"
|
|
Then deberia ver 3 visitas listadas
|
|
And deberian estar ordenadas por fecha descendente
|
|
|
|
Scenario: Ver detalle de visita
|
|
Given que tengo una mascota "Luna" con visitas
|
|
When veo el historial de Luna
|
|
And hago click en la primera visita
|
|
Then deberia ver:
|
|
| campo |
|
|
| Fecha |
|
|
| Veterinario |
|
|
| Diagnostico |
|
|
| Tratamiento |
|
|
| Medicamentos |
|
|
|
|
Scenario: Mascota sin historial
|
|
Given que tengo una mascota "Nuevo" recien agregada
|
|
When veo el perfil de Nuevo
|
|
Then la seccion "Historial" deberia estar vacia
|
|
And deberia ver mensaje "Aun no hay visitas registradas"
|
|
And deberia ver boton "Reservar primer turno"
|
|
|
|
# ============================================
|
|
# CASOS ESPECIALES
|
|
# ============================================
|
|
|
|
Scenario: Mascota heredada de cuenta invitado
|
|
Given que me registre con email "juan@test.com"
|
|
And previamente reserve turno como invitado para "Firulais"
|
|
When voy a "Mis mascotas"
|
|
Then deberia ver "Firulais" en mi lista
|
|
And deberia ver su historial de visitas previas
|
|
|
|
Scenario: Razas filtradas por tipo
|
|
When agrego una mascota tipo "Gato"
|
|
Then las razas disponibles deberian ser razas de gato
|
|
And no deberia ver razas de perro como "Labrador"
|