Corrected tests

This commit is contained in:
Sergei Tsoganov 2023-04-06 21:24:55 +03:00
parent 4bf656f425
commit cc4d4d0e1f
16 changed files with 56 additions and 41 deletions

View file

@ -4,7 +4,8 @@ module Admin
def index def index
@q = Account.includes(:registrar).ransack(params[:q]) @q = Account.includes(:registrar).ransack(params[:q])
@accounts = @q.result.page(params[:page]) @result = @q.result
@accounts = @result.page(params[:page])
@accounts = @accounts.per(params[:results_per_page]) if paginate? @accounts = @accounts.per(params[:results_per_page]) if paginate?
render_by_format('admin/accounts/index', 'accounts') render_by_format('admin/accounts/index', 'accounts')

View file

@ -15,7 +15,8 @@ module Admin
normalize_search_parameters do normalize_search_parameters do
@q = @auctions.ransack(PartialSearchFormatter.format(params[:q])) @q = @auctions.ransack(PartialSearchFormatter.format(params[:q]))
@auctions = @q.result.page(params[:page]) @result = @q.result
@auctions = @result.page(params[:page])
end end
@auctions = @auctions.per(params[:results_per_page_auction]) if params[:results_per_page_auction].to_i.positive? @auctions = @auctions.per(params[:results_per_page_auction]) if params[:results_per_page_auction].to_i.positive?

View file

@ -26,7 +26,7 @@ module Admin
respond_to do |format| respond_to do |format|
format.html { render page } format.html { render page }
format.csv do format.csv do
raw_csv = CsvGenerator.generate_csv(@q.result(distinct: true)) raw_csv = CsvGenerator.generate_csv(@result)
send_data raw_csv, send_data raw_csv,
filename: "#{filename}_#{Time.zone.now.to_formatted_s(:number)}.csv", filename: "#{filename}_#{Time.zone.now.to_formatted_s(:number)}.csv",
type: "#{Mime[:csv]}; charset=utf-8" type: "#{Mime[:csv]}; charset=utf-8"

View file

@ -6,7 +6,8 @@ module Admin
params[:q] ||= {} params[:q] ||= {}
domains = BlockedDomain.all.order(:name) domains = BlockedDomain.all.order(:name)
@q = domains.ransack(PartialSearchFormatter.format(params[:q])) @q = domains.ransack(PartialSearchFormatter.format(params[:q]))
@domains = @q.result.page(params[:page]) @result = @q.result
@domains = @result.page(params[:page])
@domains = @domains.per(params[:results_per_page]) if params[:results_per_page].to_i.positive? @domains = @domains.per(params[:results_per_page]) if params[:results_per_page].to_i.positive?
render_by_format('admin/blocked_domains/index', 'blocked_domains') render_by_format('admin/blocked_domains/index', 'blocked_domains')

View file

@ -10,8 +10,8 @@ module Admin
search_params = PartialSearchFormatter.format(fix_date_params) search_params = PartialSearchFormatter.format(fix_date_params)
versions = Version::ContactVersion.includes(:item).order(created_at: :desc, id: :desc) versions = Version::ContactVersion.includes(:item).order(created_at: :desc, id: :desc)
@q = versions.ransack(polymorphic_association(search_params)) @q = versions.ransack(polymorphic_association(search_params))
@result = @q.result
@versions = @q.result.page(params[:page]) @versions = @result.page(params[:page])
@versions = @versions.per(params[:results_per_page]) if params[:results_per_page].to_i.positive? @versions = @versions.per(params[:results_per_page]) if params[:results_per_page].to_i.positive?
render_by_format('admin/contact_versions/index', 'contact_history') render_by_format('admin/contact_versions/index', 'contact_history')
@ -24,7 +24,7 @@ module Admin
@versions_map = @versions.all.map(&:id) @versions_map = @versions.all.map(&:id)
# what we do is calc amount of results until needed version # what we do is calc amount of results until needed version
# then we cacl which page it is # then we calc which page it is
if params[:page].blank? if params[:page].blank?
counter = @versions_map.index(@version.id) + 1 counter = @versions_map.index(@version.id) + 1
page = counter / per_page page = counter / per_page

View file

@ -19,7 +19,8 @@ module Admin
normalize_search_parameters do normalize_search_parameters do
@q = contacts.ransack(PartialSearchFormatter.format(search_params)) @q = contacts.ransack(PartialSearchFormatter.format(search_params))
@contacts = @q.result.distinct.page(params[:page]) @result = @q.result.distinct
@contacts = @result.page(params[:page])
end end
@contacts = @contacts.per(params[:results_per_page]) if params[:results_per_page].to_i.positive? @contacts = @contacts.per(params[:results_per_page]) if params[:results_per_page].to_i.positive?

View file

@ -57,7 +57,8 @@ module Admin
def sortable_dispute_query_for(disputes, query, closed: false) def sortable_dispute_query_for(disputes, query, closed: false)
@q = disputes.order(:domain_name).ransack(query) @q = disputes.order(:domain_name).ransack(query)
disputes = @q.result.page(closed ? params[:closed_page] : params[:page]) @result = @q.result
disputes = @result.page(closed ? params[:closed_page] : params[:page])
return disputes.per(params[:results_per_page]) if params[:results_per_page].present? return disputes.per(params[:results_per_page]) if params[:results_per_page].present?
disputes disputes

View file

@ -47,8 +47,8 @@ module Admin
versions = Version::DomainVersion.includes(:item).where(where_s).order(created_at: :desc, id: :desc) versions = Version::DomainVersion.includes(:item).where(where_s).order(created_at: :desc, id: :desc)
@q = versions.ransack(fix_date_params) @q = versions.ransack(fix_date_params)
@result = @q.result
@versions = @q.result.page(params[:page]) @versions = @result.page(params[:page])
@versions = @versions.per(params[:results_per_page]) if params[:results_per_page].to_i.positive? @versions = @versions.per(params[:results_per_page]) if params[:results_per_page].to_i.positive?
render_by_format('admin/domain_versions/archive', 'domain_history') render_by_format('admin/domain_versions/archive', 'domain_history')

View file

@ -13,7 +13,8 @@ module Admin
normalize_search_parameters do normalize_search_parameters do
@q = domains.ransack(PartialSearchFormatter.format(params[:q])) @q = domains.ransack(PartialSearchFormatter.format(params[:q]))
@domains = @q.result(distinct: true).page(params[:page]) @result = @q.result.distinct
@domains = @result.page(params[:page])
end end
@domains = @domains.per(params[:results_per_page]) if params[:results_per_page].to_i.positive? @domains = @domains.per(params[:results_per_page]) if params[:results_per_page].to_i.positive?

View file

@ -6,9 +6,10 @@ module Admin
# rubocop:disable Metrics/MethodLength # rubocop:disable Metrics/MethodLength
def index def index
@q = ApiLog::EppLog.ransack(PartialSearchFormatter.format(params[:q])) @q = ApiLog::EppLog.ransack(PartialSearchFormatter.format(params[:q]))
@result = @q.result
@q.sorts = 'id desc' if @q.sorts.empty? @q.sorts = 'id desc' if @q.sorts.empty?
@epp_logs = @q.result @epp_logs = @result
if params[:q][:created_at_gteq].present? if params[:q][:created_at_gteq].present?
@epp_logs = @epp_logs.where("extract(epoch from created_at) >= extract(epoch from ?::timestamp)", @epp_logs = @epp_logs.where("extract(epoch from created_at) >= extract(epoch from ?::timestamp)",
Time.parse(params[:q][:created_at_gteq])) Time.parse(params[:q][:created_at_gteq]))

View file

@ -39,7 +39,8 @@ module Admin
@q = invoices.ransack(params[:q]) @q = invoices.ransack(params[:q])
@q.sorts = 'number desc' if @q.sorts.empty? @q.sorts = 'number desc' if @q.sorts.empty?
@invoices = @q.result.page(params[:page]) @result = @q.result
@invoices = @result.page(params[:page])
@invoices = @invoices.per(params[:results_per_page]) if paginate? @invoices = @invoices.per(params[:results_per_page]) if paginate?
render_by_format('admin/invoices/index', 'invoices') render_by_format('admin/invoices/index', 'invoices')

View file

@ -7,8 +7,8 @@ module Admin
def index def index
@q = ApiLog::ReppLog.ransack(PartialSearchFormatter.format(params[:q])) @q = ApiLog::ReppLog.ransack(PartialSearchFormatter.format(params[:q]))
@q.sorts = 'id desc' if @q.sorts.empty? @q.sorts = 'id desc' if @q.sorts.empty?
@result = @q.result
@repp_logs = @q.result @repp_logs = @result
if params[:q][:created_at_gteq].present? if params[:q][:created_at_gteq].present?
@repp_logs = @repp_logs.where("extract(epoch from created_at) >= extract(epoch from ?::timestamp)", @repp_logs = @repp_logs.where("extract(epoch from created_at) >= extract(epoch from ?::timestamp)",
Time.parse(params[:q][:created_at_gteq])) Time.parse(params[:q][:created_at_gteq]))

View file

@ -7,7 +7,8 @@ module Admin
params[:q] ||= {} params[:q] ||= {}
domains = ReservedDomain.all.order(:name) domains = ReservedDomain.all.order(:name)
@q = domains.ransack(PartialSearchFormatter.format(params[:q])) @q = domains.ransack(PartialSearchFormatter.format(params[:q]))
@domains = @q.result.page(params[:page]) @result = @q.result
@domains = @result.page(params[:page])
@domains = @domains.per(params[:results_per_page]) if params[:results_per_page].to_i.positive? @domains = @domains.per(params[:results_per_page]) if params[:results_per_page].to_i.positive?
render_by_format('admin/reserved_domains/index', 'reserved_domains') render_by_format('admin/reserved_domains/index', 'reserved_domains')

View file

@ -154,30 +154,30 @@ class Domain < ApplicationRecord
validates :nameservers, domain_nameserver: { validates :nameservers, domain_nameserver: {
min: -> { Setting.ns_min_count }, min: -> { Setting.ns_min_count },
max: -> { Setting.ns_max_count } max: -> { Setting.ns_max_count },
} }
validates :dnskeys, object_count: { validates :dnskeys, object_count: {
min: -> { Setting.dnskeys_min_count }, min: -> { Setting.dnskeys_min_count },
max: -> { Setting.dnskeys_max_count } max: -> { Setting.dnskeys_max_count },
} }
validates :admin_domain_contacts, object_count: { validates :admin_domain_contacts, object_count: {
min: -> { Setting.admin_contacts_min_count }, min: -> { Setting.admin_contacts_min_count },
max: -> { Setting.admin_contacts_max_count } max: -> { Setting.admin_contacts_max_count },
} }
validates :tech_domain_contacts, object_count: { validates :tech_domain_contacts, object_count: {
min: -> { Setting.tech_contacts_min_count }, min: -> { Setting.tech_contacts_min_count },
max: -> { Setting.tech_contacts_max_count } max: -> { Setting.tech_contacts_max_count },
} }
validates :nameservers, uniqueness_multi: { validates :nameservers, uniqueness_multi: {
attribute: 'hostname' attribute: 'hostname',
} }
validates :dnskeys, uniqueness_multi: { validates :dnskeys, uniqueness_multi: {
attribute: 'public_key' attribute: 'public_key',
} }
validate :validate_nameserver_ips validate :validate_nameserver_ips
@ -225,7 +225,7 @@ class Domain < ApplicationRecord
end end
def delegated_nameservers def delegated_nameservers
nameservers.select { |x| !x.hostname.end_with?(name) } nameservers.reject { |x| x.hostname.end_with?(name) }
end end
def extension_update_prohibited? def extension_update_prohibited?
@ -604,17 +604,17 @@ class Domain < ApplicationRecord
# check for deleted status # check for deleted status
statuses.each do |s| statuses.each do |s|
unless update.include? s next if update.include? s
case s
when DomainStatus::PENDING_DELETE case s
self.delete_date = nil when DomainStatus::PENDING_DELETE
when DomainStatus::SERVER_MANUAL_INZONE # removal causes server hold to set self.delete_date = nil
self.outzone_at = Time.zone.now if force_delete_scheduled? when DomainStatus::SERVER_MANUAL_INZONE # removal causes server hold to set
when DomainStatus::EXPIRED # removal causes server hold to set self.outzone_at = Time.zone.now if force_delete_scheduled?
self.outzone_at = expire_time + 15.day when DomainStatus::EXPIRED # removal causes server hold to set
when DomainStatus::SERVER_HOLD # removal causes server hold to set self.outzone_at = expire_time + 15.day
self.outzone_at = nil when DomainStatus::SERVER_HOLD # removal causes server hold to set
end self.outzone_at = nil
end end
end end
end end
@ -626,7 +626,7 @@ class Domain < ApplicationRecord
def set_pending_update def set_pending_update
if pending_update_prohibited? if pending_update_prohibited?
logger.info "DOMAIN STATUS UPDATE ISSUE ##{id}: PENDING_UPDATE not allowed to set. [#{statuses}]" logger.info "DOMAIN STATUS UPDATE ISSUE ##{id}: PENDING_UPDATE not allowed to set. [#{statuses}]"
return nil return
end end
statuses << DomainStatus::PENDING_UPDATE statuses << DomainStatus::PENDING_UPDATE
end end
@ -655,7 +655,7 @@ class Domain < ApplicationRecord
def set_pending_delete def set_pending_delete
if pending_delete_prohibited? if pending_delete_prohibited?
logger.info "DOMAIN STATUS UPDATE ISSUE ##{id}: PENDING_DELETE not allowed to set. [#{statuses}]" logger.info "DOMAIN STATUS UPDATE ISSUE ##{id}: PENDING_DELETE not allowed to set. [#{statuses}]"
return nil return
end end
statuses << DomainStatus::PENDING_DELETE statuses << DomainStatus::PENDING_DELETE
end end
@ -665,6 +665,12 @@ class Domain < ApplicationRecord
self.outzone_at = Time.current self.outzone_at = Time.current
end end
def manage_automatic_statuses
check_nameservers
check_statuses
check_pending_delete
end
def manage_automatic_statuses def manage_automatic_statuses
unless self.class.nameserver_required? unless self.class.nameserver_required?
deactivate if nameservers.reject(&:marked_for_destruction?).empty? deactivate if nameservers.reject(&:marked_for_destruction?).empty?
@ -814,7 +820,7 @@ class Domain < ApplicationRecord
end end
def self.uses_zone?(zone) def self.uses_zone?(zone)
exists?(["name ILIKE ?", "%.#{zone.origin}"]) exists?(['name ILIKE ?', "%.#{zone.origin}"])
end end
def self.swap_elements(array, indexes) def self.swap_elements(array, indexes)

View file

@ -14,7 +14,7 @@ class Version::DomainVersion < PaperTrail::Version
domain.registrant_name, domain.registrant_name,
domain.registrar, domain.registrar,
event, event,
created_at.to_formatted_s(:db) created_at.to_formatted_s(:db),
] ]
end end

View file

@ -1,2 +1,2 @@
Domain,Registrant,Valid to,Registrar,Created at,Statuses,Contacts code,Force delete date,Force delete data Domain,Registrant,Valid to,Registrar,Created at,Statuses,Admin. contacts,Tech. contacts,Nameservers,Force delete date,Force delete data
metro.test,Jack,2010-07-05 00:00:00,Good Names,2010-07-05 07:30:00,[],"[""jack-001"", ""jack-001""]",, metro.test,"Jack, 12345678 [US org]",2010-07-05 00:00:00,Good Names,2010-07-05 07:30:00,[],"[""Jack, jack-001, 12345678 [US org]""]","[""Jack, jack-001, 12345678 [US org]""]","[""ns1.bestnames.test""]",,

1 Domain Registrant Valid to Registrar Created at Statuses Contacts code Admin. contacts Tech. contacts Nameservers Force delete date Force delete data
2 metro.test Jack Jack, 12345678 [US org] 2010-07-05 00:00:00 Good Names 2010-07-05 07:30:00 [] ["jack-001", "jack-001"] ["Jack, jack-001, 12345678 [US org]"] ["Jack, jack-001, 12345678 [US org]"] ["ns1.bestnames.test"]