Skip to content

REC-197: Implementa entorno de testing (sólo a modo informativo)#122

Open
ma7payne wants to merge 1 commit intomasterfrom
REC-197
Open

REC-197: Implementa entorno de testing (sólo a modo informativo)#122
ma7payne wants to merge 1 commit intomasterfrom
REC-197

Conversation

@ma7payne
Copy link
Copy Markdown

@ma7payne ma7payne commented Mar 3, 2026

Requerimiento

https://proyectos.andes.gob.ar/browse/REC-197

Funcionalidad desarrollada

  1. Preparación del entorno (pre-test): antes de ejecutar los tests de Angular/Jest, se ejecutan automáticamente dos scripts ubicados en test/scripts/ para preparar los datos reales en la API local (localhost:4000):
  2. Creación de pruebas (test): una vez preparado el entorno, Jest comienza a ejecutar los archivos .test.ts ubicados en la raíz de test/:
    • patients.service.test.ts: Envía una petición real a la API mediante el PatientsService de Angular para crear este paciente. Verifica que la API haya respondido correctamente.
    • Lee el token del profesional. Lee el archivo test-patient-data.json para saber qué paciente se creó en el paso anterior. Arranca una versión virtual del componente de la UI (ProfessionalFormComponent). Simula las acciones de un usuario real:
      1. Escribe el DNI del paciente creado y simula el evento para que el componente "encuentre" al paciente en la API.
      2. Escribe "Paracetamol" en el buscador de medicamentos, forzando al componente a buscar en la API el medicamento que sembramos en la fase pre-test.
      3. Rellena los datos de la receta (ej. diagnóstico "Gripe", cada 8 horas, por 5 días).
      4. Hace clic (virtualmente) en el botón de "Guardar".
    • Espera a que la petición llegue a la API y verifica que la receta se haya creado exitosamente en la base de datos de tu backend.

Warning

El archivo testing-guide.md contiene 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 correr los tests en este proyecto de forma exitosa, sigue estas instrucciones:

Requisitos Previos (Esenciales)
Antes de correr cualquier test, debes asegurarte de que tu entorno local esté funcionando, ya que los tests se ejecutan contra la API real:

  1. Levantar la API: asegúrate de tener tu servidor de MongoDB corriendo localmente (por ejemplo, en el puerto 27017).

  2. Levantar recetar-api: tu backend debe estar ejecutándose de forma normal en http://localhost:4000. Si no está corriendo, los tests van a fallar con errores de conexión.

    • Ve a la carpeta de tu API (cd recetar-api) y córrela con npm start o npm run dev.

Cómo Ejecutar Todos los Tests
Dado que automatizamos todo el proceso en el archivo package.json, la manera más sencilla de correr toda la suite de pruebas es ejecutar un solo comando en la terminal desde la raíz del proyecto recetar-app: npm run test

Cómo Ejecutar un Test Específico
Si estás trabajando en un solo archivo y no quieres correr toda la suite (por ejemplo, si solo quieres correr el test del formulario), puedes apuntar directamente al archivo usando Jest (que se ejecuta a traves de npx).

Sin embargo, dado que los tests dependen de los tokens, si tu sesión expiró, primero debes correr el script de autenticación a mano:

  1. Actualizar la sesión y datos (solo si es necesario): npm run pretest
  2. Correr el archivo específico: npx jest test/professional-form.component.test.ts (o cualquier otra ruta hacia un archivo .test.ts específica).

Ilustración de la arquitectura completa

Gemini_Generated_Image_let4e7let4e7let4

UserStory llegó a completarse

  • Si
  • No
  • No corresponde

Requiere actualizaciones en la base de datos

  • Si
  • No

Requiere actualizaciones en la API

@ma7payne ma7payne changed the title REC-197: Implementa entorno de testing REC-197: Implementa entorno de testing (sólo a modo informativo) Mar 18, 2026
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