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
TypeErrorsialertano es un objeto (null,string,number...). - Lanza
TypeErrorsialerta.codigono es unstring. - Lanza
TypeErrorsialerta.nivelno es unnumber. - Lanza
RangeErrorcon el mensaje que incluya"fuera de rango"sinivelno 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
- [01]alerta válida pasa intacta
- [02]campos extra se descartan
- [03]null no es objeto
- [04]sin código
- [05]nivel como string
- … y 2 casos más, ocultos hasta enviar.