Comando documentar passa a reportar resultado explícito e gerar opena…#123
Merged
leonelsanchesdasilva merged 1 commit intoJul 13, 2026
Conversation
…pi.json (DesignLiquido#114) O comando 'liquido documentar' imprimia apenas o banner e terminava em silêncio: o documento OpenAPI era montado em memória pelo AutoDocumentador e descartado pela camada de CLI, sem gerar arquivo e sem qualquer mensagem de resultado. Mudanças: - interface-linha-comando/documentar: o comando agora sempre termina com um desfecho explícito no console: * quando há rotas, grava a especificação em openapi.json na raiz do projeto (ou em caminho customizado via parâmetro) e reporta o número de rotas documentadas e o caminho do arquivo gerado; * quando não há rotas, informa o diretório varrido (rotas/rest, com padrão *.delegua) e que nenhum arquivo foi gerado; * avisos de análise acumulados são exibidos com prefixo 'Aviso:'. - infraestrutura/auto-documentacao: o reset de 'erros' saiu de lerControlador (onde apagava, a cada arquivo, os erros de análise registrados por obterEstruturasDeAltoNivelDeControlador e os erros de arquivos anteriores) e passou para o início de documentar(), permitindo acumular e reportar todos os avisos de uma execução. - Testes de regressão (documentar.test.ts) cobrindo os três desfechos: nenhum arquivo de rota encontrado (mensagem explícita, sem arquivo gerado), geração com contagem/caminho reportados e avisos visíveis, e caminho de saída customizado. Observação de escopo: os métodos HTTP de cada rota ainda saem vazios na especificação porque o avaliador sintático não conhece o global 'liquido' ('Variável não definida'), afetando inclusive o fixture do próprio repositório. Essa é a causa-raiz do achado M3 (OpenAPI vazio) e fica para correção própria; com esta mudança, o aviso correspondente ao menos se torna visível ao usuário. Fixes DesignLiquido#114
Coverage report
Test suite run success237 tests passing in 24 suites. Report generated by 🧪jest coverage report action from 2302de3 |
leonelsanchesdasilva
merged commit Jul 13, 2026
2aa0257
into
DesignLiquido:principal
3 checks passed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Comando
documentarpassa a reportar resultado explícito e geraropenapi.jsonFixes #114
Problema
npx liquido documentarimprimia o banner e terminava em silêncio absoluto. Na prática, o comando não fazia nada observável: o documento OpenAPI era montado em memória peloAutoDocumentadore descartado pela camada de CLI (havia até um// TODO: Terminar após finalizar auto-documentador.no wrapper) — nenhum arquivo gravado, nenhuma mensagem de resultado, nenhum erro.Solução
O comando agora sempre termina com um desfecho explícito, cobrindo a sugestão da issue ("reportar ação realizada — arquivo gerado, caminho — ou motivo de não ter feito nada"):
Quando há rotas — grava a especificação em
openapi.jsonna raiz do projeto e reporta:Quando não há rotas — informa exatamente onde procurou e por que nada foi gerado:
Avisos de análise — erros acumulados pelo
AutoDocumentadoragora são exibidos com prefixoAviso:(em amarelo, via chalk já usado no projeto), em vez de morrerem silenciosamente no array interno.A função
documentar()também aceita um caminho de saída opcional, o que facilita testes e usos programáticos.Correção acessória necessária (
AutoDocumentador)O reset
this.erros = []ficava dentro delerControlador, executado por arquivo — apagando tanto os erros de análise registrados porobterEstruturasDeAltoNivelDeControlador(que roda antes dele) quanto os erros de arquivos anteriores. Na prática, os avisos nunca sobreviviam para serem reportados. O reset foi movido para o início dedocumentar(), acumulando todos os avisos de uma execução. Os testes existentes doAutoDocumentadorseguem passando sem alteração (cada teste instancia um objeto novo).Testes
Novo
testes/interface-linha-comando/documentar.test.tscom 3 casos:openapi.jsoncriado;openapi.jsonválido gravado (openapi: 3.0.0, path presente), contagem e caminho reportados, e avisos de análise visíveis;Observação de escopo (relaciona-se ao achado M3)
Os métodos HTTP de cada rota ainda saem vazios na especificação: o avaliador sintático não conhece o global
liquidoe registraVariável não definida: 'liquido'para todo arquivo de rota — inclusive para o fixture do próprio repositório (testes/exemplos/rotas/inicial.delegua; o teste existente só verificaArray.isArray, então passa mesmo com a análise falhando). Essa é a causa-raiz do achado M3 (OpenAPI gerado vazio) e merece correção própria — provavelmente pré-registrandoliquidono escopo do avaliador. Com este PR, o aviso correspondente ao menos se torna visível ao usuário, em vez de ser engolido.Checklist