diff --git a/app/jobs/dispute_status_update_job.rb b/app/jobs/dispute_status_update_job.rb index 81c1fdeab..547d56868 100644 --- a/app/jobs/dispute_status_update_job.rb +++ b/app/jobs/dispute_status_update_job.rb @@ -1,12 +1,14 @@ class DisputeStatusUpdateJob < Que::Job - def run + def run(logger: Logger.new(STDOUT)) + @logger = logger + @backlog = { 'activated': 0, 'closed': 0, 'activate_fail': [], 'close_fail': [] } .with_indifferent_access close_disputes activate_disputes - logger.info "DisputeStatusUpdateJob - All done. Closed #{@backlog['closed']} and " \ + @logger.info "DisputeStatusUpdateJob - All done. Closed #{@backlog['closed']} and " \ "activated #{@backlog['activated']} disputes." show_failed_disputes unless @backlog['activate_fail'].empty? && @backlog['close_fail'].empty? @@ -14,7 +16,7 @@ class DisputeStatusUpdateJob < Que::Job def close_disputes disputes = Dispute.where(closed: nil).where('expires_at < ?', Time.zone.today).all - logger.info "DisputeStatusUpdateJob - Found #{disputes.count} closable disputes" + @logger.info "DisputeStatusUpdateJob - Found #{disputes.count} closable disputes" disputes.each do |dispute| process_dispute(dispute, closing: true) end @@ -22,7 +24,7 @@ class DisputeStatusUpdateJob < Que::Job def activate_disputes disputes = Dispute.where(closed: nil, starts_at: Time.zone.today).all - logger.info "DisputeStatusUpdateJob - Found #{disputes.count} activatable disputes" + @logger.info "DisputeStatusUpdateJob - Found #{disputes.count} activatable disputes" disputes.each do |dispute| process_dispute(dispute, closing: false) @@ -38,28 +40,24 @@ class DisputeStatusUpdateJob < Que::Job def create_backlog_entry(dispute:, intent:, successful:) if successful @backlog["#{intent}d"] += 1 - logger.info "DisputeStatusUpdateJob - #{intent}d dispute " \ + @logger.info "DisputeStatusUpdateJob - #{intent}d dispute " \ " for '#{dispute.domain_name}'" else @backlog["#{intent}_fail"] << dispute.id - logger.info 'DisputeStatusUpdateJob - Failed to' \ + @logger.info 'DisputeStatusUpdateJob - Failed to' \ "#{intent} dispute for '#{dispute.domain_name}'" end end def show_failed_disputes if @backlog['close_fail'].any? - logger.info('DisputeStatusUpdateJob - Failed to close disputes with Ids:' \ + @logger.info('DisputeStatusUpdateJob - Failed to close disputes with Ids:' \ "#{@backlog['close_fail']}") end return unless @backlog['activate_fail'].any? - logger.info('DisputeStatusUpdateJob - Failed to activate disputes with Ids:' \ + @logger.info('DisputeStatusUpdateJob - Failed to activate disputes with Ids:' \ "#{@backlog['activate_fail']}") end - - def logger - Logger.new(STDOUT) - end end diff --git a/test/jobs/dispute_status_update_job_test.rb b/test/jobs/dispute_status_update_job_test.rb index 64c7e000e..e70e58c04 100644 --- a/test/jobs/dispute_status_update_job_test.rb +++ b/test/jobs/dispute_status_update_job_test.rb @@ -3,17 +3,18 @@ require "test_helper" class DisputeStatusUpdateJobTest < ActiveSupport::TestCase setup do travel_to Time.zone.parse('2010-10-05') + @logger = Rails.logger end def test_nothing_is_raised assert_nothing_raised do - DisputeStatusUpdateJob.run + DisputeStatusUpdateJob.run(logger: @logger) end end def test_whois_data_added_when_dispute_activated dispute = disputes(:future) - DisputeStatusUpdateJob.run + DisputeStatusUpdateJob.run(logger: @logger) whois_record = Whois::Record.find_by(name: dispute.domain_name) assert whois_record.present? @@ -24,7 +25,7 @@ class DisputeStatusUpdateJobTest < ActiveSupport::TestCase dispute = disputes(:active) dispute.update!(starts_at: Time.zone.today - 3.years - 1.day) - DisputeStatusUpdateJob.run + DisputeStatusUpdateJob.run(logger: @logger) dispute.reload assert dispute.closed @@ -36,7 +37,7 @@ class DisputeStatusUpdateJobTest < ActiveSupport::TestCase def test_registered_domain_whois_data_is_added Dispute.create(domain_name: 'shop.test', starts_at: '2010-07-05') travel_to Time.zone.parse('2010-07-05') - DisputeStatusUpdateJob.run + DisputeStatusUpdateJob.run(logger: @logger) whois_record = Whois::Record.find_by(name: 'shop.test') assert_includes whois_record.json['status'], 'disputed' @@ -61,7 +62,7 @@ class DisputeStatusUpdateJobTest < ActiveSupport::TestCase # Dispute status is removed night time day after it's ended travel_to Time.zone.parse('2010-07-05') + 3.years + 1.day - DisputeStatusUpdateJob.run + DisputeStatusUpdateJob.run(logger: @logger) whois_record.reload assert_not whois_record.json['status'].include? 'disputed'