> ## Documentation Index
> Fetch the complete documentation index at: https://docs.aiparlance.org/llms.txt
> Use this file to discover all available pages before exploring further.

# Emitter de testes

> @aiparlance/tests — papel tests, nota 7/18, objetivos pass/partial/fail

# Emitter de testes

|                     |                                                                                                                                       |
| ------------------- | ------------------------------------------------------------------------------------------------------------------------------------- |
| Pacote              | `@aiparlance/tests`                                                                                                                   |
| CLI                 | `aip emit tests`                                                                                                                      |
| Papel               | `tests`                                                                                                                               |
| **Nota**            | **7/18** (39%)                                                                                                                        |
| Nível               | Prévia útil                                                                                                                           |
| Ficha de maturidade | [transpilers/tests/EMITTER\_OBJECTIVES.md](https://github.com/eudameron/aiparlance/blob/main/transpilers/tests/EMITTER_OBJECTIVES.md) |

Avaliado pelo checklist mestre ([55 IDs](https://github.com/eudameron/aiparlance/blob/main/EMITTER_OBJECTIVES.md), v2 · 2026-08-06).

## Resumo

| ✅ Passou | ⚠️ Parcial | ❌ Falhou | ➖ N/A |
| -------- | ---------- | -------- | ----- |
| 7        | 0          | 11       | 37    |

Itens N/A estão fora do papel `tests` e não entram no denominador da nota.

## O que produz

Fixtures de paths CRUD estilo Vitest (Pass = cobertura de fixture).

## ✅ Passou

| ID   | Objetivo                                                                        |
| ---- | ------------------------------------------------------------------------------- |
| `D1` | CRUD completo para entidades listadas em `crud` (list/create/get/update/delete) |
| `D2` | Respeitar `api.prefix`                                                          |
| `D7` | Respeitar `api.format` (ex.: JSON)                                              |
| `H2` | Fixtures ou scaffolds de testes automatizados                                   |
| `H3` | Golden / CI para `minimal.aip` (ou equivalente no alvo)                         |
| `H4` | O emit funciona nos examples full-tier correspondentes sem crash                |
| `H5` | Nomenclatura alinhada à documentação (tabelas no plural, `*_id`, snake\_case)   |

## ⚠️ Parcial

*Nenhum item parcial.*

## ❌ Ainda falhando (aplicáveis)

| ID   | Objetivo                                                                                 |
| ---- | ---------------------------------------------------------------------------------------- |
| `D3` | Respeitar `api.cors` (config ou middleware)                                              |
| `D4` | Respeitar `api.rate_limit` (config ou aplicação)                                         |
| `D5` | Paginação e/ou filter/sort em list                                                       |
| `D6` | Respostas de erro tipadas (4xx/5xx + shape estável do body)                              |
| `E1` | Esquema de autenticação a partir de `app.auth` (`jwt` / `api_key` / `session` / `oauth`) |
| `E2` | Integrar autenticação na API (requisitos de segurança ou middleware)                     |
| `E3` | Refletir `policy` create/read/update/delete                                              |
| `E4` | Predicados: `public`, `authenticated`, `role(…)`                                         |
| `E5` | Predicados: `owner` / `owner_or_manager(…)`                                              |
| `E6` | Caminhos consistentes de negação **401/403** (runtime **ou** contrato documenta ambos)   |
| `H1` | Documentação legível de API / domínio                                                    |

Ficha de maturidade completa (incluindo ➖ N/A): [transpilers/tests/EMITTER\_OBJECTIVES.md](https://github.com/eudameron/aiparlance/blob/main/transpilers/tests/EMITTER_OBJECTIVES.md).

## Testes

Vitest do pacote para formato da saída.

```bash theme={null}
npm test
node packages/cli/dist/cli.js emit tests examples/blog-crud.aip
```

## Relacionado

* [Visão geral dos emitters](/pt/emitters)
* [EMITTER\_OBJECTIVES mestre](https://github.com/eudameron/aiparlance/blob/main/EMITTER_OBJECTIVES.md)
* [Primeiros emitters](/pt/first-transpiler)
* [Comece aqui](/pt/getting-started)
