Conversation
7 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Requerimiento
https://proyectos.andes.gob.ar/browse/REC-197
Funcionalidad desarrollada
testcontainers) ysupertestpara peticiones HTTP.tests/setup.ts.tests/integration/app-test-helper.tsse ha emulado el servidor Express para ser consumido en los tests.tests/integration/prescription/prescription.create.test.tsse escribió un conjunto de validaciones sobre el endpoint de creación de prescripciones.Warning
El archivo
testing-guide.mdcontiene el prompt institucional que el agente necesita para elaborar los test de manera reglamentaria. Se debe asignar al modelo/gestor que se esté utilizando para escribir código con IA.Instrucciones
Para ejecutar las pruebas de integración en este proyecto, tienes dos enfoques principales gracias a la configuración de testcontainers que hemos revisado.
Paso a paso detallado:
Opción 1: Ejecución Rápida (Recomendada para desarrollo continuo)
Este enfoque levanta una base de datos de prueba en segundo plano y la mantiene viva. Esto hace que ejecutar los tests múltiples veces sea mucho más rápido porque no tiene que levantar y apagar un contenedor de Docker cada vez.
Paso 1: Levantar el entorno de pruebas Abre una terminal en la raíz de tu proyecto e inicia el contenedor de MongoDB para testing:
npm run test:containers:upℹ️ Nota: Este comando iniciará un contenedor de Docker con MongoDB y creará (o actualizará) el archivo .testcontainers.env con la cadena de conexión. Además, ejecutará el script de "seeding" para insertar usuarios de prueba.
Paso 2: Dejar esa terminal corriendo El script anterior se quedará ejecutándose. Déjalo abierto en esa pestaña de la terminal.
Paso 3: Ejecutar los tests Abre otra pestaña o ventana de la terminal en la misma carpeta del proyecto y ejecuta:
npm run testComo la configuración (
tests/setup.ts) detectará que el archivo.testcontainers.envexiste, Jest utilizará la base de datos que ya está corriendo, haciendo que la ejecución de las pruebas sea inmediata. Puedes correr este comando todas las veces que quieras mientras desarrollas.Paso 4: Apagar el entorno (al terminar) Cuando hayas terminado de programar por el día, vuelve a la primera terminal y presiona Ctrl + C. Esto detendrá el contenedor de MongoDB y limpiará automáticamente el archivo .testcontainers.env.
Opción 2: Ejecución Efímera (Ideal para CI/CD o pruebas de una sola vez)
Si solo quieres correr los tests una vez para validar que todo funcione y no te importa esperar un poco más, puedes dejar que Jest y Testcontainers manejen el ciclo de vida completo de la base de datos automáticamente.
Paso único: Ejecutar Jest directamente Asegúrate de no tener el script test:containers:up corriendo y simplemente ejecuta:
npm run testAl finalizar la suite de pruebas, vaciará la base de datos y destruirá el contenedor de Docker para no consumir recursos en tu PC.
Consideraciones sobre Docker
Dado que el proyecto utiliza testcontainers para levantar instancias de MongoDB sobre la marcha, es un requisito indispensable tener Docker Desktop (o el motor de Docker) instalado y ejecutándose en tu máquina (Windows) antes de correr cualquiera de estos comandos.
Ilustración de la arquitectura completa
UserStories llegó a completarse
Requiere actualizaciones en la base de datos