diff --git a/lib/tasks/data_migrations/regenerate_registrar_reference_numbers.rake b/lib/tasks/data_migrations/regenerate_registrar_reference_numbers.rake index aff296d83..6f6aaebe2 100644 --- a/lib/tasks/data_migrations/regenerate_registrar_reference_numbers.rake +++ b/lib/tasks/data_migrations/regenerate_registrar_reference_numbers.rake @@ -6,9 +6,7 @@ namespace :data_migrations do Registrar.all.each do |registrar| next unless registrar.reference_no.start_with?('RF') - registrar.reference_no = Billing::ReferenceNo.generate - registrar.save! - + registrar.update_columns(reference_no: Billing::ReferenceNo.generate) processed_registrar_count += 1 end end diff --git a/test/integration/tasks/data_migrations/regenerate_registrar_reference_numbers_test.rb b/test/integration/tasks/data_migrations/regenerate_registrar_reference_numbers_test.rb index 7700b3fb6..c496cd95b 100644 --- a/test/integration/tasks/data_migrations/regenerate_registrar_reference_numbers_test.rb +++ b/test/integration/tasks/data_migrations/regenerate_registrar_reference_numbers_test.rb @@ -11,6 +11,17 @@ class RegenerateRegistrarReferenceNumbersTaskTest < ActiveSupport::TestCase assert_not registrar.reference_no.start_with?('RF') end + def test_bypasses_registrar_validation + registrar = registrars(:invalid) + registrar.update_column(:reference_no, 'RF1111') + assert registrar.invalid? + + capture_io { run_task } + registrar.reload + + assert_not registrar.reference_no.start_with?('RF') + end + def test_does_not_regenerate_when_the_task_is_run_again registrar = registrars(:bestnames) registrar.update!(reference_no: '1111')