問題タブ [razzle]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - 一部の単体テストでライブラリを同期的にロードするために loadable.lib をモックする方法は?
現在、npm モジュールを同期的loadable.lib
にロードするために使用されていた約 20 個の新しいファイルに対して、遅延ロードを使用しています。変更はドラフト PR で待機中ですが、渡されたモジュールがロードされるreact-toastify
のを待機しないため、単体テストが壊れているようです。loadable.lib
予想された結果
以前とまったく同じように動作するようにモックできloadable.lib
ますが、指定されたライブラリを同期的にロードします。単体テストでは、loadable.lib
結果のコンポーネントの子がそのライブラリにアクセスできるため、最初のレンダリングでこれが正常に実行されます。
実績
古いスナップショット (タグとネストされたものと小道具でいっぱい) と新しいスナップショット ( null
) は一致しません。これらは機能しません:
一部のライブラリがロードされるのを待つ代わりに、関数をモックloadable.lib
してその子をレンダリングすることが可能である場合、コードが使用する未定義の変数をどのように埋めることができるかわかりません。の上。
webpackPrefetch
やなどの WebPack のヒントがいくつかあることを読みましたがwebpackPreload
、それが良い道であるかどうかはわかりません。
私が試したことに関する関連リンク
私が取り組んでいるコード (そして、このようなファイルが他に 19 個あります): https://github.com/silviubogan/volto/blob/1d015c145e562565ecfa058629ae3d7a9f3e39e4/src/components/manage/Actions/Actions.jsx (現在作業中です)読み込み
react-toastify
中はloadable.lib
常に。)https://medium.com/pixel-and-ink/testing-loadable-components-with-jest-97bfeaa6da0b - その記事のコードと同様のことをしようとしましたが、うまくいきません:
ちょっとしたコード
上記のリンクから取得した、これは私が現在react-toastify(という名前LoadableToast
)を使用する方法です:
結論
言い換えれば、動的インポートをモックするにはどうすればよいですか? テストが値を受け取るのを待たせるのではなく、jest を遅延読み込みに移行させて値を提供するにはどうすればよいですか?
ありがとうございました!
更新 1
次の新しいコードでは、まだ機能していません:
reactjs - 反応アプリで npm start に問題があります
システムに大きなアプリからのクローンがあります。実行した後npm install
、これは私のログです:
その後、実行したときnpm start
のログは次のとおりです。
私はプロジェクトが混乱していることを知っています。