124 lines
3.1 KiB
Markdown
124 lines
3.1 KiB
Markdown
# 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.
|