Cómo construir una CLI de Quiz con TypeScript: enum, tuplas y mocks

Aprende a construir una CLI de quiz en TypeScript usando enum, tipos tupla y mocks de Jest. Incluye async/await y buenas prácticas de testing.

2 jun 2026 • 2 min read • Q2BSTUDIO Team

TypeScript: enum, tuplas y mocks para tu CLI de quiz

Construir una herramienta de línea de comandos (CLI) con TypeScript no solo es un excelente ejercicio para dominar el lenguaje, sino que también refleja cómo se diseñan aplicaciones a medida en entornos profesionales. Al trabajar con el sistema de tipos, los desarrolladores pueden aprovechar características como enum para manejar identificadores con significado semántico, tuplas para fijar longitudes de arreglos en tiempo de compilación y async/await para evitar el anidamiento excesivo de callbacks. Este enfoque es clave en proyectos de software a medida, donde la claridad y la mantenibilidad son prioritarias.

En un CLI de quiz, por ejemplo, usar un enum para representar las opciones de respuesta (OptionId.One, OptionId.Two) mejora la legibilidad frente a números planos. Las tuplas ([option, option]) garantizan que cada pregunta tenga exactamente dos alternativas, un requisito que un arreglo simple no podría asegurar. Estos patrones, combinados con una separación clara entre lógica de negocio y entrada/salida, facilitan las pruebas unitarias. Precisamente en las pruebas con Jest es donde surgen desafíos como la imposibilidad de usar jest.spyOn en módulos de Node.js (fs) debido a propiedades no configurables, obligando al uso de jest.mock() para reemplazar todo el módulo. Este conocimiento es fundamental para cualquier equipo que desarrolle servicios cloud AWS y Azure, donde la fiabilidad del testeo incide directamente en la calidad del despliegue.

La transición de callbacks anidados a funciones asíncronas con await convierte un código frágil en un flujo secuencial legible. En la práctica, esto se asemeja a cómo se manejan promesas en aplicaciones web o cuando se integran agentes IA para empresas. Por ejemplo, un asistente inteligente podría utilizar una CLI similar para gestionar preguntas y respuestas, alimentando después un sistema de inteligencia artificial que personalice la experiencia del usuario. En Q2BSTUDIO, impulsamos la IA para empresas con soluciones que parten de estos fundamentos técnicos.

Otro aspecto relevante es la gestión de datos persistentes mediante archivos JSON. Técnicas como la generación de IDs mediante reduce o la validación con some son patrones que trascienden el contexto del CLI y se aplican en plataformas de ciberseguridad o en dashboards de Power BI que requieren procesar lotes de información. De hecho, nuestros servicios de inteligencia de negocio con Power BI se apoyan en una arquitectura de backend robusta, a menudo construida con TypeScript y Node.js.

Finalmente, la experiencia de construir este tipo de proyectos refuerza la importancia de escribir pruebas que realmente verifiquen el comportamiento deseado. El error 'accidentally passing test' —cuando un test pasa por casualidad al comparar cadenas que parecen idénticas— es una advertencia para revisar las aserciones con lupa. En Q2BSTUDIO, aplicamos estos principios en cada proyecto de aplicaciones a medida, combinando técnicas modernas de testing con metodologías ágiles. Tanto si necesitas una CLI como un sistema completo de servicios cloud AWS y Azure, la base es la misma: código limpio, tipado fuerte y pruebas que no engañen.

A BREAK?

Play for a moment before you go

OUR SERVICES

How we can help you

Artificial intelligence

AI agents, chatbots, and intelligent assistants that automate tasks and serve your customers 24/7 to improve the efficiency of your business.

More info

Software Development

Web, mobile, and desktop applications, intranets, e-commerce, SaaS, and management platforms designed for your company's specific needs.

More info

Cloud services

Migration, infrastructure, managed hosting, high availability, and security on Microsoft Azure and Amazon Web Services to help your business scale without limits.

More info

Cybersecurity and pentesting

Security audits, penetration testing and protection of applications, data and infrastructure on-premise and cloud, with ethical hacking and regulatory compliance.

More info

Business Intelligence

Dashboards and data analysis with Power BI: we integrate your sources, design dashboards and KPIs and turn your data into decisions.

More info

Process automation

We automate repetitive tasks and connect your applications with n8n, Power Automate, Make, and RPA, eliminating manual work and increasing productivity.

More info

Training for Companies

We train your teams in technology with criteria: web development, databases, Git, best practices and security, automation with n8n, artificial intelligence for companies and creation of AI solutions with Azure AI Foundry.

More info

Code Auditing

We audit the code that you, your team or an AI create: we tell you what is good and what to improve, we secure it and make it ready for production, web or app.

More info

AI Image Generation

We create for you the images that your business needs with artificial intelligence: product, networks, advertising, illustration and avatars. You tell us what you want and we deliver it ready to use.

More info

AI Video Generation

We create videos with artificial intelligence for you: promotional, networking, virtual presenters, dubbing and animations. You tell us the idea and we will deliver it assembled and ready to publish.

More info

AI Conversational Avatars

We create conversational avatars with AI – digital humans with a face and voice – that serve your customers and teams with the knowledge of your company, on your website, interactive monitors, WhatsApp or Teams.

More info

Online Marketing and AI

Google Ads, Meta Ads, LinkedIn Ads and AI Engine Positioning (GEO/AEO): we attract customers and make your brand appear where they search for you, also on ChatGPT, Gemini and Perplexity.

More info

Do you have a project in mind?

Tell us your vision and we'll turn it into a software solution. Whatever the scope, we make your idea real.

Live Chat