Back to Source Monitor

PLAN-03 Summary: extract-import-sessions-controller

.vbw-planning/milestones/03-coverage-analysis-quick-wins-critical-path-test-co/phases/03-large-file-refactoring/PLAN-03-SUMMARY.md

0.13.02.6 KB
Original Source

PLAN-03 Summary: extract-import-sessions-controller

Status: COMPLETE

Commits

  • Hash: 9dce996
  • Message: refactor: extract import-sessions-controller into 4 concerns [PLAN-03]
  • Files changed: 5 files (4 new concerns + slimmed controller)

Tasks Completed

Task 1: Extract OpmlParser concern

  • Created app/controllers/source_monitor/import_sessions/opml_parser.rb (130 lines)
  • Moved OPML parsing methods: parse_opml_file, build_entry, malformed_entry, validate_upload!, etc.
  • Moved constants: ALLOWED_CONTENT_TYPES, GENERIC_CONTENT_TYPES, UploadError class
  • All 29 controller tests pass

Task 2: Extract EntryAnnotation concern

  • Created app/controllers/source_monitor/import_sessions/entry_annotation.rb (187 lines)
  • Moved entry annotation methods: annotated_entries, normalize_entry, filter_entries, selectable_entries, build_selection_from_params, etc.
  • All 29 controller tests pass

Task 3: Extract HealthCheckManagement concern

  • Created app/controllers/source_monitor/import_sessions/health_check_management.rb (112 lines)
  • Moved health check methods: start_health_checks_if_needed, reset_health_results, enqueue_health_check_jobs, health_check_progress, etc.
  • All 29 controller tests pass

Task 4: Extract BulkConfiguration concern

  • Created app/controllers/source_monitor/import_sessions/bulk_configuration.rb (106 lines)
  • Moved bulk config methods: build_bulk_source, sample_identity_attributes, persist_bulk_settings_if_valid!, bulk_settings_payload, etc.
  • Controller reduced to 295 lines (target: <300)
  • All 29 controller tests pass

Deviations

IDDescriptionImpact
NoneNo deviations from planN/A

Verification Results

CheckResult
wc -l import_sessions_controller.rb295 lines (target: <300)
ls import_sessions/*.rb | wc -l4 concern files
bin/rails test test/controllers/.../import_sessions_controller_test.rb29 runs, 133 assertions, 0 failures, 0 errors
bin/rubocop import_sessions_controller.rb import_sessions/5 files inspected, 0 offenses

Success Criteria

  • ImportSessionsController main file under 300 lines (295, down from 792)
  • Four concern modules created in app/controllers/source_monitor/import_sessions/
  • No concern file exceeds 300 lines (largest: entry_annotation.rb at 187)
  • All wizard routes and step handling preserved
  • All existing controller tests pass without modification (29 runs, 0 failures)
  • Full test suite passes (760 runs, 0 failures)
  • RuboCop passes on all modified/new files
  • REQ-10 satisfied