Sentados e Pelados · 4 devs, sem cadeira, sem internet, implementando validações de formulário.
Repositório template do desafio. Cada participante recebe uma cópia desta pasta e trabalha localmente, sem internet. O objetivo de cada rodada é deixar todos os testes verdinhos ✅ o mais rápido possível.
| Rodada | Pasta | Desafio | Tempo |
|---|---|---|---|
| 1 | round-1/ |
Detector de XSS e SQL Injection | 15 min |
| 2 | round-2/ |
Validador de senha forte | 15 min |
| 3 | round-3/ |
Validador de e-mail (Regex) | 15 min |
| 🏆 Final | round-final/ |
Validador de CPF completo (dígito verificador) | 30 min |
Cada pasta é autocontida e segue o mesmo padrão. Você só edita um arquivo:
validator.js.
A função validate(value) recebe o valor do campo e retorna sempre o mesmo formato:
function validate(value) {
return { valid: boolean, message: string }
}O app.js é genérico (idêntico nas 4 rodadas) e não conhece nenhuma regra de negócio: ele
só chama sua validate, pinta a borda de verde/vermelho, mostra a message e bloqueia o
envio quando valid é false. A suíte validator.test.js valida a lógica.
npm installDepois disso o desafio roda 100% offline.
Tudo em modo watch (reroda sozinho a cada Ctrl+S):
npm testSó a rodada atual:
npm run test:round1 # Rodada 1 — Segurança
npm run test:round2 # Rodada 2 — Senha
npm run test:round3 # Rodada 3 — E-mail
npm run test:final # Final — CPFAbra o index.html da rodada com duplo clique (funciona offline, sem servidor).
- Vence a rodada quem deixar todos os testes verdes primeiro.
- 1º lugar: 3 pontos + recupera a cadeira ergonômica · 2º lugar: 1 ponto.
- Só é permitido editar
validator.js. Não altere os arquivos*.test.js. - Sem internet, sem IA, sem colar de fora. Só cabeça e teclado.