Jsdom: scrollIntoViewは関数ではありません

作成日 2016年12月28日  ·  14コメント  ·  ソース: jsdom/jsdom

aタグでscrollIntoViewを使用するライブラリ( grommet )を使用してテストを実行しています。 jsdomは、そのコード行にヒットするとエラーをスローします。 testHelperファイルにwindow.HTMLElement.prototype.scrollIntoView = function() {};を追加してテストをセットアップすることで機能させることができましたが、修正したいものかどうかを確認するために報告したいと思いました。

css feature layout

最も参考になるコメント

@QuantumInformationこれをJestに使用できます。

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

全てのコメント14件

ええ、これは実装されていない警告スタブを追加する価値があるかもしれません。 レイアウトを行わないため、実際に実装することはできません。

これに関する動きはありますか?

Jestテストで使用しようとしていますが、scrollIntoViewを呼び出すコンポーネントを要素にマウントしようとしていますが、テストは常に次のように失敗します。

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

@QuantumInformationこれをJestに使用できます。

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

この修正はどこにでもありますが、Elementをインポートしていましたか? 「要素が定義されていません」と表示されます。チャイで酵素を使用しています。

tsconfigライブラリにElementが必要です。

NS
「dom」

@ qmg-JamesTこれは、他の要素がscrollIntoViewメソッドを継承するグローバル要素クラスです。

こんにちは、jestを使用せずにこれに関する更新はありますか?

こんにちは、 window.HTMLElement.prototype.scrollIntoView = jest.fn()を使用できます

Element.prototype.scroll = jest.fn()にも同じものが必要です

@enessoylu@msmetanaは、各.testにElement.prototype.scrollIntoView = jest.fn()入れることをお勧めします。

CRAを使用する場合、setupTest.tsがあり、機能しているように見えますが、idk

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

Element.prototype.scroll = jest.fn()

avaまたはその他の単体テストランナーの場合、 window.HTMLElement.prototype.scrollIntoView = () => {}を使用して、 test.beforeEach()またはテスト関数内に設定できます。

私にとっては、以下を設定するだけで十分でした。

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

setupJest.tsに一度

これはscrollも当てはまるようです

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

ありがとう! 出来た。

これを試してみてください。
window.HTMLElement.prototype.scrollIntoView = function(){};

このページは役に立ちましたか?
0 / 5 - 0 評価