El CI que entró con el #31 y el #81 destapó esto. src/tests/market.integration.test.ts falla así:
Error: ENOENT: no such file or directory, open
'/home/runner/work/OpenAO/OpenAO/api/src/jsons/npcs.json'
El problema
api/src/jsons/ contiene cuatro archivos:
balance.json
craftingRecipes.json
smeltingRecipes.json
spells.json
npcs.json no está. Y no está ignorado: no hay ninguna regla de .gitignore que lo excluya, ni en la raíz ni en api/. Simplemente nunca se commiteó.
Por qué importa
Esto no es un problema del CI. Cualquiera que clone el repo y corra pnpm test en api tiene el mismo fallo. El test que se rompe es market limpieza masiva cancela items vendidos por NPCs y reintegra comisión, o sea la limpieza de la casa de subastas, que necesita saber qué NPCs existen.
Hay un segundo efecto: el script build de api hace cp src/jsons/*.json dist/jsons/. Eso no falla porque el glob simplemente copia lo que hay, así que el build sale verde y el dist queda incompleto sin avisar.
Qué hay que hacer
Primero averiguar cuál de estas dos es la situación, porque el arreglo cambia:
- El archivo existe en el entorno de alguien y nunca se subió. Entonces hay que commitearlo, revisando antes que no traiga datos que no deban estar en un repo público.
- El archivo se genera. Entonces hay que documentar cómo, agregar el paso al build y al CI, y committear un fixture mínimo para que los tests corran sin ese paso.
Criterios de aceptación
Evidencia que suma
Fuera de alcance
- Arreglar las otras fallas de la suite. Están en issues aparte.
- Rediseñar cómo se cargan los datos del juego.
Por dónde empezar
api/src/jsons/ y el build de api/package.json. Mirá primero cómo market.integration.test.ts consume el archivo, para saber qué forma mínima necesita el fixture si hay que crearlo.
Estimación
Entre 2 y 5 horas, según cuál de los dos casos sea. Nivel inicial.
El CI que entró con el #31 y el #81 destapó esto.
src/tests/market.integration.test.tsfalla así:El problema
api/src/jsons/contiene cuatro archivos:balance.jsoncraftingRecipes.jsonsmeltingRecipes.jsonspells.jsonnpcs.jsonno está. Y no está ignorado: no hay ninguna regla de.gitignoreque lo excluya, ni en la raíz ni enapi/. Simplemente nunca se commiteó.Por qué importa
Esto no es un problema del CI. Cualquiera que clone el repo y corra
pnpm testenapitiene el mismo fallo. El test que se rompe esmarket limpieza masiva cancela items vendidos por NPCs y reintegra comisión, o sea la limpieza de la casa de subastas, que necesita saber qué NPCs existen.Hay un segundo efecto: el script
builddeapihacecp src/jsons/*.json dist/jsons/. Eso no falla porque el glob simplemente copia lo que hay, así que el build sale verde y eldistqueda incompleto sin avisar.Qué hay que hacer
Primero averiguar cuál de estas dos es la situación, porque el arreglo cambia:
Criterios de aceptación
pnpm testenapipasa desde un clone limpio, sin ningún archivo agregado a mano.src/tests/market.integration.test.tspasa sus 6 tests.apidocumenta el comando y el CI lo ejecuta antes de los tests.buildfalla ruidosamente si falta alguno de los JSON que espera, en vez de copiar lo que encuentre y seguir.ENOENT.Evidencia que suma
pnpm testdesde un clone limpio, pegada como bloque de código, con los 67 tests.APIdel CI en verde.Fuera de alcance
Por dónde empezar
api/src/jsons/y elbuilddeapi/package.json. Mirá primero cómomarket.integration.test.tsconsume el archivo, para saber qué forma mínima necesita el fixture si hay que crearlo.Estimación
Entre 2 y 5 horas, según cuál de los dos casos sea. Nivel inicial.