travis-api/spec/lib/services/find_jobs_spec.rb
Aakriti Gupta 65f1a29d86 Move travis-core files from /vendor to /lib.
- Re-factor
- Remove code for notifications
- Remove addons
- Remove travis-core gem.
- Ignore logs directory only
- Move core tests to spec/lib
2016-07-20 11:22:25 +02:00

65 lines
2.2 KiB
Ruby

describe Travis::Services::FindJobs do
let(:repo) { Factory(:repository) }
let!(:job) { Factory(:test, :repository => repo, :state => :created, :queue => 'builds.linux') }
let(:service) { described_class.new(stub('user'), params) }
attr_reader :params
describe 'run' do
it 'finds jobs on the given queue' do
@params = { :queue => 'builds.linux' }
service.run.should include(job)
end
it 'does not find jobs on other queues' do
@params = { :queue => 'builds.nodejs' }
service.run.should_not include(job)
end
it 'finds jobs by a given list of ids' do
@params = { :ids => [job.id] }
service.run.should == [job]
end
it 'finds jobs by state' do
build = Factory(:build)
Job::Test.destroy_all
started = Factory(:test, :state => :started, :source => build)
passed = Factory(:test, :state => :passed, :source => build)
created = Factory(:test, :state => :created, :source => build)
@params = { :state => ['created', 'passed'] }
service.run.sort_by(&:id).should == [created, passed].sort_by(&:id)
end
it 'finds jobs that are about to run without any args' do
build = Factory(:build)
Job::Test.destroy_all
started = Factory(:test, :state => :started, :source => build)
queued = Factory(:test, :state => :queued, :source => build)
passed = Factory(:test, :state => :passed, :source => build)
created = Factory(:test, :state => :created, :source => build)
received = Factory(:test, :state => :received, :source => build)
@params = {}
service.run.sort_by(&:id).should == [started, queued, created, received].sort_by(&:id)
end
end
describe 'updated_at' do
it 'returns the latest updated_at time' do
skip 'rack cache is disabled, so not much need for caching now'
@params = { :queue => 'builds.linux' }
Job.delete_all
Factory(:test, :repository => repo, :state => :queued, :queue => 'build.common', :updated_at => Time.now - 1.hour)
Factory(:test, :repository => repo, :state => :queued, :queue => 'build.common', :updated_at => Time.now)
service.updated_at.to_s.should == Time.now.to_s
end
end
end