Protocolo 15: El guardián lógico

Medio
validation
objects
logic

📖Historia

🛡️ Transmisión de Zeew_15 iniciada…

El Guardián Lógico protege el acceso al Núcleo. Solo permite el paso a datos que cumplan múltiples reglas simultáneamente. Una sola violación y el acceso es denegado.

"La lógica no admite medias verdades."

Debes crear un validador complejo que evalúe si un usuario cumple todos los requisitos de acceso.

🎯Enunciado

🎯 Objetivo

Crea una función validateUser(user) que valide un objeto de usuario contra las siguientes reglas:

  1. username: string, longitud entre 3 y 20 caracteres
  2. age: número, mayor o igual a 18
  3. email: string, debe contener "@" y "."
  4. role: string, debe ser "admin", "user" o "guest"

📋 Especificaciones

  • Si todas las reglas se cumplen, retorna { valid: true, errors: [] }
  • Si hay errores, retorna { valid: false, errors: [...] } con los mensajes de error
  • Los mensajes de error deben ser:
    • "username inválido"
    • "age inválido"
    • "email inválido"
    • "role inválido"

💡 Ejemplos

validateUser({
  username: "zeew",
  age: 25,
  email: "zeew@space.com",
  role: "admin"
}); // { valid: true, errors: [] }

validateUser({
  username: "ab",
  age: 15,
  email: "invalid",
  role: "hacker"
}); // { valid: false, errors: ["username inválido", "age inválido", "email inválido", "role inválido"] }

Casos de prueba

Tu solución será validada contra 4 casos de prueba

Test 1: Usuario válido
Test 2: Todos los campos inválidos
Test 3: Usuario guest válido

... y 1 casos más

💻 Editor de código

JavaScript
Cargando editor...
Loading...