Skip to content

El endpoint de ranking devuelve 500 en un entorno limpio #84

Description

@leocagli

El CI que entró con el #31 y el #81 destapó esto. src/tests/platform.integration.test.ts falla en la línea 27:

AssertionError: Expected values to be strictly equal:
200 !== 200

- Expected
+ Received

- 200
+ 500

 ❯ src/tests/platform.integration.test.ts:27:12
     26|     assert.equal(ranking.status, 200);

El test se llama public endpoints health runtime-config ranking and wiki respond, y verifica que los endpoints públicos respondan. health y runtime-config pasan; ranking devuelve 500.

Qué se sabe y qué no

Lo que está confirmado: sobre una base recién creada con schema.sql, contra el server levantado por el CI, GET de ranking responde 500 y no 200.

Lo que no está determinado es la causa. Vale la pena descartar explícitamente una hipótesis: el mismo run muestra errores de clan_members al aplicar el schema, pero esa tabla termina creándose, en la línea 147 de schema.sql, así que no alcanza con culpar a eso. Hay que mirar el log del servidor, no suponer.

Qué hay que hacer

  • Reproducir localmente: base limpia, schema.sql aplicado, server levantado, pegarle al endpoint de ranking.
  • Capturar el stack trace real del 500 del lado del servidor. Un 500 sin traza en el log es, en sí mismo, un problema a arreglar.
  • Arreglar la causa.
  • Que el endpoint no devuelva 500 ante una base vacía: si no hay datos para rankear, la respuesta correcta es 200 con una lista vacía.

Criterios de aceptación

  • src/tests/platform.integration.test.ts pasa sus 5 tests.
  • El endpoint de ranking responde 200 con lista vacía sobre una base sin personajes.
  • El endpoint responde 200 con datos coherentes sobre una base con personajes, cubierto por un test nuevo.
  • Cualquier 500 que quede en ese handler escribe el error completo en el log del servidor, con stack.
  • El PR explica cuál era la causa raíz. No alcanza con que el test pase.

Evidencia que suma

  • El stack trace original del 500, pegado como bloque de código, antes del arreglo.
  • Salida de los tests después, con los 5 en verde.

Fuera de alcance

  • El orden de schema.sql y el npcs.json faltante. Están en issues aparte.
  • Optimizar la consulta de ranking. Primero que responda.

Por dónde empezar

src/tests/platform.integration.test.ts línea 26 te dice qué se está llamando. De ahí al handler del endpoint. El log del job API del CI tiene la corrida completa si querés ver el entorno exacto donde falla.

Estimación

Entre 3 y 6 horas. Nivel intermedio: la parte lenta es reproducir el entorno limpio, no escribir el arreglo.

Metadata

Metadata

Assignees

No one assigned

    Labels

    GrantFox OSSIssue tracked in GrantFox OSSMaybe RewardedIssue may be eligible for a GrantFox rewardThird CampaignCampaign: Third CampaignbugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions