volver al archivo
28
MAY
día 28 / 30

Activar canal

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

  1. El canal se activa solo si todas estas condiciones se cumplen:
    • portal.estado === 'ABIERTO',
    • portal.accesoId es un string,
    • portal.accesoId empieza con el prefijo "GAMMA-".
  2. Si se cumplen, extrae lo que va después de "GAMMA-" (el sufijo) y devuelve "CANAL-ECO-" + sufijo.
  3. 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
  1. [01]el objeto que recibió del día 27 activa el canal
  2. [02]portal cerrado → sin canal
  3. [03]prefijo de acceso incorrecto
  4. [04]otro sufijo válido
  5. [05]sufijo vacío se propaga