install_generator_spec がデフォルト変更に追従し CI が復活
インストールジェネレータのテストが、use_new_acts_as 設定のデフォルト変更に追従していなかったため発生していた CI の赤状態を解消しました。
背景
use_new_acts_as のデフォルトが true に変更されたことに伴い、インストールジェネレータのテンプレートから config.use_new_acts_as = true 行が削除されました。これにより、新規プロジェクトで生成される initializer には同設定が出力されません。c7e93e26 コミットでこの変更は正しく反映されましたが、テストコードは更新されていませんでした。
テストが旧行の存在を検証していたため、CI が赤色になるケースが発生しました。spec/ruby_llm/generators/install_generator_spec.rb では expect(initializer).to include('config.use_new_acts_as = true') が残っており、実際の生成物と不整合が生じていました。
この不整合は lib/ や spec/ を変更したコミットでのみ顕在化し、ドキュメントだけの変更で CI が緑のままになるという誤認を招いていました。結果として、実際に壊れたテストスイートが見過ごされるリスクがありました。
技術的な変更
テストコードをデフォルト変更に合わせて修正しました。install_generator_spec.rb にコメントを追記し、config.use_new_acts_as 行が生成されないことを not_to include で検証するように変更しています。
@@ -75,7 +75,8 @@
expect(File.exist?('config/initializers/ruby_llm.rb')).to be true
initializer = File.read('config/initializers/ruby_llm.rb')
expect(initializer).to include('RubyLLM.configure')
- expect(initializer).to include('config.use_new_acts_as = true')
+ # use_new_acts_as defaults to true, so the generator no longer emits it
+ expect(initializer).not_to include('config.use_new_acts_as')
# Default Model class doesn't need explicit config
expect(initializer).not_to include('config.model_registry_class')
end
コメント行とアサーションの変更は、他の設定項目(config.model_registry_class)に対する not_to include パターンと統一され、テストの可読性と一貫性が向上しました。
設計判断
アップグレード用ジェネレータは従来通り行を出力する方針を維持**しています。upgrade_generators_spec.rb は変更せず、既存のアップグレードシナリオでは config.use_new_acts_as = true が明示的に生成されることを保証しています。
テストコードをデフォルトに合わせて更新したことは、CI の信頼性を保つ上で重要な設計判断です。実装ロジックに変更はなく、テストとドキュメントが現在の設定と整合していることを確認するだけのシンプルな修正となります。
まとめ
use_new_acts_as のデフォルトが true になる変更に対して、インストールジェネレータのテストを正しく更新したことで CI が再び緑化しました。テストと実装の整合性を保つことで、将来的なリグレッションを防止し、リリースプロセスの安全性が向上します。