mirror of
https://github.com/internetee/registry.git
synced 2025-07-23 19:20:37 +02:00
Change domains.delete_at
database column type to date, rename to
`delete_date` Closes #1125
This commit is contained in:
parent
ab9c5c45de
commit
cea834d5b7
31 changed files with 159 additions and 71 deletions
2
test/fixtures/domains.yml
vendored
2
test/fixtures/domains.yml
vendored
|
@ -7,7 +7,7 @@ shop:
|
|||
registered_at: <%= Time.zone.parse('2010-07-04').to_s(:db) %>
|
||||
valid_to: <%= Time.zone.parse('2010-07-05').to_s(:db) %>
|
||||
outzone_at: <%= Time.zone.parse('2010-07-06').to_s(:db) %>
|
||||
delete_at: <%= Time.zone.parse('2010-07-07').to_s(:db) %>
|
||||
delete_date: 2010-07-07
|
||||
force_delete_date: 2010-07-08
|
||||
period: 1
|
||||
period_unit: m
|
||||
|
|
|
@ -72,7 +72,7 @@ class SerializersRegistrantApiDomainTest < ActiveSupport::TestCase
|
|||
keys = %i[id name registrar registered_at valid_to created_at updated_at
|
||||
registrant tech_contacts admin_contacts transfer_code name_dirty name_puny period
|
||||
period_unit creator_str updator_str legacy_id legacy_registrar_id legacy_registrant_id
|
||||
outzone_at delete_at registrant_verification_asked_at
|
||||
outzone_at delete_date registrant_verification_asked_at
|
||||
registrant_verification_token pending_json force_delete_date statuses
|
||||
locked_by_registrant_at status_notes nameservers]
|
||||
|
||||
|
|
|
@ -14,8 +14,8 @@ class DomainReleasableAuctionableTest < ActiveSupport::TestCase
|
|||
end
|
||||
|
||||
def test_sells_domain_at_auction
|
||||
@domain.update!(delete_at: Time.zone.parse('2010-07-05 07:59'))
|
||||
travel_to Time.zone.parse('2010-07-05 08:00')
|
||||
@domain.update!(delete_date: '2010-07-04')
|
||||
travel_to Time.zone.parse('2010-07-05')
|
||||
|
||||
Domain.release_domains
|
||||
|
||||
|
@ -50,17 +50,17 @@ class DomainReleasableAuctionableTest < ActiveSupport::TestCase
|
|||
end
|
||||
|
||||
def test_deletes_registered_domain
|
||||
@domain.update!(delete_at: Time.zone.parse('2010-07-05 07:59'))
|
||||
travel_to Time.zone.parse('2010-07-05 08:00')
|
||||
@domain.update!(delete_date: '2010-07-04')
|
||||
travel_to Time.zone.parse('2010-07-05')
|
||||
|
||||
assert_difference 'Domain.count', -1 do
|
||||
Domain.release_domains
|
||||
end
|
||||
end
|
||||
|
||||
def test_ignores_domains_with_delete_at_in_the_future_or_now
|
||||
@domain.update!(delete_at: Time.zone.parse('2010-07-05 08:00'))
|
||||
travel_to Time.zone.parse('2010-07-05 08:00')
|
||||
def test_ignores_domains_with_delete_date_in_the_future
|
||||
@domain.update!(delete_date: '2010-07-06')
|
||||
travel_to Time.zone.parse('2010-07-05')
|
||||
|
||||
assert_no_difference 'Domain.count' do
|
||||
Domain.release_domains
|
||||
|
@ -69,9 +69,8 @@ class DomainReleasableAuctionableTest < ActiveSupport::TestCase
|
|||
end
|
||||
|
||||
def test_ignores_domains_with_server_delete_prohibited_status
|
||||
@domain.update!(delete_at: Time.zone.parse('2010-07-05 07:59'),
|
||||
statuses: [DomainStatus::SERVER_DELETE_PROHIBITED])
|
||||
travel_to Time.zone.parse('2010-07-05 08:00')
|
||||
@domain.update!(delete_date: '2010-07-04', statuses: [DomainStatus::SERVER_DELETE_PROHIBITED])
|
||||
travel_to Time.zone.parse('2010-07-05')
|
||||
|
||||
assert_no_difference 'Domain.count' do
|
||||
Domain.release_domains
|
||||
|
|
|
@ -5,9 +5,9 @@ class DomainReleasableDiscardableTest < ActiveSupport::TestCase
|
|||
@domain = domains(:shop)
|
||||
end
|
||||
|
||||
def test_discards_domains_with_past_delete_at
|
||||
@domain.update!(delete_at: Time.zone.parse('2010-07-05 07:59'))
|
||||
travel_to Time.zone.parse('2010-07-05 08:00')
|
||||
def test_discards_domains_with_past_delete_date
|
||||
@domain.update!(delete_date: '2010-07-04')
|
||||
travel_to Time.zone.parse('2010-07-05')
|
||||
|
||||
Domain.release_domains
|
||||
@domain.reload
|
||||
|
@ -25,9 +25,9 @@ class DomainReleasableDiscardableTest < ActiveSupport::TestCase
|
|||
assert @domain.discarded?
|
||||
end
|
||||
|
||||
def test_ignores_domains_with_delete_at_in_the_future_or_now
|
||||
@domain.update!(delete_at: Time.zone.parse('2010-07-05 08:00'))
|
||||
travel_to Time.zone.parse('2010-07-05 08:00')
|
||||
def test_ignores_domains_with_delete_date_in_the_future
|
||||
@domain.update!(delete_date: '2010-07-06')
|
||||
travel_to Time.zone.parse('2010-07-05')
|
||||
|
||||
Domain.release_domains
|
||||
@domain.reload
|
||||
|
@ -36,8 +36,8 @@ class DomainReleasableDiscardableTest < ActiveSupport::TestCase
|
|||
end
|
||||
|
||||
def test_ignores_already_discarded_domains
|
||||
@domain.update!(delete_at: Time.zone.parse('2010-07-05 07:59'))
|
||||
travel_to Time.zone.parse('2010-07-05 08:00')
|
||||
@domain.update!(delete_date:'2010-07-05')
|
||||
travel_to Time.zone.parse('2010-07-05')
|
||||
|
||||
Domain.release_domains
|
||||
|
||||
|
@ -51,9 +51,8 @@ class DomainReleasableDiscardableTest < ActiveSupport::TestCase
|
|||
end
|
||||
|
||||
def test_ignores_domains_with_server_delete_prohibited_status
|
||||
@domain.update!(delete_at: Time.zone.parse('2010-07-05 07:59'),
|
||||
statuses: [DomainStatus::SERVER_DELETE_PROHIBITED])
|
||||
travel_to Time.zone.parse('2010-07-05 08:00')
|
||||
@domain.update!(delete_date: '2010-07-04', statuses: [DomainStatus::SERVER_DELETE_PROHIBITED])
|
||||
travel_to Time.zone.parse('2010-07-05')
|
||||
|
||||
Domain.release_domains
|
||||
@domain.reload
|
||||
|
@ -62,12 +61,13 @@ class DomainReleasableDiscardableTest < ActiveSupport::TestCase
|
|||
end
|
||||
|
||||
def test_discarding_a_domain_schedules_deletion_at_random_time
|
||||
travel_to Time.zone.parse('2010-07-05 10:30')
|
||||
@domain.update_columns(delete_at: Time.zone.parse('2010-07-05 10:00'))
|
||||
travel_to Time.zone.parse('2010-07-05')
|
||||
|
||||
@domain.update_columns(delete_date: '2010-07-05')
|
||||
Domain.release_domains
|
||||
|
||||
other_domain = domains(:airport)
|
||||
other_domain.update_columns(delete_at: Time.zone.parse('2010-07-05 10:00'))
|
||||
other_domain.update_columns(delete_date: '2010-07-05')
|
||||
Domain.release_domains
|
||||
|
||||
background_job = QueJob.find_by("args->>0 = '#{@domain.id}'", job_class: DomainDeleteJob.name)
|
||||
|
@ -77,9 +77,9 @@ class DomainReleasableDiscardableTest < ActiveSupport::TestCase
|
|||
end
|
||||
|
||||
def test_discarding_a_domain_bypasses_validation
|
||||
travel_to Time.zone.parse('2010-07-05 10:30')
|
||||
domain = domains(:invalid)
|
||||
domain.update_columns(delete_at: Time.zone.parse('2010-07-05 10:00'))
|
||||
domain.update_columns(delete_date: '2010-07-04')
|
||||
travel_to Time.zone.parse('2010-07-05')
|
||||
|
||||
Domain.release_domains
|
||||
domain.reload
|
||||
|
|
|
@ -7,8 +7,8 @@ class AdminAreaDomainDetailsTest < ApplicationSystemTestCase
|
|||
end
|
||||
|
||||
def test_discarded_domain_has_corresponding_label
|
||||
travel_to Time.zone.parse('2010-07-05 10:30')
|
||||
@domain.delete_at = Time.zone.parse('2010-07-05 10:00')
|
||||
@domain.delete_date = '2010-07-04'
|
||||
travel_to Time.zone.parse('2010-07-05')
|
||||
|
||||
visit admin_domain_url(@domain)
|
||||
assert_no_css 'span.label.label-warning', text: 'deleteCandidate'
|
||||
|
|
|
@ -20,7 +20,7 @@ class RegistrantAreaDomainDetailsTest < ApplicationSystemTestCase
|
|||
|
||||
assert_text "Valid to #{l Time.zone.parse('2010-07-05')}"
|
||||
assert_text "Outzone at #{l Time.zone.parse('2010-07-06')}"
|
||||
assert_text "Delete at #{l Time.zone.parse('2010-07-07')}"
|
||||
assert_text "Delete date #{l Date.parse('2010-07-07')}"
|
||||
assert_text "Force delete date #{l Date.parse('2010-07-08')}"
|
||||
end
|
||||
|
||||
|
|
|
@ -0,0 +1,61 @@
|
|||
require 'test_helper'
|
||||
|
||||
class ConvertDomainDeleteDateTaskTest < ActiveSupport::TestCase
|
||||
setup do
|
||||
@domain = domains(:shop)
|
||||
end
|
||||
|
||||
def test_moves_domain_delete_date_one_day_ahead
|
||||
@domain.update!(delete_date: '2010-07-05')
|
||||
|
||||
capture_io do
|
||||
run_task
|
||||
end
|
||||
@domain.reload
|
||||
|
||||
assert_equal Date.parse('2010-07-06'), @domain.delete_date
|
||||
end
|
||||
|
||||
def test_processes_invalid_domains
|
||||
@domain = domains(:invalid)
|
||||
@domain.update_columns(delete_date: '2010-07-05')
|
||||
|
||||
capture_io do
|
||||
run_task
|
||||
end
|
||||
@domain.reload
|
||||
|
||||
assert_equal Date.parse('2010-07-06'), @domain.delete_date
|
||||
end
|
||||
|
||||
def test_skips_non_expired_domains
|
||||
@domain.update!(delete_date: nil)
|
||||
|
||||
assert_nothing_raised do
|
||||
capture_io do
|
||||
run_task
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
def test_output
|
||||
eliminate_effect_of_all_domains_except(@domain)
|
||||
@domain.update!(delete_date: '2010-07-05')
|
||||
|
||||
assert_output "Domains processed: 1\n" do
|
||||
run_task
|
||||
end
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def eliminate_effect_of_all_domains_except(domain)
|
||||
Domain.connection.disable_referential_integrity do
|
||||
Domain.delete_all("id != #{domain.id}")
|
||||
end
|
||||
end
|
||||
|
||||
def run_task
|
||||
Rake::Task['data_migrations:convert_domain_delete_date'].execute
|
||||
end
|
||||
end
|
|
@ -6,8 +6,8 @@ class ReleaseDomainsTaskTest < ActiveSupport::TestCase
|
|||
end
|
||||
|
||||
def test_output
|
||||
@domain.update!(delete_at: Time.zone.parse('2010-07-05 07:59'))
|
||||
travel_to Time.zone.parse('2010-07-05 08:00')
|
||||
@domain.update!(delete_date: '2010-07-04')
|
||||
travel_to Time.zone.parse('2010-07-05')
|
||||
assert_output("shop.test is released\nReleased total: 1\n") { run_task }
|
||||
end
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue