Skip to content

Implementar batería completa de tests para el método search() en ListingRepository #38

@javiersarpedroza

Description

@javiersarpedroza

Descripción
El método search() del ListingRepository contiene lógica condicional compleja que combina múltiples filtros opcionales:

type

minPrice

maxPrice

guests

nights (minNights y maxNights)

Actualmente, el repositorio solo tiene tests para los métodos derivados (findByIsActiveTrue, etc.), pero no existe una batería completa de tests dedicada a search(), que es el método más crítico para la funcionalidad de filtrado del proyecto.

Es necesario crear un conjunto de tests que cubran todos los escenarios relevantes y validen que la query JPQL funciona correctamente en todas las combinaciones posibles.

Tareas
Crear tests unitarios con @DataJpaTest que cubran:

search() sin filtros
Debe devolver todos los listings.
Filtrado por type
Solo listings del tipo solicitado.
Filtrado por minPrice
pricePerNight >= minPrice.
Filtrado por maxPrice
pricePerNight <= maxPrice.
Filtrado por guests
maxGuests >= guests.
Filtrado por nights

Validar correctamente minNights y maxNights.

Revisar si la lógica actual es la deseada.

Combinación de filtros

type + price + guests + nights.

Sin resultados

search() debe devolver lista vacía cuando no hay coincidencias.

Criterios de aceptación
Todos los tests del método search() están implementados y pasan correctamente.

La lógica del filtro por nights queda definida y validada.
No se rompen los tests existentes del repositorio.
La cobertura del repositorio aumenta y cubre todos los caminos lógicos del método.

Notas
Este issue no modifica la lógica del método search().
Si durante la implementación se detecta que la lógica debe ajustarse (por ejemplo, en el filtro de nights), se abrirá un issue separado para modificar la query.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    Status
    Backlog

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions