はじめに
以前からCreatodonはMastodonの最新のソースコードに追従する運用で動かしていました。
ただ、ここ半年の間で独自機能などをいくつか導入した影響もあり、最新のソースコードに追従する際に独自機能周りの挙動を手動で確認するという面倒くさいことをやっていました。
さすがにこういうのをずっと続けるのは現実的ではないなと思い、独自機能をテストするコードを追加しました。
これはその時にやったあれこれのまとめになります。
やったこと
まずService層などのテストコードを以下のPRで追加しました。
次に、UI上からしか確認できない挙動などに関しては以下のPRでE2Eテストを追加しました。
E2Eテストで利用するフレームワークとしてはCypressを使いました。
基本的にはCypressのドキュメントにある手順で設定などを追加。
困った点としては、僕が利用している環境がWSLだったので、ypress openでCypressの設定画面がそのままでは表示されないという......
なのでVcXsrv周りの設定などで少し時間がかかりました......。
あとはWebpacker側でビルドしたアセットなどが正しく読み込まれないこともあり、以下のIssueを参考に「experimentalSourceRewriting: true,」などの設定を追加して対応。
とりあえず、これでE2Eテストが実行できるようになりました。
今後など
今後はできるだけ既存機能のテスト追加をしつつ、最新のソースコード追従への対応コストを削減できるようにしたいですねー。
あと基本的にはE2Eテストはできるだけ追加しない方向でいきたい......(E2Eテストはメンテナンスがしづらくなりやすいので......)