Pular para o conteúdo principal

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:

MembroO que é
botai.pessoaa pessoa completa, para usar nas asserções
botai.sementea semente usada no teste
botai.hojeo 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.

dica

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.