volver al archivo
21
MAY
día 21 / 30

Alerta falsa

Medio
validationerrorsobjects
historia · contexto

Historia

Día 21

El sistema de alertas de la Hespérides lanzaba notificaciones a la Corporación en tiempo real. Cinco niveles, de 0 (informativo) a 5 (evacuación). Cada alerta tenía un codigo y un nivel.

Entre los registros de la Corporación aparecen doce alertas de nivel 5 recibidas. Entre los logs de la estación, ninguna.

O las alertas se inventaron en destino, o salieron desde otro sistema. Necesitas un validador estricto que rechace lo mal formado antes de correlacionar.

objetivo · spec

Tu misión

Tu misión

Implementa validarAlerta(alerta) que valida un objeto y:

  • Lanza TypeError si alerta no es un objeto (null, string, number...).
  • Lanza TypeError si alerta.codigo no es un string.
  • Lanza TypeError si alerta.nivel no es un number.
  • Lanza RangeError con el mensaje que incluya "fuera de rango" si nivel no está en [0, 5].
  • Si todo es válido, devuelve { codigo, nivel } (descarta campos extra).

Ejemplo

validarAlerta({ codigo: 'C12', nivel: 3 })
// → { codigo: 'C12', nivel: 3 }

validarAlerta(null)                          // → throws TypeError
validarAlerta({ codigo: 'x', nivel: 10 })    // → throws RangeError
validación

Casos de prueba

tests/7.casesmostrando 5 de 7
  1. [01]alerta válida pasa intacta
  2. [02]campos extra se descartan
  3. [03]null no es objeto
  4. [04]sin código
  5. [05]nivel como string
  6. … y 2 casos más, ocultos hasta enviar.