a
タグでscrollIntoView
を使用するライブラリ( grommet
)を使用してテストを実行しています。 jsdom
は、そのコード行にヒットするとエラーをスローします。 testHelperファイルにwindow.HTMLElement.prototype.scrollIntoView = function() {};
を追加してテストをセットアップすることで機能させることができましたが、修正したいものかどうかを確認するために報告したいと思いました。
ええ、これは実装されていない警告スタブを追加する価値があるかもしれません。 レイアウトを行わないため、実際に実装することはできません。
これに関する動きはありますか?
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(){};
最も参考になるコメント
@QuantumInformationこれをJestに使用できます。
Element.prototype.scrollIntoView = jest.fn();