historia · contexto
Historia
Día 27
🔗 Clímax encadenado — día 2 de 5. Hoy usas como entrada el código que devolviste ayer en
derivarCodigoRaiz:'HESPERIDES-9F'. Si no resolviste el día 26, ese valor te parecerá sacado de la nada — vuelve y haz el 26 primero.
El código HESPERIDES-9F que derivaste ayer no es una contraseña. Es una cerradura. El sistema del Instituto Marén —el dueño real de la Hespérides, recuerda el día 22— tiene tres niveles de acceso interno:
- ALPHA: lectura básica.
- BETA: lectura ampliada.
- GAMMA: administrativo.
Cualquier credencial con el formato HESPERIDES-<sufijo> te concede nivel GAMMA. El sistema te devuelve un accesoId que combina el nivel y el sufijo de tu código: GAMMA-9F.
objetivo · spec
Tu misión
Tu misión
Implementa abrirPortal(codigo) que recibe un codigo de acceso (string) y devuelve un objeto con dos campos:
{ estado: 'ABIERTO' | 'CERRADO', accesoId: string | null }
Reglas
- El código es válido si:
- contiene exactamente un guion (
-), - el prefijo (lo que va antes del guion) es literalmente
"HESPERIDES", - el sufijo (lo que va después) no está vacío.
- contiene exactamente un guion (
- Si es válido, devuelve
{ estado: 'ABIERTO', accesoId: 'GAMMA-' + sufijo }. - Si no es válido, devuelve
{ estado: 'CERRADO', accesoId: null }.
Ejemplos
abrirPortal('HESPERIDES-9F')
// → { estado: 'ABIERTO', accesoId: 'GAMMA-9F' }
// El código que derivaste ayer.
abrirPortal('OTRO-9F')
// → { estado: 'CERRADO', accesoId: null }
// Prefijo distinto.
abrirPortal('HESPERIDES')
// → { estado: 'CERRADO', accesoId: null }
// Sin guion.
abrirPortal('HESPERIDES-9-F')
// → { estado: 'CERRADO', accesoId: null }
// Dos guiones.
validación
Casos de prueba
tests/6.casesmostrando 5 de 6
- [01]el código del día 26 abre el portal
- [02]prefijo incorrecto
- [03]sin guion
- [04]sufijo vacío
- [05]dos guiones
- … y 1 caso más, ocultos hasta enviar.