Atualizações de objetos a serem criados para contrinuição.Aplicativo de testes do manifesto.

This commit is contained in:
2026-05-13 14:13:09 -03:00
parent 0defa669a3
commit d6a92358d3
13 changed files with 1009 additions and 0 deletions
+123
View File
@@ -0,0 +1,123 @@
# 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.