Sha256: 133c658d8a203f4fe12bad494a2b3214fc74428e3a3e531ae1c4c8b62b678cad

Contents?: true

Size: 1.41 KB

Versions: 6

Compression:

Stored size: 1.41 KB

Contents

require 'spec_helper'

RSpec.describe SidekiqUniqueJobs::QueueLockTimeoutCalculator do
  shared_context 'generic unscheduled job' do
    subject { described_class.new('class' => 'JustAWorker') }
  end

  describe 'public api' do
    it_behaves_like 'generic unscheduled job' do
      it { is_expected.to respond_to(:seconds) }
      it { is_expected.to respond_to(:queue_lock_expiration) }
    end
  end

  describe '.for_item' do
    it 'initializes a new calculator' do
      expect(described_class).to receive(:new).with('WAT')
      described_class.for_item('WAT')
    end
  end

  describe '#seconds' do
    subject { described_class.new(nil) }

    before do
      allow(subject).to receive(:time_until_scheduled).and_return(10)
      allow(subject).to receive(:queue_lock_expiration).and_return(9)
    end
    its(:seconds) { is_expected.to eq(19) }
  end

  describe '#queue_lock_expiration' do
    context 'using default unique_expiration' do
      subject { described_class.new(nil) }
      before { allow(subject).to receive(:worker_class_queue_lock_expiration).and_return(nil) }

      its(:queue_lock_expiration) { is_expected.to eq(1_800) }
    end

    context 'using specified sidekiq option unique_expiration' do
      subject { described_class.new(nil) }
      before { allow(subject).to receive(:worker_class_queue_lock_expiration).and_return(9) }

      its(:queue_lock_expiration) { is_expected.to eq(9) }
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
sidekiq-unique-jobs-5.0.2 spec/lib/sidekiq_unique_jobs/queue_lock_timeout_calculator_spec.rb
sidekiq-unique-jobs-5.0.1 spec/lib/sidekiq_unique_jobs/queue_lock_timeout_calculator_spec.rb
sidekiq-unique-jobs-5.0.0 spec/lib/sidekiq_unique_jobs/queue_lock_timeout_calculator_spec.rb
sidekiq-unique-jobs-4.0.18 spec/lib/sidekiq_unique_jobs/queue_lock_timeout_calculator_spec.rb
sidekiq-unique-jobs-4.0.17 spec/lib/sidekiq_unique_jobs/queue_lock_timeout_calculator_spec.rb
sidekiq-unique-jobs-4.0.16 spec/lib/sidekiq_unique_jobs/queue_lock_timeout_calculator_spec.rb