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/fixtures/registrars.yml b/test/fixtures/registrars.yml index e2d6dfc13..be7adaa5b 100644 --- a/test/fixtures/registrars.yml +++ b/test/fixtures/registrars.yml @@ -35,3 +35,14 @@ not_in_use: accounting_customer_code: any language: en reference_no: 39 + +invalid: + name: "" + reg_no: any + code: another + email: any + country_code: US + vat_no: any + accounting_customer_code: any + language: en + reference_no: 42 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') diff --git a/test/models/registrar_test.rb b/test/models/registrar_test.rb index bc50e4071..242e19c89 100644 --- a/test/models/registrar_test.rb +++ b/test/models/registrar_test.rb @@ -5,10 +5,14 @@ class RegistrarTest < ActiveSupport::TestCase @registrar = registrars(:bestnames) end - def test_valid + def test_default_fixture_is_valid assert @registrar.valid?, proc { @registrar.errors.full_messages } end + def test_invalid_fixture_is_invalid + assert registrars(:invalid).invalid? + end + def test_invalid_without_name @registrar.name = '' assert @registrar.invalid?