O fixture botai
Primeiro teste
Importe test e expect do pacote, no lugar do @playwright/test, e peça o fixture botai:
import { test, expect } from '@pilutech/botai-playwright'
test('cadastro', async ({ page, botai }) => {
await page.goto('/cadastro')
const r = await botai.preencher(page)
expect(r.naoReconhecidos).toEqual([])
})
Já tem um test com fixtures do projeto? Junte os dois: veja compor fixtures.
Os 4 membros
O fixture botai tem exatamente quatro membros:
| Membro | O que é |
|---|---|
botai.pessoa | a pessoa completa, para usar nas asserções |
botai.semente | a semente usada no teste |
botai.hoje | o dia usado no teste, em AAAA-MM-DD |
botai.preencher(alvo) | preenche uma Page ou um Locator (veja preencher) |
A pessoa nas asserções
Compare com botai.pessoa, e não com um valor fixo:
test('e-mail', async ({ page, botai }) => {
await page.goto('/cadastro')
await botai.preencher(page)
await expect(page.getByLabel('E-mail', { exact: true })).toHaveValue(
botai.pessoa.email.endereco,
)
})
Os campos mais usados: botai.pessoa.cpf, botai.pessoa.nome.completo, botai.pessoa.email.endereco e botai.pessoa.endereco.cep. Todos os campos e formatos estão em a pessoa.
A semente padrão
Sem opção nenhuma, a semente é o nome do projeto, o arquivo, os describe e o título do teste, separados por ›:
projeto › arquivo › describe › título
O teste cadastro do arquivo cadastro.spec.ts, no projeto chromium, recebe a semente chromium › cadastro.spec.ts › cadastro. A semente é legível: ela serve direto de argumento para a CLI, como mostra reproduzir uma falha.
O que isso quer dizer na prática:
- Retries e workers não mudam a pessoa. A nova tentativa preenche com a mesma.
- Cada navegador recebe uma pessoa diferente, porque o projeto entra na semente. Para ter a mesma em todos, fixe
botaiSemente(veja opções). - Renomear o teste troca a pessoa.
O dia
Sem botaiHoje, o fixture usa a data de hoje em São Paulo. A mesma semente gera outra pessoa no dia seguinte: reproduzir exige a semente, o hoje e a versão. As regras completas estão em semente e hoje.
Um teste que compara com um CPF escrito à mão quebra no dia seguinte. Compare com botai.pessoa, ou fixe botaiHoje e botaiSemente.
No relatório
Todo teste que pede o fixture botai ganha as anotações botai-semente e botai-hoje. Na falha inesperada, ganha também o anexo botai-pessoa.json. Veja reproduzir uma falha.