fix: perguntar o namespace antes de listar/regerar bases de teste - #141
Merged
Merged
Conversation
O comando "Gerenciar Bases de Teste" herdava o namespace do workspace
folder ativo (currentWorkspaceFolder), então a rota
GET /namespaces/:ns/unitTests/bases rodava no namespace do arquivo que
estivesse aberto. Num namespace de fontes sem ^%CSW1BASE o backend
devolve 200 {"bases":[]}, e a extensão mostrava "Nenhuma base de teste
montada nesta instalação" — indistinguível de "não há bases".
Agora o namespace é escolhido explicitamente via getWsFolder, o mesmo
helper usado pelo comando de criar item, e vale para listar, regerar e
para o polling da situação da geração. A mensagem de lista vazia nomeia
o namespace consultado e oferece trocar de namespace; o namespace também
aparece no título do progresso e do QuickPick.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
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.
Problema
GET /namespaces/:nsReq/unitTests/basesroda dentro do namespace que a extensão manda na URL, e o comando Gerenciar Bases de Teste mandava o namespace do workspace folder ativo (currentWorkspaceFolder()). Com um arquivo deprojetos/DESENVaberto, a consulta ia paraDESENV, onde^%CSW1BASEnão existe:$d(^%CSW1BASE)ListarBasesComTesteO backend devolve
200 {"bases":[]}nesse caso, e a extensão mostrava "Nenhuma base de teste montada nesta instalação" — indistinguível de "não há bases montadas". Ao executar os testes o namespace vinha da classe de teste (projetos/8.0→DESENV80) e a lista aparecia, o que dava a impressão de cache ou de estado criado pela execução. Não é: é namespace diferente na requisição.Mudança
Em
gerenciarBasesTeste(src/commands/unitTest.ts):currentWorkspaceFolder()deu lugar agetWsFolder(..., active = true), o mesmo helper que o comando de criar item usa. Com mais de um folder conectado abre o QuickPick; com um só, resolve direto.nsConsultaé usado emlistarBasesTeste,regerarBaseTestee no polling desituacaoGeracaoBase. Antes oapi.nsvinha de umAtelierAPIconstruído sobre uma uri que podia serundefined.Consultando bases de teste em DESENV80…) e do QuickPick (Bases de teste montadas · consultado em DESENV80).Fora do escopo
Os silenciamentos são server-side, em
VSCodeTesteUnitarioBase.cls/VSCodeTesteUnitarioCatalogo.cls(repositório sourcecontrol20), e continuam valendo:^%CSW1BASEinacessível no namespace da requisição →$ordernão itera e o método devolve$$$OKcom tabela vazia.if $$$ISERR(sc) continuenoValidarBase→ base com dados inconsistentes some da lista sem mensagem.if (qtdClasses = 0) continue→ base cujas classes UT estão todas comuseMockdesaparece do menu, mesmo montada.O ajuste natural lá seria o endpoint devolver
gerenciamentoDisponivel: falsequando o global não existe no namespace, mais uma lista deavisospara as bases descartadas — com isso a extensão troca a mensagem genérica por "o namespace X não gerencia bases de teste".Testes
npx tsc --noEmit,npx eslint src/commands/unitTest.tsenpx prettier --check src/commands/unitTest.tspassam. Sem cobertura automatizada para este comando; validação manual pendente num workspace multi-root (DESENV + 8.0).🤖 Generated with Claude Code