Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Dúvida sobre teste

Tudo bom, Uma dúvida que me surgiu hoje, no teste automatizado com Testing Library e Jest é possível selecionar um elemento com base em um array que as funções **AllBy** (como a findAllByTestId) retornam?

Ex.

// quase certeza que esse teste vai falhar, é apenas um exemplo
const array = await screen.findAllByTestId("element-id")

const element = await array.findByText("text")

expect(element).toBeInTheDocument()
expect(element).toHaveStyle({ display: "none" })
2 respostas
solução!

Olá Rafael, tudo bem?

Sim, é possível selecionar um elemento com base em um array que as funções AllBy retornam. No exemplo que você deu, você pode selecionar o elemento desejado usando a função find em vez de findByText, já que findByText só funciona em um único elemento.

Aqui está um exemplo de como você pode selecionar um elemento com base em um array:

const elements = await screen.findAllByTestId("element-id")

const element = elements.find((el) => el.textContent === "text")

expect(element).toBeInTheDocument()
expect(element).toHaveStyle({ display: "none" })

Neste exemplo, a função find é usada para encontrar o elemento que contém o texto desejado. Em seguida, você pode fazer asserções no elemento selecionado.

Espero ter ajudado e bons estudos!

Obrigado Neilton pelo retorno. Entendi seu exemplo.

Att.