Change domains.delete_at database column type to date, rename to

`delete_date`

Closes #1125
This commit is contained in:
Artur Beljajev 2019-03-28 17:36:38 +02:00
parent ab9c5c45de
commit cea834d5b7
31 changed files with 159 additions and 71 deletions

View file

@ -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