mirror of
https://github.com/internetee/registry.git
synced 2025-06-03 03:07:28 +02:00
added tasks for migrate data and tests
This commit is contained in:
parent
fb352fb718
commit
d260eacc1a
6 changed files with 81 additions and 0 deletions
9
app/jobs/migrate_before_force_delete_statuses_job.rb
Normal file
9
app/jobs/migrate_before_force_delete_statuses_job.rb
Normal file
|
@ -0,0 +1,9 @@
|
|||
class MigrateBeforeForceDeleteStatusesJob < ApplicationJob
|
||||
def perform
|
||||
domains = Domain.where.not(statuses_before_force_delete: nil)
|
||||
domains.each do |domain|
|
||||
domain.force_delete_domain_statuses_history = domain.statuses_before_force_delete
|
||||
domain.save
|
||||
end
|
||||
end
|
||||
end
|
9
app/jobs/migrate_statuses_to_domain_history_job.rb
Normal file
9
app/jobs/migrate_statuses_to_domain_history_job.rb
Normal file
|
@ -0,0 +1,9 @@
|
|||
class MigrateStatusesToDomainHistoryJob < ApplicationJob
|
||||
def perform
|
||||
domains = Domain.all.select { |d| !d.locked_by_registrant? }
|
||||
domains.each do |domain|
|
||||
domain.admin_store_statuses_history = domain.statuses
|
||||
domain.save
|
||||
end
|
||||
end
|
||||
end
|
|
@ -22,6 +22,10 @@ class Domain < ApplicationRecord
|
|||
alias_attribute :auth_info, :transfer_code # Old attribute name; for PaperTrail
|
||||
alias_attribute :registered_at, :created_at
|
||||
|
||||
store_accessor :json_statuses_history,
|
||||
:force_delete_domain_statuses_history,
|
||||
:admin_store_statuses_history
|
||||
|
||||
# TODO: whois requests ip whitelist for full info for own domains and partial info for other domains
|
||||
# TODO: most inputs should be trimmed before validatation, probably some global logic?
|
||||
|
||||
|
|
10
lib/tasks/migrate_domain_statuses.rake
Normal file
10
lib/tasks/migrate_domain_statuses.rake
Normal file
|
@ -0,0 +1,10 @@
|
|||
namespace :migrate_domain_statuses do
|
||||
desc 'Starts collect invalid validation contacts'
|
||||
task fd_domains: :environment do
|
||||
MigrateBeforeForceDeleteStatusesJob.perform_later
|
||||
end
|
||||
|
||||
task admin_status_history: :environment do
|
||||
MigrateStatusesToDomainHistoryJob.perform_later
|
||||
end
|
||||
end
|
27
test/jobs/migrate_before_force_delete_statuses_job_test.rb
Normal file
27
test/jobs/migrate_before_force_delete_statuses_job_test.rb
Normal file
|
@ -0,0 +1,27 @@
|
|||
require 'test_helper'
|
||||
|
||||
class MigrateBeforeForceDeleteStatusesJobTest < ActiveJob::TestCase
|
||||
setup do
|
||||
travel_to Time.zone.parse('2010-07-05')
|
||||
@domain = domains(:shop)
|
||||
end
|
||||
|
||||
def test_migrate_data_before_force_delete
|
||||
@domain.update(statuses: [DomainStatus::SERVER_UPDATE_PROHIBITED])
|
||||
@domain.reload
|
||||
assert @domain.statuses.include? DomainStatus::SERVER_UPDATE_PROHIBITED
|
||||
|
||||
@domain.schedule_force_delete(type: :soft)
|
||||
@domain.reload
|
||||
|
||||
assert @domain.force_delete_scheduled?
|
||||
|
||||
perform_enqueued_jobs do
|
||||
MigrateBeforeForceDeleteStatusesJob.perform_later
|
||||
end
|
||||
|
||||
@domain.reload
|
||||
|
||||
assert @domain.force_delete_domain_statuses_history.include? DomainStatus::SERVER_UPDATE_PROHIBITED
|
||||
end
|
||||
end
|
22
test/jobs/migrate_statuses_to_domain_history_job_test.rb
Normal file
22
test/jobs/migrate_statuses_to_domain_history_job_test.rb
Normal file
|
@ -0,0 +1,22 @@
|
|||
require 'test_helper'
|
||||
|
||||
class MigrateBeforeForceDeleteStatusesJobTest < ActiveJob::TestCase
|
||||
setup do
|
||||
travel_to Time.zone.parse('2010-07-05')
|
||||
@domain = domains(:shop)
|
||||
end
|
||||
|
||||
def test_migrate_statuses_to_domain_history_job
|
||||
@domain.update(statuses: [DomainStatus::SERVER_UPDATE_PROHIBITED])
|
||||
@domain.reload
|
||||
assert @domain.statuses.include? DomainStatus::SERVER_UPDATE_PROHIBITED
|
||||
|
||||
perform_enqueued_jobs do
|
||||
MigrateStatusesToDomainHistoryJob.perform_later
|
||||
end
|
||||
|
||||
@domain.reload
|
||||
|
||||
assert @domain.admin_store_statuses_history.include? DomainStatus::SERVER_UPDATE_PROHIBITED
|
||||
end
|
||||
end
|
Loading…
Add table
Add a link
Reference in a new issue