diff --git a/app/models/concerns/domain/discardable.rb b/app/models/concerns/domain/discardable.rb index b7b8ed608..e568c1c60 100644 --- a/app/models/concerns/domain/discardable.rb +++ b/app/models/concerns/domain/discardable.rb @@ -22,7 +22,7 @@ module Concerns::Domain::Discardable def keep statuses.delete(DomainStatus::DELETE_CANDIDATE) - save + save(validate: false) do_not_delete_later end diff --git a/test/models/domain/discardable_test.rb b/test/models/domain/discardable_test.rb index 9d366a5f2..8894b7fb0 100644 --- a/test/models/domain/discardable_test.rb +++ b/test/models/domain/discardable_test.rb @@ -5,25 +5,35 @@ class DomainDiscardableTest < ActiveSupport::TestCase @domain = domains(:shop) end - def test_discard_domain + def test_discarding_a_domain @domain.discard @domain.reload - assert QueJob.find_by("args->>0 = '#{@domain.id}'", job_class: DomainDeleteJob.name) assert @domain.discarded? end - def test_discard_invalid_domain + def test_discarding_a_domain_deletes_schedules_domain_deletion + @domain.discard + assert QueJob.find_by("args->>0 = '#{@domain.id}'", job_class: DomainDeleteJob.name) + end + + def test_discarding_a_domain_bypasses_validation domain = domains(:invalid) domain.discard domain.reload - assert domain.discarded?, 'a domain should be discarded' + assert domain.discarded? end - def test_keep_domain + def test_keeping_a_domain_bypasses_validation + domain = domains(:invalid) + domain.discard + domain.keep + domain.reload + assert_not domain.discarded? + end + + def test_keeping_a_domain_cancels_domain_deletion @domain.discard @domain.keep - @domain.reload assert_nil QueJob.find_by("args->>0 = '#{@domain.id}'", job_class: DomainDeleteJob.name) - refute @domain.discarded? end end