Sha256: bf3320c2a74cf5221f6fd1970c3ac9ce125092e4875ca1fd40ec2270066fd819

Contents?: true

Size: 1.26 KB

Versions: 1

Compression:

Stored size: 1.26 KB

Contents

require_relative '../../../app/models/resque_web/plugins/resque_scheduler/job_finder/working_job_finder'

describe ResqueWeb::Plugins::ResqueScheduler::JobFinder::WorkingJobFinder do

  before do
    Resque.enqueue(OngoingJob)
    @worker_thread = Thread.new do
      worker = Resque::Worker.new '*'
      worker.term_child = 1
      worker.work 0.1
    end
    sleep 0.2
  end

  after do
    @worker_thread.kill
  end

  it 'finds a working job when the search term matches' do
    finder = ResqueWeb::Plugins::ResqueScheduler::JobFinder::WorkingJobFinder.new('going')
    expect(finder.find_jobs.first['class']).to eq 'OngoingJob'
  end

  it 'does not find a working job when the search term does not match' do
    finder = ResqueWeb::Plugins::ResqueScheduler::JobFinder::WorkingJobFinder.new('donkey')
    expect(finder.find_jobs).to be_empty
  end

  it 'adds the queue name to the returned jobs' do
    finder = ResqueWeb::Plugins::ResqueScheduler::JobFinder::WorkingJobFinder.new('going')
    expect(finder.find_jobs.first['queue']).to eq 'quick'
  end

  it 'sets the where_at value to "working" for the returned jobs' do
    finder = ResqueWeb::Plugins::ResqueScheduler::JobFinder::WorkingJobFinder.new('going')
    expect(finder.find_jobs.first['where_at']).to eq 'working'
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
resque-scheduler-web-0.0.1 spec/models/job_finder/working_job_finder_spec.rb