major restructure

This commit is contained in:
buenosairesam
2026-01-20 05:31:26 -03:00
parent 27b32deba4
commit e4052374db
328 changed files with 1018 additions and 10018 deletions

View File

@@ -0,0 +1,153 @@
# 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"