Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

(READY FOR REVIEW) Reto 1&2 - Completar la implementación para que los tests e2e pasen exitosamente | Servidores "fisicamente distintos" #4

Open
wants to merge 5 commits into
base: main
Choose a base branch
from

Conversation

SantiagoSeisdedos
Copy link

Instrucciones:

Agregar los archivos .env y .env.test al root!

npm i

npm start o npm run dev para levantar el servidor en caso de querer utilizar postman realizar peticiones a MongoDB

npm run test para correr los tests.

DEMO

Changelos:

  1. Estructura del Proyecto

    • Se agregó una nueva estructura de carpetas bajo src/ siguiendo el patrón de diseño MVC (Model-View-Controller). Esto facilita la organización del código y la separación de responsabilidades.
      Carpetas añadidas:
      • controllers/: para manejar la lógica de los controladores.
      • services/: para la lógica de negocio.
      • routes/: para la definición de rutas.
      • config/: para configuraciones, como bases de datos.
      • mock/: para mocks de datos con faker utilizados en el testing adicional.
      • middlewares/: para middleware como validaciones y manejo de errores con joi.
      • models/: para definir los esquemas de MongoDB.
  2. Controladores y Servicios

    • Se crearon los archivos respectivos en cada carpeta para implementar la funcionalidad solicitada.
      • item.controller.ts: controlador para gestionar las operaciones CRUD de la entidad Item.
      • item.service.ts: lógica de negocio relacionada con Item.
      • item.mock.ts: datos mock utilizados en pruebas.
  3. Rutas

    • Se implementaron rutas adicionales para manejar las operaciones CRUD de Item y las funcionalidades extra solicitadas.
    • Se añadió un endpoint adicional /items/paginated para simular un paginado de items. Esto permite la recuperación de resultados paginados, usando parámetros como limit, page, y sort.
  4. Base de Datos y Testing

    • Se integró Mongoose para conectarse a MongoDB.
    • Para evitar cambios en la base de datos en la nube durante las pruebas, se añadió Mongo Memory Server, permitiendo el testing en una base de datos en memoria.
    • Se creó el archivo setup.ts para configurar el entorno de testing.
    • Se añadieron archivos .env y .env.test al root para gestionar variables de entorno.
  5. Testing

    • Se creó un archivo de prueba adicional, pagination.test.ts, para realizar pruebas e2e en el endpoint de paginado.
    • Se implementaron validaciones con Faker para generar datos de prueba y asegurarse de que las paginaciones funcionan correctamente.
  6. Dependencias

    • Se añadieron nuevas dependencias:
      • Mongoose: Para conectarse a MongoDB.
      • Mongo Memory Server: Para tests en memoria.
      • Joi: Para validaciones en los middlewares.
      • Faker: Para generar datos falsos en los tests.

@SantiagoSeisdedos SantiagoSeisdedos changed the title Primer Reto - Completar la implementación para que los tests e2e pasen exitosamente Reto 1&2 - Completar la implementación para que los tests e2e pasen exitosamente | Servidores "fisicamente distintos" Sep 23, 2024
@SantiagoSeisdedos SantiagoSeisdedos changed the title Reto 1&2 - Completar la implementación para que los tests e2e pasen exitosamente | Servidores "fisicamente distintos" (READY FOR REVIEW) Reto 1&2 - Completar la implementación para que los tests e2e pasen exitosamente | Servidores "fisicamente distintos" Sep 23, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant