要するに
ターミナルで蒸気機関車を走らせることができるジョークコマンド(Steam Locomotive)と、saplingのコマンド名がコンフリクトしている(どっちもslな)ので、Steam Locomotiveをインストールしていると jest --watch が正常に起動しません。
BugFixについてはv30から入るようです。
Steam Locomotiveって
lsをslとタイポしたときに、ターミナルに蒸気機関車が走るというジョークコマンドです。
https://github.com/mtoyoda/sl より引用。
ジョークコマンドの一つとして、QiitaやZennなどでも取り上げられるのを見ますね。
何が起きたのか
Steam Locomotive を入れた環境で jest --watchテストを流すと動きません!
npx jest --watch
Determining test suites to run...
● Test suite failed to run
thrown: [Error]
詳しい理由
冒頭の通り、slというコマンド名が Steam Locomotiveとsapling(Meta謹製のソースコード管理システム)のコマンド名が重複しています。
もう少し具体的には jest-changed-files が gitやsaplingなどいくつかのソースコード管理システムによる差分検知をサポートしており、slコマンドも入っていれば利用してくれます。
ここで名前がコンフリクトしているのでSteam Locomotiveを利用している人は蒸気機関車が走ってしまい、エラーになるというわけです。
Bugfixについて
こちらのPRで修正されています。slが Steam Locomotive なら処理をスキップするようになっています。
