.vbw-planning/milestones/03-coverage-analysis-quick-wins-critical-path-test-co/phases/02-critical-path-test-coverage/PLAN-03.md
Close the coverage gap in lib/source_monitor/configuration.rb (currently 94 uncovered lines out of 655). The existing test file has only 5 tests covering mission_control_dashboard_path, scraper registry, retention strategy default, and fetching settings. This plan targets the remaining uncovered branches across the 12 nested settings classes: AuthenticationSettings handlers, ScrapingSettings normalization, RealtimeSettings adapter validation and action_cable_config, RetentionSettings strategy validation, Events callbacks and item_processors, Models table_name_prefix and for method, ModelDefinition concerns and validations, ConcernDefinition resolution, and ValidationDefinition signatures.
Decomposition rationale: Configuration has many small nested classes, each with a few uncovered branches. Rather than one mega-task, we group by logical subsystem: (1) authentication handlers, (2) scraping/retention settings with edge cases, (3) realtime adapter validation, (4) events system, (5) models and concern/validation definitions.
Trade-offs considered:
What constrains the structure:
test/lib/source_monitor/configuration_test.rbbin/rails test test/lib/source_monitor/configuration_test.rb -n /authentication|authorize|handler/i exits 0test/lib/source_monitor/configuration_test.rbbin/rails test test/lib/source_monitor/configuration_test.rb -n /scraping_settings|retention_settings|normalize/i exits 0test/lib/source_monitor/configuration_test.rbbin/rails test test/lib/source_monitor/configuration_test.rb -n /realtime|adapter|action_cable|solid_cable/i exits 0test/lib/source_monitor/configuration_test.rbbin/rails test test/lib/source_monitor/configuration_test.rb -n /events|callback|item_processor/i exits 0test/lib/source_monitor/configuration_test.rbbin/rails test test/lib/source_monitor/configuration_test.rb -n /models|model_definition|concern|validation_definition/i exits 0bin/rails test test/lib/source_monitor/configuration_test.rb exits 0COVERAGE=1 bin/rails test test/lib/source_monitor/configuration_test.rb shows configuration.rb with >80% branch coveragebin/rails test exits 0 (no regressions)