Delete discarded domains at the random moment within next 24h

#790
This commit is contained in:
Artur Beljajev 2018-04-20 16:55:36 +03:00
parent 60a66942d1
commit 3e94c10da1
8 changed files with 105 additions and 31 deletions

View file

@ -1,30 +1,54 @@
require 'test_helper'
class DomainDiscardableTest < ActiveSupport::TestCase
setup do
def setup
travel_to Time.zone.parse('2010-07-05 10:30')
@domain = domains(:shop)
@domain.delete_at = Time.zone.parse('2010-07-05 10:00')
end
def test_discarding_a_domain
def teardown
travel_back
end
def test_discarding_a_domain_persists_the_state
@domain.discard
@domain.reload
assert @domain.discarded?
end
def test_discarding_a_domain_deletes_schedules_domain_deletion
def test_discarding_a_domain_schedules_deletion_at_random_time
@domain.discard
assert QueJob.find_by("args->>0 = '#{@domain.id}'", job_class: DomainDeleteJob.name)
other_domain = domains(:airport)
other_domain.delete_at = Time.zone.parse('2010-07-05 10:00')
other_domain.discard
background_job = QueJob.find_by("args->>0 = '#{@domain.id}'", job_class: DomainDeleteJob.name)
other_background_job = QueJob.find_by("args->>0 = '#{other_domain.id}'",
job_class: DomainDeleteJob.name)
assert_not_equal background_job.run_at, other_background_job.run_at
end
def test_discarding_a_domain_bypasses_validation
domain = domains(:invalid)
domain.delete_at = Time.zone.parse('2010-07-05 10:00')
domain.discard
domain.reload
assert domain.discarded?
end
def test_domain_cannot_be_discarded_repeatedly
@domain.discard
exception = assert_raises do
@domain.discard
end
assert_equal 'Domain is already discarded', exception.message
end
def test_keeping_a_domain_bypasses_validation
domain = domains(:invalid)
domain.delete_at = Time.zone.parse('2010-07-05 10:00')
domain.discard
domain.keep
domain.reload