1
resposta

expect(input).toBeInTheDocument(); está com erro

O teste fala nessa expect.

 expect(received).toBeInTheDocument()

    received value must be an HTMLElement or an SVGElement.
    Received has type:  object
    Received has value: {}

Essenciamente, ele recebeu um objeto vazio em vez de componente. Meu componente estar assim:

 <form>
            <input type="text" placeholder="Insira os nomes dos participantes" />
            <button disabled>Adicionar</button>
        </form>

E meu arquivo de teste, assim:

test("Quando input está vazio novos participantes não podem ser adicionados.", () => {
    render(<Formulario />)
    //eNCONTRAR NO DOM
    const input = screen.findByPlaceholderText("Insira os nomes dos participantes");
    // Encontrar o botao
    const botao = screen.findByRole("button");
    // Garante input no documento
    expect(input).toBeInTheDocument();
    // Garanto botao habilitado
    expect(botao).toBeDisabled();
});
1 resposta

Salve, Josias.

Experimenta mudar o método que encontra os elementos na tela (o get ao invés do find):

    // encontrar no DOM o input
    const input = screen.getByPlaceholderText('Insira os nomes dos participantes')

    // encontrar o botão
    const botao = screen.getByRole('button')

Nessa atividade eu explico várias forma de encontrar elementos e as diferenças entre elas.