CSSTransitionGroup
要素がDOMに表示されるとき、またはDOMを離れるときに要素をアニメーション化するために使用しています。それはうまくいきます。
今 - このコンポーネントを単体テストしたいと思います。一時的な DOM ノードを作成して にアタッチし<body>
、コンポーネントをそこにレンダリングしてから、いくつかのアクションを実行します。その結果、子 DOM ノードが消えることが予想されます。
問題: アニメーション クラスが適用され、コンポーネントは CSS アニメーションが終了するまで DOM に保持されます。これは、その要素がなくなったことをアサートする前に、テストも数百ミリ秒待機する必要があることを意味します。私はそれを行うことはできません.単体テストであるため、テストを高速にしたいと考えています。
質問: コンポーネントにオプションを追加せずに CSS トランジションを無効にする方法はありますか?
私が試したこと:
ユニットテスト自体はうまくいきます。を使用しないようにするパラメーターをコンポーネントに渡すことで、アニメーションを取り除くことができますCSSTransitionGroup
。だから - 最悪のシナリオ - 私はそうします。しかし、私はより良い解決策を探しています。
「-enter」/「-enter-active」/「-leave」/「-leave-active」クラスが問題の要素に存在すると断言することもできます。これらのクラスが適用されるバグを想像することができたので、それは少しハックに思えますが、要素は DOM に残ります。私はこのアプローチに頼らないことを望みます。