Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

186
Views
TypeError: no se pueden leer las propiedades de undefined (leyendo 'clic'). fireEvent.click funciona pero userEvent.click no. ¿Por qué?

Acabo de empezar a aprender a probar React con Jest y estoy luchando con algo simple. Cuando llamo a userEvent.click(btn), la prueba falla diciendo que userEvent.click() no está definido.

 import { render, fireEvent, screen } from "@testing-library/react"; import { userEvent } from "@testing-library/user-event"; import '@testing-library/jest-dom'; import '@testing-library/dom' import { Button } from "./Button"; describe("clicks button", () => { it("onclick", () => { render(<Button />); screen.debug(); let btn = screen.getByTitle("dummyButton"); expect(btn.innerHTML).toBe("Click me"); userEvent.click(btn); btn = screen.getByTitle("dummyButton"); expect(btn.innerHTML).toBe("ButtonClicked"); }); });
 export const Button = () =>{ const [buttonText, setButtonText] = useState("Click me") const handleClick = () =>{ setButtonText("ButtonClicked") } return( <div> <button onClick={handleClick} title="dummyButton">{buttonText}</button> </div> ) } ● clicks button › onclick TypeError: Cannot read properties of undefined (reading 'click') 17 | let btn = screen.getByTitle("dummyButton"); 18 | expect(btn.innerHTML).toBe("Click me"); > 19 | userEvent.click(btn); | ^ 20 | btn = screen.getByTitle("dummyButton"); 21 | expect(btn.innerHTML).toBe("ButtonClicked"); 22 | }); at Object.<anonymous> (src/Components/Button/Button.test.js:19:15)
about 4 years ago · Juan Pablo Isaza
3 answers
Answer question

0

Parece que es una exportación predeterminada basada en los documentos:

 import userEvent from '@testing-library/user-event'

¿Puedes actualizar tu importación e intentarlo de nuevo?

about 4 years ago · Juan Pablo Isaza Report

0

Lo que me solucionó fue npm install @testing-library/user-event@13.5.0

El evento de usuario tiene muchos problemas en mi opinión y no se ha perfeccionado. Tuve que degradar mi versión de npm para que funcionara.

about 4 years ago · Juan Pablo Isaza Report

0

Pruebe el siguiente código. Cambié "eso" a una función de flecha asíncrona y agregué esperar antes de userEvent. Esto funciona para mí. También haga una importación predeterminada en la parte superior.

 describe("clicks button", () => { it("onclick", async () => { render(<Button />); screen.debug(); let btn = screen.getByTitle("dummyButton"); expect(btn.innerHTML).toBe("Click me"); await userEvent.click(btn); btn = screen.getByTitle("dummyButton"); expect(btn.innerHTML).toBe("ButtonClicked"); }); });
about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!