jest自体の動作確認は--no-cacheオプションを付けて行いましょう
ハマった順序
babel 7にプロジェクトのライブラリをアップデートしたらjestがbabelのビルドでコケるようになりました.
対応コードを色々書いてみて成功したので, 本当に必要な記述だけを見極めるために変更を元に戻しました.
そして失敗を確認するために再度テストを実行したら何故かテストが成功するようになりました.
CircleCIでは失敗するのでそのリビジョンでは既に修正されていたということも無さそうです.
原因
キャッシュが原因でした.
私もキャッシュが原因だと疑ったのでgit clean -dxi
したり.
yarn.lockを消したり.
cacheと.local以下などのyarn関連ディレクトリを削除したり等色々行いました.
しかし無駄でした.
色々調べた結果,
jestは--no-cache
オプションを付けるとキャッシュを使わずに実行されるようです.
これを実行したら無事テストビルドが失敗するようになりました.
yarn jest --showConfig
で設定を見たらjestはデフォルトでは/tmp/jest_rs
にキャッシュを保存するようですね.
そっちかー.
babel 7への対応
jest 22.4.2はまだ完全にbabel 7の新パッケージ名に移行してないようなのでjest用に旧babelパッケージを指定しておく必要があるようです.
要するにyarn add babel-core babel-jest
する必要があるようです.
わかってしまえばあっけないものですね.