Jest の create() がエラーになるお話

忘備録。
Jest と react-test-renderer の create() を使って snapshot の比較のテストが落ちるようになった。

TypeError: Cannot read property 'addEventListener' of null 

さんざか調べまくった結果 react-test-renderer では ref を使ってコールバックを仕込んでるとサポート外で落ちる模様。
https://github.com/facebook/jest/issues/5462


createNodeMock を使うか Enzyme 使えと Issue に有った。
ライブラリの深いところで ref を使ってたので、createNodeMock は厳しそうだったので、やむをえなく Enzyme 使った。


react-router-redux とか使ってるので、単純に mount() したものを enzyme-to-json で toJson() しただけでは snapshot が意図したものと違うものが出来上がるので、toJson() の第二引数の { mode: 'deep' } をするようにした。