Added tests for scheduler fields error_message and status.

This commit is contained in:
Jens Pfeifer 2017-09-07 15:17:06 +00:00
parent 63aa9142af
commit 80199a61b5
2 changed files with 43 additions and 0 deletions

View file

@ -0,0 +1,25 @@
FactoryGirl.define do
sequence :test_scheduler_name do |n|
"Testscheduler#{n}"
end
end
FactoryGirl.define do
factory :scheduler do
name { generate(:test_scheduler_name) }
last_run { Time.zone.now }
pid 1337
prio 1
status 'ok'
active true
period { 10.minutes }
running false
note 'test'
updated_by_id 1
created_by_id 1
created_at 1
updated_at 1
add_attribute(:method) { 'test' }
end
end

View file

@ -26,6 +26,24 @@ RSpec.describe Scheduler do
SpecSpace.send(:remove_const, :DelayedJobBackend)
end
describe '._start_job' do
it 'sets error status/message for failed jobs' do
job = create(:scheduler)
described_class._start_job(job)
expect(job.status).to eq 'error'
expect(job.active).to be false
expect(job.error_message).to be_present
end
it 'executes job that is expected to succeed' do
expect(Setting).to receive(:reload)
job = create(:scheduler, method: 'Setting.reload')
described_class._start_job(job)
expect(job.status).to eq 'ok'
end
end
describe '.cleanup' do
it 'gets called by .threads' do