Skip to content

Stack JS/TS não tem detecção de suíte vazia, e vai a RED onde os READMEs prometem YELLOW #24

Description

@CRangelP

Achado da revisão do lote 3 (milestone 3), fora do escopo daquelas issues: é defeito preexistente em scripts/gate.sh, não veio das mudanças da branch fix/rodada-2-lote-3.

Problema

Go, Rust, .NET e Python têm cap de "suíte vazia" no gate: quando não há arquivo de teste, o gate conta só o typecheck e sai 0 com o teto YELLOW, em vez de tratar a ausência de testes como vermelho. O ramo JS/TS não tem nada disso — ele só pergunta ao package.json se o script existe e o executa.

Consequência: um repo JS com {"scripts":{"test":"vitest run"}} e zero arquivo de teste faz o vitest sair 1 com No test files found, o run() imprime RED e o gate sai 1. E a regra nova introduzida pela #22 lê exit 1 como baseline quebrado, ou seja, RED com diagnóstico e nenhum commit.

Só que README.en.md e README.md prometem exatamente o contrário para esse caso — YELLOW, "nenhum arquivo de teste no stack" — e a lista de stacks com cap enumera Go, .NET, Rust e pytest, sem JS.

Por que ficou pior agora

Os apelidos de script (#23) alargam o casamento: antes só um script chamado test disparava isso; agora test:integration (ou qualquer test:* sozinho) também dispara. Mais projetos caem no caminho errado.

Etapas

  • Decidir a forma da detecção no JS: o gate não tem como saber o glob de teste do runner (vitest, jest, node:test, ava têm padrões diferentes), então provavelmente é por reconhecimento da saída do runner, como já é feito em outro stack — conferir como o cap existente foi implementado e se dá para reusar.
  • Alinhar com a linha no_tests / no_tests_rc que os outros stacks já usam, sem setar incomplete (o comentário no gate.sh explica por quê).
  • Casos no gate_test.sh com um runner stub que sai 1 com a mensagem de suíte vazia, cobrindo test e um test:* sozinho.
  • Conferir se a lista de stacks com cap nos dois READMEs precisa passar a citar JS.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions