Jsdom: scrollIntoView ist keine Funktion

Erstellt am 28. Dez. 2016  ·  14Kommentare  ·  Quelle: jsdom/jsdom

Ich führe einen Test mit einer Bibliothek ( grommet ) aus, die scrollIntoView für ein a Tag verwendet. jsdom gibt Fehler aus, wenn diese Codezeile erreicht wird. Ich konnte es zum Laufen bringen, indem ich window.HTMLElement.prototype.scrollIntoView = function() {}; in meiner testHelper-Datei hinzufügte, um die Tests einzurichten, aber ich dachte, ich würde es melden, um zu sehen, ob es etwas ist, das Sie reparieren möchten.

css feature layout

Hilfreichster Kommentar

@QuantumInformation Sie können dies für den Scherz verwenden:

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

Alle 14 Kommentare

Ja, das könnte es wert sein, einen nicht implementierten Warn-Stub hinzuzufügen. Wir können es nicht wirklich implementieren, da wir kein Layout machen.

Irgendeine Bewegung dazu?

Beim Versuch, in einem Jest-Test zu verwenden, versuche ich, eine Komponente zu mounten, die scrollIntoView für ein Element aufruft, und der Test schlägt immer fehl mit

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

@QuantumInformation Sie können dies für den Scherz verwenden:

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

Ich sehe diesen Fix überall, aber importieren Sie Element von? Ich bekomme 'Element ist nicht definiert' Ich verwende Enzyme mit Chai.

Sie benötigen Element in Ihren tsconfig-Bibliotheken:

dh
'dom'

@qmg-JamesT Dies ist die globale Elementklasse, von der die anderen Elemente der scrollIntoView- Methode geerbt werden.

Hallo, gibt es dazu ein Update ohne Scherz?

Hallo, Sie können window.HTMLElement.prototype.scrollIntoView = jest.fn() verwenden.

Ich brauche das gleiche für Element.prototype.scroll = jest.fn()

@enessoylu und @msmetana wo empfehlen Sie Element.prototype.scrollIntoView = jest.fn() in jeden .test.

Bei Verwendung von CRA gibt es eine setupTest.ts, scheint zu funktionieren, aber idk

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

Element.prototype.scroll = jest.fn()

Für ava oder jeden anderen Unit-Test-Runner können Sie window.HTMLElement.prototype.scrollIntoView = () => {} und es in test.beforeEach() oder innerhalb der Testfunktion einstellen

Für mich hat es gereicht, einzustellen:

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

einmal in setupJest.ts

Dies scheint auch bei scroll der Fall zu sein

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

Vielen Dank! es funktionierte.

Probier diese..
window.HTMLElement.prototype.scrollIntoView = function() {};

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen