Sha256: 407ba665d5935fb83f062577a6f18c171964de4064eaf4e96a8675a765477255

Contents?: true

Size: 1.75 KB

Versions: 2

Compression:

Stored size: 1.75 KB

Contents

require 'spec_helper'

describe Rekiq::Scheduler do
  describe '#schedule' do
    context 'given existing worker' do
      class SchedulerTestWorker
        include Sidekiq::Worker
      end

      let(:worker) { SchedulerTestWorker.name }
      let(:queue)  { 'test_queue' }
      let(:args)   { [] }

      context 'given valid job' do
        let(:job) { build(:job) }

        context 'given not nil string as addon argument' do
          let(:addon) { { 'random_key' => Time.now.to_f } }

          context 'given initialized scheduler instance' do
            let(:scheduler) do
              Rekiq::Scheduler.new(worker, queue, args, job, addon)
            end
            before { @jid, @work_time = scheduler.schedule }

            it 'creates sidekiq job' do
              expect(SchedulerTestWorker.jobs.count).to eq(1)
            end

            it 'add key rq:addon in msg' do
              expect(SchedulerTestWorker.jobs[0].key?('rq:addon')).to eq(true)
            end

            it 'sets addon value in key rq:addon' do
              expect(SchedulerTestWorker.jobs[0]['rq:addon']).to eq(addon)
            end
          end
        end

        context 'give nil as addon argument' do
          let(:addon) { nil }

          context 'given initialized scheduler instance' do
            let(:scheduler) do
              Rekiq::Scheduler.new(worker, queue, args, job, addon)
            end
            before { @jid, @work_time = scheduler.schedule }

            it 'creates sidekiq job' do
              expect(SchedulerTestWorker.jobs.count).to eq(1)
            end

            it 'does not set key addon in msg' do
              expect(SchedulerTestWorker.jobs[0].key?('addon')).to eq(false)
            end
          end
        end
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
rekiq-0.5.0 spec/rekiq/scheduler_spec.rb
rekiq-0.0.1 spec/rekiq/scheduler_spec.rb