# 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 igual a "" Then deberia ver error "" 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"