volver al archivo
27
MAY
día 27 / 30

Portal de acceso

Difícil
stringsparsingvalidation
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

  1. 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.
  2. Si es válido, devuelve { estado: 'ABIERTO', accesoId: 'GAMMA-' + sufijo }.
  3. 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
  1. [01]el código del día 26 abre el portal
  2. [02]prefijo incorrecto
  3. [03]sin guion
  4. [04]sufijo vacío
  5. [05]dos guiones
  6. … y 1 caso más, ocultos hasta enviar.