Add some specs for our Rufus::Scheduler extension.

This commit is contained in:
Akinori MUSHA 2014-09-03 13:20:18 +09:00
parent 9a7f7fe6b6
commit 51f8c8b805

View file

@ -0,0 +1,57 @@
require 'spec_helper'
require 'huginn_scheduler'
describe Rufus::Scheduler do
before :each do
@taoe, Thread.abort_on_exception = Thread.abort_on_exception, false
@oso, @ose, $stdout, $stderr = $stdout, $stderr, StringIO.new, StringIO.new
@scheduler = Rufus::Scheduler.new
stub.any_instance_of(Agents::SchedulerAgent).second_precision_enabled { true }
@agent1 = Agents::SchedulerAgent.new(name: 'Scheduler 1', options: { schedule: '*/1 * * * * *' }).tap { |a|
a.user = users(:bob)
a.save!
}
@agent2 = Agents::SchedulerAgent.new(name: 'Scheduler 2', options: { schedule: '*/1 * * * * *' }).tap { |a|
a.user = users(:bob)
a.save!
}
end
after :each do
@scheduler.shutdown
Thread.abort_on_exception = @taoe
$stdout, $stderr = @oso, @ose
end
describe '#schedule_scheduler_agents' do
it 'registers active SchedulerAgents' do
@scheduler.schedule_scheduler_agents
expect(@scheduler.scheduler_agent_jobs.map(&:scheduler_agent)).to eq([@agent1, @agent2])
end
it 'unregisters disabled SchedulerAgents' do
@scheduler.schedule_scheduler_agents
@agent1.update!(disabled: true)
@scheduler.schedule_scheduler_agents
expect(@scheduler.scheduler_agent_jobs.map(&:scheduler_agent)).to eq([@agent2])
end
it 'unregisters deleted SchedulerAgents' do
@scheduler.schedule_scheduler_agents
@agent2.delete
@scheduler.schedule_scheduler_agents
expect(@scheduler.scheduler_agent_jobs.map(&:scheduler_agent)).to eq([@agent1])
end
end
end