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.
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() {};
Commentaire le plus utile
@QuantumInformation Vous pouvez l'utiliser pour le Jest :
Element.prototype.scrollIntoView = jest.fn();