Tengo esta función útil que se desplaza a la vista que estoy tratando de probar. La función (a continuación) busca un nodo de reacción. Parece que no puedo descifrar en broma cómo probar esta función al proporcionar el nodo Dom.
export const scrollIntoView = (node, behavior, block) => { if (!node) return; const element = ReactDom.findDOMNode(node); try { if (/^((?!chrome|android).)*safari/i.test(navigator.userAgent)) { if ("parentIFrame" in window) { window.parentIFrame.scrollToOffset(0, 0); } else { window.scrollTo({ top: 0, behavior: behavior || "smooth" }); } } else { element.scrollIntoView({ behavior: behavior || "smooth", block: block || "start", }); } } catch (error) { element.scrollIntoView(false); } };Aquí está mi prueba: cuando hago lo siguiente, aparece el error: el argumento parece no ser un ReactComponent.
it("Should scroll up", () => { const mockScrollIntoView = jest.fn(scrollIntoView); const node = (document.body.innerHTML = '<App id="root"/>'); mockScrollIntoView(node); expect(mockScrollIntoView).toBeCalledWith({ behavior: "smooth", block: "start", }); });