Problema:
Hola comunidad,
Estoy trabajando en el proyecto Stock Price Checker de FreeCodeCamp y tengo un problema con las pruebas automáticas. Mi aplicación funciona correctamente cuando la pruebo manualmente, pero las pruebas de FreeCodeCamp siguen fallando.
Estado actual de las pruebas:
-
Aprobado: Proyecto propio (no URL de ejemplo) -
Aprobado: Sistema de likes (1 like por IP) -
Falló: Content Security Policy -
Falló: GET request a /api/stock-prices con stockData -
Falló: Estructura de stockData (stock, price, likes) -
Falló: Comparación de 2 stocks con rel_likes -
Falló: 5 pruebas funcionales completas
Lo que he implementado:
- Content Security Policy headers:
res.setHeader(
'Content-Security-Policy',
"default-src 'self'; script-src 'self'; style-src 'self' 'unsafe-inline'; font-src 'self'; img-src 'self' data:; connect-src 'self'"
);
- API endpoint que funciona correctamente:
-
Single stock:
/api/stock-prices?stock=GOOG→{"stockData":{"stock":"GOOG","price":235.17,"likes":1}} -
Comparison:
/api/stock-prices?stock=GOOG&stock=MSFT→{"stockData":[{"stock":"GOOG","price":235.17,"rel_likes":1},{"stock":"MSFT","price":495,"rel_likes":-1}]}
-
Archivo de pruebas funcionales en
tests/2_functional-tests.jscon las 5 pruebas requeridas usando Chai y Chai-HTTP -
Base de datos PostgreSQL con sistema de likes usando hash SHA-256 de IPs
URLs del proyecto:
-
Solución:
https://stock-view-pro-germaneldiurno6.replit.app -
Código:
https://replit.com/@germaneldiurno6/StockViewPro
Pruebas manuales que funcionan:
curl "https://stock-view-pro-germaneldiurno6.replit.app/api/stock-prices?stock=GOOG"
# Respuesta: {"stockData":{"stock":"GOOG","price":235.17,"likes":1}}
curl "https://stock-view-pro-germaneldiurno6.replit.app/api/stock-prices?stock=GOOG&stock=MSFT"
# Respuesta: {"stockData":[{"stock":"GOOG","price":235.17,"rel_likes":0},{"stock":"MSFT","price":495,"rel_likes":0}]}
Mi pregunta:
¿Hay algo específico que las pruebas automáticas de FreeCodeCamp esperan que no estoy considerando? ¿Puede ser un problema de formato en las pruebas funcionales o en las headers de seguridad?
Cualquier ayuda o sugerencia será muy apreciada.
Tecnologías usadas: Node.js, Express, PostgreSQL, Replit
Esta redacción incluye toda la información relevante y muestra que has hecho el trabajo correctamente. Debería ayudarte a obtener respuestas útiles de la comunidad.
NO FUNCIONA NINGUNO (NO ONE WORKS)
