historia · contexto
Historia
Día 28
🔗 Clímax encadenado — día 3 de 5. Hoy usas como entrada el objeto que devolviste ayer en
abrirPortal:{ estado: 'ABIERTO', accesoId: 'GAMMA-9F' }. Si no resolviste el día 27, te faltan dos pasos hacia atrás.
En el último changelog del repo, Lía dejó una línea que el revisor de la Corporación marcó como ruido y nunca eliminó:
+ each GAMMA access pairs with its own ECO channel (suffix = access suffix)
Significa: cualquier acceso de nivel GAMMA tiene asignado un canal de comunicaciones llamado CANAL-ECO-<sufijo>, donde <sufijo> es el mismo que el del accesoId. Si tu portal está abierto y el accesoId es GAMMA-9F, el canal disponible es CANAL-ECO-9F.
Activarlo abre la puerta a lo que Lía dejó dentro.
objetivo · spec
Tu misión
Tu misión
Implementa activarCanal(portal) que recibe el objeto que devolvió abrirPortal ayer:
{ estado: 'ABIERTO' | 'CERRADO', accesoId: string | null }
Reglas
- El canal se activa solo si todas estas condiciones se cumplen:
portal.estado === 'ABIERTO',portal.accesoIdes un string,portal.accesoIdempieza con el prefijo"GAMMA-".
- Si se cumplen, extrae lo que va después de
"GAMMA-"(el sufijo) y devuelve"CANAL-ECO-" + sufijo. - Si no se cumplen, devuelve
''(string vacío).
Ejemplos
activarCanal({ estado: 'ABIERTO', accesoId: 'GAMMA-9F' })
// → 'CANAL-ECO-9F' ← este es el canal que recibirás mañana
activarCanal({ estado: 'CERRADO', accesoId: null })
// → '' ← portal cerrado, sin canal
activarCanal({ estado: 'ABIERTO', accesoId: 'DELTA-9F' })
// → '' ← acceso correcto pero nivel equivocado (DELTA != GAMMA)
validación
Casos de prueba
tests/5.casesmostrando 5 de 5
- [01]el objeto que recibió del día 27 activa el canal
- [02]portal cerrado → sin canal
- [03]prefijo de acceso incorrecto
- [04]otro sufijo válido
- [05]sufijo vacío se propaga