Sha256: 078631aa22f793babf06d1274cd66196544a6177a19dd63164c97eb62c214e39

Contents?: true

Size: 1.78 KB

Versions: 1

Compression:

Stored size: 1.78 KB

Contents

describe Sidekiq::QueueMetrics::JobSuccessMonitor do
  let(:redis_connection) { Redis.new }

  let(:worker) { double(:worker) }
  let(:job) { double(:job) }

  before(:all) do
    Sidekiq.redis = ConnectionPool.new { redis_connection }
  end

  before { redis_connection.flushall }

  describe '#call' do
    let(:monitor) { Sidekiq::QueueMetrics::JobSuccessMonitor.new }

    context 'when stats does not exist' do
      it 'should create stats key and add stats of queue' do
        monitor.call(worker, job, 'mailer_queue')

        expect(
          Sidekiq::QueueMetrics::Storage.get_stats('mailer_queue')
        ).to eq({ 'processed' => 1 })
      end
    end

    context 'when stats exists' do
      it 'should create a new queue when it does not exist' do
        Sidekiq::QueueMetrics::Storage.increment_stat('mailer_queue', 'processed')

        monitor.call(worker, job, 'job_queue')

        expect(
          Sidekiq::QueueMetrics::Storage.get_stats('mailer_queue')
        ).to eq({ 'processed' => 1 })

        expect(
          Sidekiq::QueueMetrics::Storage.get_stats('job_queue')
        ).to eq({ 'processed' => 1 })
      end

      it 'should update existing queue' do
        Sidekiq::QueueMetrics::Storage.increment_stat('mailer_queue', 'processed')

        monitor.call(worker, job, 'mailer_queue')

        expect(
          Sidekiq::QueueMetrics::Storage.get_stats('mailer_queue')
        ).to eq({ 'processed' => 2 })
      end

      it 'should create failed counter when other counters exists' do
        Sidekiq::QueueMetrics::Storage.increment_stat('mailer_queue', 'failed')

        monitor.call(worker, job, 'mailer_queue')

        expect(
          Sidekiq::QueueMetrics::Storage.get_stats('mailer_queue')
        ).to eq({ 'processed' => 1, 'failed' => 1 })
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
sidekiq_queue_metrics-3.0.0 spec/lib/sidekiq_queue_metrics/monitor/job_success_monitor_spec.rb