Desplazamiento.js
import React from "react"; export const ScrollToTop = ({ children, location }) => { React.useEffect(() => window.scrollTo(0, 0), [location.pathname]); return children; };Desplazamiento.prueba.js
import React from "react"; import { ScrollToTop } from "./ScrollToTop"; describe("ScrollToTop", () => { it("", () => { expect( ScrollToTop({ children: "some children", location: { pathname: "the path" } }) ).toEqual(); }); });y el resultado que obtengo es ingresar la descripción de la imagen aquí
No debe llamar a ScrollToTop como una función directamente, esto es de lo que se queja el mensaje de error.
React docs recomienda Testing Library para escribir pruebas.
Aquí hay un ejemplo de cómo puede escribir Scroll.test.js usando la biblioteca anterior:
import React from "react"; import { render } from '@testing-library/react'; import { ScrollToTop } from "./ScrollToTop"; describe("ScrollToTop", () => { it('calls window.scrollTo()', () => { window.scrollTo = jest.fn(); // create a moack function and record all calls render(<ScrollToTop location={{ pathname: 'pathname' }}>Text</ScrollToTop>); // render a component expect(window.scrollTo).toHaveBeenCalledWith(0, 0); // check that scrollTo mock was called }); });