diff --git a/lib/tasks/dev.rake b/lib/tasks/dev.rake deleted file mode 100644 index e4c120a8d..000000000 --- a/lib/tasks/dev.rake +++ /dev/null @@ -1,183 +0,0 @@ -namespace :dev do - desc 'Generates dummy data in development environment' \ - ' (options: [random] for random data generation - slowest)' - - task :prime, [:random] => :environment do |t, args| - abort 'Production environment is not supported' if Rails.env.production? - - include FactoryBot::Syntax::Methods - - PaperTrail.enabled = false - Domain.paper_trail_on! - Contact.paper_trail_on! - - with_random_data = args[:random].present? - - def create_domain(name:, registrar:, registrant:, account:, price:, reg_time:) - duration = price.duration.sub('mons', 'months').split("\s") - period = duration.first.to_i - period_unit = duration.second[0] - - create(:domain, - name: name, - period: period, - period_unit: period_unit, - registered_at: reg_time, - expire_time: reg_time + period.send(duration.second.to_sym), - created_at: reg_time, - updated_at: reg_time, - registrar: registrar, - registrant: registrant) - - create(:account_activity, - account: account, - sum: -price.price.amount, - activity_type: AccountActivity::CREATE, - created_at: reg_time, - updated_at: reg_time, - price: price) - end - - def generate_default_data - create(:admin_user, username: 'test', password: 'testtest', password_confirmation: 'testtest') - - zone = create(:zone, origin: 'test') - registrar = create(:registrar, name: 'test') - registrant = create(:registrant, name: 'test', registrar: registrar) - - account = create(:account, registrar: registrar, balance: 1_000_000) - api_user = create(:api_user, username: 'test', password: 'testtest', registrar: registrar) - - epp_session = EppSession.new - epp_session.session_id = 'test' - epp_session.user = api_user - epp_session.save! - - domain_counter = 1.step - - Billing::Price.durations.each do |duration| - Billing::Price.operation_categories.each do |operation_category| - price = create(:price, - price: Money.from_amount(duration.to_i * 10), - valid_from: Time.zone.now - rand(1).months, - valid_to: Time.zone.now + rand(1).months, - duration: duration, - operation_category: operation_category, - zone: zone) - - next if operation_category == 'renew' - - (rand(3) + 1).times do - create_domain(name: "test#{domain_counter.next}.test", - registrar: registrar, - registrant: registrant, - account: account, - price: price, - reg_time: 1.month.ago) - end - - (rand(3) + 1).times do - create_domain(name: "test#{domain_counter.next}.test", - registrar: registrar, - registrant: registrant, - account: account, - price: price, - reg_time: Time.zone.now) - end - end - end - - create_domain(name: 'test.test', - registrar: registrar, - registrant: registrant, - account: account, - price: Billing::Price.first, - reg_time: Time.zone.now) - end - - def generate_random_data - zone_count = 10 - admin_user_count = 5 - registrar_count = 50 - api_user_count = 10 - registrant_count = 50 - domain_count = 50 - registrars = [] - registrants = [] - zones = [] - registrant_names = [ - 'John Doe', - 'John Roe', - 'Jane Doe', - 'Jane Roe', - 'John Smith', - ] - - zone_count.times do - origin = SecureRandom.hex[0..(rand(5) + 1)] - zones << create(:zone, origin: origin) - end - - zone_origins = zones.collect { |zone| zone.origin } - - admin_user_count.times do - uid = SecureRandom.hex[0..(rand(5) + 1)] - create(:admin_user, username: "test#{uid}", password: 'testtest', password_confirmation: 'testtest') - end - - registrar_count.times do - uid = SecureRandom.hex[0..(rand(5) + 1)] - registrars << create(:registrar, name: "Acme Ltd. #{uid}") - end - - registrars.each do |registrar| - create(:account, registrar: registrar, balance: rand(99999)) - - api_user_count.times do |i| - create(:api_user, username: "test#{registrar.id}#{i}", password: 'testtest', registrar: registrar) - end - - registrant_count.times do |i| - registrants << create(:registrant, name: registrant_names.sample, registrar: registrar) - end - - domain_count.times do |i| - name = "test#{registrar.id}#{i}#{rand(99999)}.#{zone_origins.sample}" - period = rand(3) + 1 - - create(:domain, - name: name, - period: period, - period_unit: 'y', - registered_at: Time.zone.now, - expire_time: Time.zone.now + period.years, - registrar: registrar, - registrant: registrants.sample) - end - end - - zones.each do |zone| - Billing::Price.durations.each do |duration| - Billing::Price.operation_categories.each do |operation_category| - create(:price, - price: Money.from_amount(rand(10) + 1), - valid_from: Time.zone.now.beginning_of_day, - valid_to: Time.zone.now + (rand(10) + 1).years, - duration: duration, - operation_category: operation_category, - zone: zone) - end - end - end - end - - Setting.api_ip_whitelist_enabled = false - Setting.address_processing = false - Setting.registrar_ip_whitelist_enabled = false - - ActiveRecord::Base.transaction do - generate_default_data - generate_random_data if with_random_data - end - end -end diff --git a/test/fixtures/users.yml b/test/fixtures/users.yml index b20bd8a83..494cadd24 100644 --- a/test/fixtures/users.yml +++ b/test/fixtures/users.yml @@ -18,6 +18,7 @@ api_goodnames: admin: username: test + encrypted_password: <%= Devise::Encryptor.digest(AdminUser, 'testtest') %> type: AdminUser country_code: US roles: