# Teste local de módulos Esta tela ajuda a testar as queries dos módulos do `app-dono-modulos` sem precisar alterar o app principal. ## Como abrir Execute o app de teste e acesse a URL exibida no terminal: ```bash npm run test:app ``` Também é possível escolher uma porta: ```bash npm run test:app -- --port=4320 ``` ## Campos principais - **Módulo**: seleciona o módulo do manifesto, por exemplo `flash-de-perdas`. - **Login remoto**: URL do endpoint de login usado para gerar o bearer. - **Email/Senha**: credenciais enviadas ao endpoint de login. - **Query**: seleciona a query do módulo, por exemplo `flash_categorias`. - **Sistema**: seleciona a implementação local da query, como `C5_big`. - **Parâmetros**: mostra os parâmetros declarados na query. - **Manifesto remoto**: base usada para montar a chamada remota. - **Bearer token**: token de autenticação usado na chamada remota. - **Client ID**: valor enviado no header `x-client-id`. ## Gerar bearer Antes de executar o manifesto remoto, preencha a URL de login, o email e a senha. O botão **Gerar bearer** chama o endpoint de login com o JSON: ```json { "email": "usuario@exemplo.com", "senha": "senha" } ``` Quando o login responde com sucesso, o app usa a propriedade `token` do JSON de retorno. Como apoio, também procura em campos comuns como `access_token`, `accessToken`, `bearer`, `bearerToken` ou `jwt`. O valor encontrado é inserido automaticamente no campo **Bearer token**. ## Renderizar SQL O botão **Renderizar SQL** executa a implementação local da query e mostra o SQL final no quadro preto. Para valores usados diretamente no SQL, informe literais SQL. Exemplo: ```sql '2026-05-05' ``` Para parâmetros de contexto, como `ctx_user_companies_for_module`, use uma lista SQL: ```sql 1,2,3 ``` ## Executar manifesto O botão **Executar manifesto** chama a API remota usando os valores da tela. A URL é montada no formato do Postman: ```text {baseUrl}/api/manifest/modules/{modulo}/queries/{query}/execute ``` Com o `baseUrl` preenchido como: ```text https://app-dono.vitruvio.com.br/api ``` a chamada fica: ```text https://app-dono.vitruvio.com.br/api/api/manifest/modules/{modulo}/queries/{query}/execute ``` O quadro preto mostra somente o body retornado pela API, como no Postman. O status HTTP e a URL chamada aparecem abaixo dos botões. ## Parâmetros nulos Para enviar `null` no JSON remoto, escreva: ```text null ``` Exemplo para `flash-de-perdas` / `flash_categorias`: ```json { "data_perda": "2026-05-05", "codigo_categoria_pai": null, "cod_empresa": null } ``` Na tela, preencha: ```text data_perda = '2026-05-05' codigo_categoria_pai = null cod_empresa = null ``` ## Botões auxiliares - **Copiar**: copia o conteúdo atual do quadro preto. - **Copiar resposta**: copia o conteúdo atual do quadro preto depois de uma chamada remota. - **Rodar vet**: executa `npm run vet` para validar os módulos. - **Recarregar**: recarrega a lista de módulos e queries. ## Observação O teste local usa os arquivos atuais do projeto. A execução remota usa o manifesto publicado no ambiente remoto.