ActiveStorageテストで確率的にDBエラー

mozukichi
·

RailsのActiveStorageのhas_one_attachedまたはhas_many_attachedのファイル添付をRSpecの複数のテストからfixture_file_uploadでファイル添付させると非同期(ActiveStorage::AnalyzeJob.perform_later)でActiveStorage::Blob::Analyzable#analyzeが複数同時に実行されるためか、確率的にDB関連のエラー(MySQL接続エラーとか外部キーのエラーとか)が起こるので、モデルのテスト用データ作成直後に直接attachedの関連付けの要素のanalyzeメソッド(ActiveStorage::Blob::Analyzable#analyze)を同期的に呼び出してあげる必要がある。

@mozukichi
逆パーリーピーポーキーパンチャー