🤖 Pruebas Automatizadas

CI / Tests

Estado de los workflows de GitHub Actions, suites de pruebas automatizadas, y cobertura por fase. Actualizado manualmente después de cada ciclo de CI.

29
Tests pasando
0
Tests fallando
0
Pendientes
2
Workflows activos
P1
Fase cubierta
💡
Esta página se actualiza manualmente al final de cada ciclo de desarrollo. Los badges de estado reflejan el último run conocido de cada workflow. Para el estado en tiempo real, ver los GitHub Actions de cada repositorio.
Workflows
GitHub Actions — ejecutan en cada push a main
📱
P1 Component Tests
finpal-mobile / .github/workflows/test-p1.yml
Passing
Triggers
push → main pull_request → main
Node
20.x
Último resultado
✓ 22/22 passed
Última ejecución
2026-03-26
🔌
P1 API Integration Tests
finpal-pocket-planner-55 / .github/workflows/test-p1-api.yml
Passing
Triggers
push → main pull_request → main workflow_dispatch
Servicios
Postgres 15
Último resultado
✓ 7/7 passed
Última ejecución
2026-03-26

Suites — P1 Foundation
Auth + Dashboard · 29 tests · 100% passing
Pass Test pasando en CI
Fail Test fallando
Pendiente Sin automatizar aún
API Integración contra backend real
Unit Componente / lógica aislada
API apps/backend/__tests__/p1-api.test.ts 7 tests 7 / 7 ✓
TC Nombre del test Tipo Cubre Duración Estado
TC-P1-01 POST /api/auth/register → 201 + tokens API US-AUTH-01 ~394ms Pass
TC-P1-02 POST /api/auth/register email duplicado → 4xx API US-AUTH-01 ~77ms Pass
TC-P1-03 POST /api/auth/register contraseña débil → 400 API US-AUTH-01 ~7ms Pass
TC-P1-04 POST /api/auth/login exitoso → 200 + tokens API US-AUTH-02 ~371ms Pass
TC-P1-07 POST /api/auth/login rate limit → 429 API US-AUTH-02 ~24ms Pass
TC-P1-08 POST /api/auth/logout → 200, token revocado API US-AUTH-05 ~11ms Pass
TC-P1-12 POST /api/auth/forgot-password → 200 API US-AUTH-04 ~177ms Pass
Unit finpal-mobile/__tests__/p1-components.test.tsx 22 tests 22 / 22 ✓
TC Nombre del test Tipo Componente Duración Estado
TC-P1-06 acepta email válido Unit Email Validation Pass
rechaza email sin @ Unit Email Validation Pass
rechaza email sin dominio Unit Email Validation Pass
rechaza string vacío Unit Email Validation Pass
acepta subdominios Unit Email Validation Pass
TC-P1-09 renderiza monto formateado Unit StatsCard Pass
muestra barra de progreso Unit StatsCard Pass
aplica color según over-budget Unit StatsCard Pass
muestra etiqueta de categoría Unit StatsCard Pass
cap barra en 100% cuando excede Unit StatsCard Pass
TC-P1-10 renderiza mes actual Unit PeriodNavigator Pass
llama onPrev al presionar ‹ Unit PeriodNavigator Pass
llama onNext al presionar › Unit PeriodNavigator Pass
oculta botón Hoy en mes actual Unit PeriodNavigator Pass
muestra botón Hoy en mes pasado Unit PeriodNavigator Pass
llama onToday al presionar Hoy Unit PeriodNavigator Pass
TC-P1-11 renderiza mascota Penny Unit EmptyState Pass
muestra título Unit EmptyState Pass
muestra subtítulo Unit EmptyState Pass
renderiza botón CTA si se provee Unit EmptyState Pass
omite botón CTA si no se provee Unit EmptyState Pass
dispara onAction al presionar CTA Unit EmptyState Pass

Notas de configuración CI
Issues resueltos durante el setup inicial
Problema Causa raíz Estado
@prisma/client not initialized Faltaba prisma generate en el step de setup del CI Resuelto
Google/Penny OAuth error Backend lanza en startup si faltan env vars de OAuth. Se agregan valores dummy al .env del CI Resuelto
Health check en /api/health El endpoint real es /health (sin prefijo /api). El wait-loop nunca detectaba el backend listo Resuelto
jest.config.js ESM error package.json tiene "type":"module". Renombrar a jest.config.cjs resuelve el conflicto Resuelto
--testPathPattern → error Jest 30 renombró el flag a --testPathPatterns (plural). Breaking change Resuelto
TC-P1-02 espera 409 Backend retorna 400 intencionalmente para evitar user enumeration. Test ajustado a esperar ≥ 400 Ajustado
React 19 / act() compat babel-preset-expo forzaba NODE_ENV=production rompiendo react-test-renderer. Fix: jest.setup.pre.js con setupFiles Resuelto