Jsdom: scrollIntoView n'est pas une fonction

Créé le 28 déc. 2016  ·  14Commentaires  ·  Source: jsdom/jsdom

J'exécute un test en utilisant une bibliothèque ( grommet ) qui utilise scrollIntoView sur une balise a . jsdom génère des erreurs lors de la saisie de cette ligne de code. J'ai pu le faire fonctionner en ajoutant window.HTMLElement.prototype.scrollIntoView = function() {}; dans mon fichier testHelper pour configurer les tests, mais j'ai pensé le signaler pour voir si c'est quelque chose que vous souhaitez corriger.

css feature layout

Commentaire le plus utile

@QuantumInformation Vous pouvez l'utiliser pour le Jest :

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

Tous les 14 commentaires

Ouais, cela pourrait valoir la peine d'ajouter un talon d'avertissement non implémenté pour. Nous ne pouvons pas vraiment l'implémenter puisque nous ne faisons pas de mise en page.

Un mouvement là-dessus ?

J'essaie d'utiliser dans un test Jest, j'essaie de monter un composant qui appelle scrollIntoView sur un élément, et le test échoue toujours avec

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

@QuantumInformation Vous pouvez l'utiliser pour le Jest :

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

Je vois ce correctif partout, mais importez-vous Element ? J'obtiens « L'élément n'est pas défini » J'utilise une enzyme avec du chai.

Vous avez besoin d'Element dans vos bibliothèques tsconfig :

c'est à dire
'dom'

@qmg-JamesT C'est la classe d'éléments globale à partir de laquelle les autres éléments sont hérités de la méthode scrollIntoView .

Salut, y a-t-il une mise à jour à ce sujet sans utiliser de blague?

bonjour, vous pouvez utiliser window.HTMLElement.prototype.scrollIntoView = jest.fn()

J'ai besoin de la même chose pour Element.prototype.scroll = jest.fn()

@enessoylu et @msmetana où recommandez-vous de mettre Element.prototype.scrollIntoView = jest.fn() , dans chaque .test.

Lorsque vous utilisez CRA, il existe un setupTest.ts qui semble fonctionner mais idk

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

Element.prototype.scroll = jest.fn()

Pour ava ou tout autre exécuteur de test unitaire, vous pouvez utiliser window.HTMLElement.prototype.scrollIntoView = () => {} et le définir dans test.beforeEach() ou dans la fonction de test

Pour moi, il suffisait de définir :

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

une fois dans setupJest.ts

Cela semble également être le cas avec scroll

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

Merci! ça a marché.

essaye celui-là..
window.HTMLElement.prototype.scrollIntoView = function() {};

Cette page vous a été utile?
0 / 5 - 0 notes

Questions connexes

vsemozhetbyt picture vsemozhetbyt  ·  4Commentaires

khalyomede picture khalyomede  ·  3Commentaires

potapovDim picture potapovDim  ·  4Commentaires

camelaissani picture camelaissani  ·  4Commentaires

lehni picture lehni  ·  4Commentaires