Jsdom: scrollIntoView no es una función

Creado en 28 dic. 2016  ·  14Comentarios  ·  Fuente: jsdom/jsdom

Estoy ejecutando una prueba usando una biblioteca ( grommet ) que usa scrollIntoView en una etiqueta a . jsdom arroja errores al llegar a esa línea de código. Pude hacer que funcionara agregando window.HTMLElement.prototype.scrollIntoView = function() {}; en mi archivo testHelper para configurar las pruebas, pero pensé en informarlo para ver si es algo que desea corregir.

css feature layout

Comentario más útil

@QuantumInformation Puede usar esto para la broma:

Element.prototype.scrollIntoView = jest.fn();

Todos 14 comentarios

Sí, podría valer la pena agregar un código auxiliar de advertencia no implementado para. Realmente no podemos implementarlo ya que no hacemos diseño.

¿Algún movimiento sobre esto?

Intentando usarlo en una prueba de Jest, estoy tratando de montar un componente que llama a scrollIntoView en un elemento, y la prueba siempre falla con

TypeError: node.scrollIntoView is not a function
        at Object.scrollInToView src/component/shared/foo.tsx:7
        at User.Object.<anonymous>.User.componentDidMount

@QuantumInformation Puede usar esto para la broma:

Element.prototype.scrollIntoView = jest.fn();

Veo esta solución en todas partes, pero ¿estaba importando Element desde? Me sale 'El elemento no está definido' Estoy usando enzima con chai.

Necesita Element en sus libs tsconfig:

es decir
'dom'

@ qmg-JamesT Es la clase de elemento global de donde se heredan los otros elementos del método scrollIntoView .

Hola, ¿hay alguna actualización sobre esto sin usar broma?

hola, puedes usar window.HTMLElement.prototype.scrollIntoView = jest.fn ()

Necesito lo mismo para Element.prototype.scroll = jest.fn ()

@enessoylu y @msmetana, ¿dónde recomiendan poner Element.prototype.scrollIntoView = jest.fn() , en cada .test?

Cuando se usa CRA hay un setupTest.ts, parece funcionar pero idk

import '@testing-library/jest-dom/extend-expect'

Element.prototype.scroll = jest.fn()

Para ava o cualquier otro corredor de prueba unitario, puede usar window.HTMLElement.prototype.scrollIntoView = () => {} y configurarlo en test.beforeEach() o dentro de la función de prueba

Para mí fue suficiente establecer:

Element.prototype.scrollIntoView` = () => {};

una vez en setupJest.ts

Este también parece ser el caso de scroll

Element.prototype.scrollIntoView = jest.fn();

¡Gracias! funcionó.

prueba este ...
window.HTMLElement.prototype.scrollIntoView = function () {};

¿Fue útil esta página
0 / 5 - 0 calificaciones

Temas relacionados

vsemozhetbyt picture vsemozhetbyt  ·  4Comentarios

Progyan1997 picture Progyan1997  ·  3Comentarios

josephrexme picture josephrexme  ·  4Comentarios

cg433n picture cg433n  ·  3Comentarios

JacksonGariety picture JacksonGariety  ·  4Comentarios