diff --git a/app/models/concerns/domain/deletable.rb b/app/models/concerns/domain/deletable.rb
index 8640277c8..bd01ab1c9 100644
--- a/app/models/concerns/domain/deletable.rb
+++ b/app/models/concerns/domain/deletable.rb
@@ -20,6 +20,6 @@ module Concerns::Domain::Deletable
end
def deletion_deadline
- delete_at + 24.hours
+ delete_date + 24.hours
end
end
\ No newline at end of file
diff --git a/app/models/concerns/domain/expirable.rb b/app/models/concerns/domain/expirable.rb
index be1928826..f4e8b61f8 100644
--- a/app/models/concerns/domain/expirable.rb
+++ b/app/models/concerns/domain/expirable.rb
@@ -22,7 +22,7 @@ module Concerns::Domain::Expirable
def expirable?
return false if expire_time > Time.zone.now
- if statuses.include?(DomainStatus::EXPIRED) && outzone_at.present? && delete_at.present?
+ if statuses.include?(DomainStatus::EXPIRED) && outzone_at.present? && delete_date.present?
return false
end
diff --git a/app/models/concerns/domain/releasable.rb b/app/models/concerns/domain/releasable.rb
index 8a5e7b5a5..560d5a91f 100644
--- a/app/models/concerns/domain/releasable.rb
+++ b/app/models/concerns/domain/releasable.rb
@@ -15,16 +15,16 @@ module Concerns
def releasable_domains
if release_to_auction
- where('(delete_at < ? OR force_delete_date <= ?)' \
+ where('(delete_date <= ? OR force_delete_date <= ?)' \
' AND ? != ALL(coalesce(statuses, array[]::varchar[]))',
- Time.zone.now,
+ Time.zone.today,
Time.zone.today,
DomainStatus::SERVER_DELETE_PROHIBITED)
else
- where('(delete_at < ? OR force_delete_date <= ?)' \
+ where('(delete_date <= ? OR force_delete_date <= ?)' \
' AND ? != ALL(coalesce(statuses, array[]::varchar[])) AND' \
' ? != ALL(COALESCE(statuses, array[]::varchar[]))',
- Time.zone.now,
+ Time.zone.today,
Time.zone.today,
DomainStatus::SERVER_DELETE_PROHIBITED,
DomainStatus::DELETE_CANDIDATE)
diff --git a/app/models/domain.rb b/app/models/domain.rb
index e2d9d6172..beef862e3 100644
--- a/app/models/domain.rb
+++ b/app/models/domain.rb
@@ -399,7 +399,7 @@ class Domain < ActiveRecord::Base
def cancel_pending_delete
statuses.delete DomainStatus::PENDING_DELETE_CONFIRMATION
statuses.delete DomainStatus::PENDING_DELETE
- self.delete_at = nil
+ self.delete_date = nil
end
def pricelist(operation_category, period_i = nil, unit = nil)
@@ -459,7 +459,7 @@ class Domain < ActiveRecord::Base
def set_graceful_expired
self.outzone_at = expire_time + self.class.expire_warning_period
- self.delete_at = outzone_at + self.class.redemption_grace_period
+ self.delete_date = outzone_at + self.class.redemption_grace_period
self.statuses |= [DomainStatus::EXPIRED]
end
@@ -484,7 +484,7 @@ class Domain < ActiveRecord::Base
unless update.include? s
case s
when DomainStatus::PENDING_DELETE
- self.delete_at = nil
+ self.delete_date = nil
when DomainStatus::SERVER_MANUAL_INZONE # removal causes server hold to set
self.outzone_at = Time.zone.now if force_delete_scheduled?
when DomainStatus::DomainStatus::EXPIRED # removal causes server hold to set
diff --git a/app/models/epp/domain.rb b/app/models/epp/domain.rb
index fcfbaf369..ff60efe02 100644
--- a/app/models/epp/domain.rb
+++ b/app/models/epp/domain.rb
@@ -549,7 +549,7 @@ class Epp::Domain < Domain
msg: I18n.t(:object_status_prohibits_operation)
} unless pending_deletable?
- self.delete_at = (Time.zone.now + (Setting.redemption_grace_period.days + 1.day)).utc.beginning_of_day
+ self.delete_date = Time.zone.today + Setting.redemption_grace_period.days + 1.day
set_pending_delete
set_server_hold if server_holdable?
save(validate: false)
@@ -576,7 +576,7 @@ class Epp::Domain < Domain
self.expire_time = renewed_expire_time
self.outzone_at = nil
- self.delete_at = nil
+ self.delete_date = nil
self.period = period
self.period_unit = unit
diff --git a/app/models/whois_record.rb b/app/models/whois_record.rb
index ad0036315..f4acb78f3 100644
--- a/app/models/whois_record.rb
+++ b/app/models/whois_record.rb
@@ -40,8 +40,7 @@ class WhoisRecord < ActiveRecord::Base
h[:changed] = domain.updated_at.try(:to_s, :iso8601)
h[:expire] = domain.valid_to.to_date.to_s
h[:outzone] = domain.outzone_at.try(:to_date).try(:to_s)
- h[:delete] = [domain.delete_at, domain.force_delete_date].compact.min.try(:to_date)
- .try(:to_s)
+ h[:delete] = [domain.delete_date, domain.force_delete_date].compact.min.try(:to_s)
h[:registrant] = registrant.name
h[:registrant_kind] = registrant.kind
diff --git a/app/presenters/domain_presenter.rb b/app/presenters/domain_presenter.rb
index f65262080..0915722b1 100644
--- a/app/presenters/domain_presenter.rb
+++ b/app/presenters/domain_presenter.rb
@@ -35,7 +35,7 @@ class DomainPresenter
end
def delete_date
- view.l(domain.delete_at, format: :date) if domain.delete_at
+ view.l(domain.delete_date) if domain.delete_date
end
def force_delete_date
diff --git a/app/views/admin/domains/partials/_general.html.erb b/app/views/admin/domains/partials/_general.html.erb
index feeaeb01f..0151094b9 100644
--- a/app/views/admin/domains/partials/_general.html.erb
+++ b/app/views/admin/domains/partials/_general.html.erb
@@ -28,8 +28,8 @@
<%= t('.outzone_time') %>
<%= l(@domain.outzone_at) %>
- <%= t('.delete_time') %>
- <%= l(@domain.delete_at) %>
+ <%= Domain.human_attribute_name :delete_date %>
+ <%= l @domain.delete_date %>
<%= Domain.human_attribute_name :force_delete_date %>
<%= l @domain.force_delete_date %>
diff --git a/app/views/registrant/domains/partials/_general.html.erb b/app/views/registrant/domains/partials/_general.html.erb
index 842d4e8e3..d79980797 100644
--- a/app/views/registrant/domains/partials/_general.html.erb
+++ b/app/views/registrant/domains/partials/_general.html.erb
@@ -28,8 +28,8 @@
<%= Domain.human_attribute_name :outzone_at %>
<%= l(@domain.outzone_at) %>
- <%= Domain.human_attribute_name :delete_at %>
- <%= l(@domain.delete_at) %>
+ <%= Domain.human_attribute_name :delete_date %>
+ <%= l @domain.delete_date %>
<%= Domain.human_attribute_name :force_delete_date %>
<%= l @domain.force_delete_date %>
diff --git a/config/locales/admin/domains.en.yml b/config/locales/admin/domains.en.yml
index 9e1b98781..2abdaee91 100644
--- a/config/locales/admin/domains.en.yml
+++ b/config/locales/admin/domains.en.yml
@@ -51,7 +51,6 @@ en:
partials:
general:
outzone_time: Outzone time
- delete_time: Delete time
locked_by_registrant_at: Registry lock time
admin_contacts:
diff --git a/db/migrate/20190328151516_change_domains_delete_at_to_date.rb b/db/migrate/20190328151516_change_domains_delete_at_to_date.rb
new file mode 100644
index 000000000..4af353d52
--- /dev/null
+++ b/db/migrate/20190328151516_change_domains_delete_at_to_date.rb
@@ -0,0 +1,5 @@
+class ChangeDomainsDeleteAtToDate < ActiveRecord::Migration
+ def change
+ change_column :domains, :delete_at, :date
+ end
+end
diff --git a/db/migrate/20190328151838_rename_domains_delete_at_to_delete_date.rb b/db/migrate/20190328151838_rename_domains_delete_at_to_delete_date.rb
new file mode 100644
index 000000000..37df330a4
--- /dev/null
+++ b/db/migrate/20190328151838_rename_domains_delete_at_to_delete_date.rb
@@ -0,0 +1,5 @@
+class RenameDomainsDeleteAtToDeleteDate < ActiveRecord::Migration
+ def change
+ rename_column :domains, :delete_at, :delete_date
+ end
+end
diff --git a/db/structure.sql b/db/structure.sql
index 83cd6be80..cc0931e58 100644
--- a/db/structure.sql
+++ b/db/structure.sql
@@ -932,7 +932,7 @@ CREATE TABLE public.domains (
legacy_registrar_id integer,
legacy_registrant_id integer,
outzone_at timestamp without time zone,
- delete_at timestamp without time zone,
+ delete_date date,
registrant_verification_asked_at timestamp without time zone,
registrant_verification_token character varying,
pending_json jsonb,
@@ -3540,10 +3540,10 @@ CREATE INDEX index_domain_transfers_on_domain_id ON public.domain_transfers USIN
--
--- Name: index_domains_on_delete_at; Type: INDEX; Schema: public; Owner: -; Tablespace:
+-- Name: index_domains_on_delete_date; Type: INDEX; Schema: public; Owner: -; Tablespace:
--
-CREATE INDEX index_domains_on_delete_at ON public.domains USING btree (delete_at);
+CREATE INDEX index_domains_on_delete_date ON public.domains USING btree (delete_date);
--
@@ -4939,5 +4939,9 @@ INSERT INTO schema_migrations (version) VALUES ('20190322152123');
INSERT INTO schema_migrations (version) VALUES ('20190322152529');
+INSERT INTO schema_migrations (version) VALUES ('20190328151516');
+
+INSERT INTO schema_migrations (version) VALUES ('20190328151838');
+
INSERT INTO schema_migrations (version) VALUES ('20190415120246');
diff --git a/doc/epp-examples.md b/doc/epp-examples.md
index 6ad902037..2ad383dfd 100644
--- a/doc/epp-examples.md
+++ b/doc/epp-examples.md
@@ -10690,7 +10690,7 @@ RESPONSE:
```
-### EPP Domain with valid domain renews a domain when outzone_at or delete_at is nil for some reason
+### EPP Domain with valid domain renews a domain when outzone_at or delete_date is nil for some reason
REQUEST:
diff --git a/doc/registrant-api/v1/domain.md b/doc/registrant-api/v1/domain.md
index f16e11c64..5a5a61366 100644
--- a/doc/registrant-api/v1/domain.md
+++ b/doc/registrant-api/v1/domain.md
@@ -64,7 +64,7 @@ Content-Type: application/json
"legacy_registrar_id":null,
"legacy_registrant_id":null,
"outzone_at":"2016-09-24T09:11:14.861Z",
- "delete_at":"2016-10-24T09:11:14.861Z",
+ "delete_date":"2016-10-24",
"registrant_verification_asked_at":null,
"registrant_verification_token":null,
"locked_by_registrant_at":"2015-09-09T09:11:14.861Z",
@@ -179,7 +179,7 @@ Content-Type: application/json
"legacy_registrar_id":null,
"legacy_registrant_id":null,
"outzone_at":"2016-09-24T09:11:14.861Z",
- "delete_at":"2016-10-24T09:11:14.861Z",
+ "delete_date":"2016-10-24",
"registrant_verification_asked_at":null,
"registrant_verification_token":null,
"locked_by_registrant_at":"2015-09-09T09:11:14.861Z",
@@ -286,7 +286,7 @@ Content-Type: application/json
"legacy_registrar_id":null,
"legacy_registrant_id":null,
"outzone_at":"2016-09-24T09:11:14.861Z",
- "delete_at":"2016-10-24T09:11:14.861Z",
+ "delete_date":"2016-10-24",
"registrant_verification_asked_at":null,
"registrant_verification_token":null,
"locked_by_registrant_at":"2015-09-09T09:11:14.861Z",
diff --git a/doc/registrant-api/v1/registry_lock.md b/doc/registrant-api/v1/registry_lock.md
index 9beab9167..61a2c0839 100644
--- a/doc/registrant-api/v1/registry_lock.md
+++ b/doc/registrant-api/v1/registry_lock.md
@@ -64,7 +64,7 @@ Content-Type: application/json
"legacy_registrar_id":null,
"legacy_registrant_id":null,
"outzone_at":"2016-09-24T09:11:14.861Z",
- "delete_at":"2016-10-24T09:11:14.861Z",
+ "delete_date":"2016-10-24",
"registrant_verification_asked_at":null,
"registrant_verification_token":null,
"locked_by_registrant_at":"2015-09-09T09:11:14.861Z",
@@ -208,7 +208,7 @@ Content-Type: application/json
"legacy_registrar_id":null,
"legacy_registrant_id":null,
"outzone_at":"2016-09-24T09:11:14.861Z",
- "delete_at":"2016-10-24T09:11:14.861Z",
+ "delete_date":"2016-10-24",
"registrant_verification_asked_at":null,
"registrant_verification_token":null,
"locked_by_registrant_at":null,
diff --git a/doc/repp/v1/domain.md b/doc/repp/v1/domain.md
index 061241706..035bb1e9a 100644
--- a/doc/repp/v1/domain.md
+++ b/doc/repp/v1/domain.md
@@ -52,7 +52,7 @@ Content-Type: application/json
"legacy_registrar_id": null,
"legacy_registrant_id": null,
"outzone_at": "2016-09-24T09:11:14.861Z",
- "delete_at": "2016-10-24T09:11:14.861Z",
+ "delete_date": "2016-10-24",
"registrant_verification_asked_at": null,
"registrant_verification_token": null,
"pending_json": {
diff --git a/lib/serializers/registrant_api/domain.rb b/lib/serializers/registrant_api/domain.rb
index b1851b59b..500d6c08c 100644
--- a/lib/serializers/registrant_api/domain.rb
+++ b/lib/serializers/registrant_api/domain.rb
@@ -36,7 +36,7 @@ module Serializers
legacy_registrar_id: domain.legacy_registrar_id,
legacy_registrant_id: domain.legacy_registrant_id,
outzone_at: domain.outzone_at,
- delete_at: domain.delete_at,
+ delete_date: domain.delete_date,
registrant_verification_asked_at: domain.registrant_verification_asked_at,
registrant_verification_token: domain.registrant_verification_token,
pending_json: domain.pending_json,
diff --git a/lib/tasks/data_migrations/convert_domain_delete_date.rake b/lib/tasks/data_migrations/convert_domain_delete_date.rake
new file mode 100644
index 000000000..7eeee5cf0
--- /dev/null
+++ b/lib/tasks/data_migrations/convert_domain_delete_date.rake
@@ -0,0 +1,16 @@
+namespace :data_migrations do
+ task convert_domain_delete_date: :environment do
+ processed_domain_count = 0
+
+ Domain.transaction do
+ Domain.find_each do |domain|
+ next unless domain.delete_date
+
+ domain.update_columns(delete_date: domain.delete_date + 1.day)
+ processed_domain_count += 1
+ end
+ end
+
+ puts "Domains processed: #{processed_domain_count}"
+ end
+end
\ No newline at end of file
diff --git a/lib/tasks/domains/release.rake b/lib/tasks/domains/release.rake
index 0b9f0c19d..e3f499c90 100644
--- a/lib/tasks/domains/release.rake
+++ b/lib/tasks/domains/release.rake
@@ -1,6 +1,6 @@
namespace :domains do
desc <<~TEXT.gsub("\n", "\s")
- Releases domains with past `delete_at` by either sending them to the auction or discarding,
+ Releases domains with past `delete_date` by either sending them to the auction or discarding,
depending on `release_domains_to_auction` setting
TEXT
diff --git a/spec/models/domain_cron_spec.rb b/spec/models/domain_cron_spec.rb
index 7fe2246a0..0d25e375b 100644
--- a/spec/models/domain_cron_spec.rb
+++ b/spec/models/domain_cron_spec.rb
@@ -31,7 +31,7 @@ RSpec.describe DomainCron do
old_valid_to = Time.zone.now - 10.days
@domain.valid_to = old_valid_to
@domain.statuses = [DomainStatus::EXPIRED]
- @domain.outzone_at, @domain.delete_at = nil, nil
+ @domain.outzone_at, @domain.delete_date = nil, nil
@domain.save
described_class.start_expire_period
diff --git a/spec/models/domain_spec.rb b/spec/models/domain_spec.rb
index bed293474..259f2d307 100644
--- a/spec/models/domain_spec.rb
+++ b/spec/models/domain_spec.rb
@@ -132,7 +132,7 @@ RSpec.describe Domain do
old_valid_to = Time.zone.now - 10.days
@domain.valid_to = old_valid_to
@domain.statuses = [DomainStatus::EXPIRED]
- @domain.outzone_at, @domain.delete_at = nil, nil
+ @domain.outzone_at, @domain.delete_date = nil, nil
@domain.save
DomainCron.start_expire_period
@@ -711,8 +711,8 @@ RSpec.describe Domain do
expect(domain.outzone_at).to eq(Time.zone.parse('06.07.2010 10:30'))
end
- it 'sets :delete_at to :outzone_at + redemption grace period' do
- expect(domain.delete_at).to eq(Time.zone.parse('08.07.2010 10:30'))
+ it 'sets :delete_date to :outzone_at + redemption grace period' do
+ expect(domain.delete_date).to eq(Date.parse('08.07.2010'))
end
end
diff --git a/spec/presenters/domain_presenter_spec.rb b/spec/presenters/domain_presenter_spec.rb
index 06f2e33ec..2a1b1bc45 100644
--- a/spec/presenters/domain_presenter_spec.rb
+++ b/spec/presenters/domain_presenter_spec.rb
@@ -44,16 +44,16 @@ RSpec.describe DomainPresenter do
subject(:delete_date) { presenter.delete_date }
context 'when present' do
- let(:domain) { instance_double(Domain, delete_at: '05.07.2010') }
+ let(:domain) { instance_double(Domain, delete_date: '05.07.2010') }
it 'returns localized date' do
- expect(view).to receive(:l).with('05.07.2010', format: :date).and_return('delete date')
+ expect(view).to receive(:l).with('05.07.2010').and_return('delete date')
expect(delete_date).to eq('delete date')
end
end
context 'when absent' do
- let(:domain) { instance_double(Domain, delete_at: nil) }
+ let(:domain) { instance_double(Domain, delete_date: nil) }
specify { expect(delete_date).to be_nil }
end
diff --git a/test/fixtures/domains.yml b/test/fixtures/domains.yml
index cce7298cf..bbf5ced40 100644
--- a/test/fixtures/domains.yml
+++ b/test/fixtures/domains.yml
@@ -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
diff --git a/test/lib/serializers/registrant_api/domain_test.rb b/test/lib/serializers/registrant_api/domain_test.rb
index 6d86088b7..71f234c04 100644
--- a/test/lib/serializers/registrant_api/domain_test.rb
+++ b/test/lib/serializers/registrant_api/domain_test.rb
@@ -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]
diff --git a/test/models/domain/releasable/auctionable_test.rb b/test/models/domain/releasable/auctionable_test.rb
index b4cb9098b..3af0049dc 100644
--- a/test/models/domain/releasable/auctionable_test.rb
+++ b/test/models/domain/releasable/auctionable_test.rb
@@ -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
diff --git a/test/models/domain/releasable/discardable_test.rb b/test/models/domain/releasable/discardable_test.rb
index b1603e7fa..d7c2a8ed2 100644
--- a/test/models/domain/releasable/discardable_test.rb
+++ b/test/models/domain/releasable/discardable_test.rb
@@ -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
diff --git a/test/system/admin_area/domains/details_test.rb b/test/system/admin_area/domains/details_test.rb
index 33636e39a..49fada58e 100644
--- a/test/system/admin_area/domains/details_test.rb
+++ b/test/system/admin_area/domains/details_test.rb
@@ -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'
diff --git a/test/system/registrant_area/domains/details_test.rb b/test/system/registrant_area/domains/details_test.rb
index 5ebff3e28..ef9197541 100644
--- a/test/system/registrant_area/domains/details_test.rb
+++ b/test/system/registrant_area/domains/details_test.rb
@@ -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
diff --git a/test/tasks/data_migrations/convert_domain_delete_date_test.rb b/test/tasks/data_migrations/convert_domain_delete_date_test.rb
new file mode 100644
index 000000000..a17e1109b
--- /dev/null
+++ b/test/tasks/data_migrations/convert_domain_delete_date_test.rb
@@ -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
\ No newline at end of file
diff --git a/test/tasks/domains/release_test.rb b/test/tasks/domains/release_test.rb
index 69d0eae84..0db06ea9e 100644
--- a/test/tasks/domains/release_test.rb
+++ b/test/tasks/domains/release_test.rb
@@ -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