mirror of
https://github.com/Fishwaldo/huginn.git
synced 2025-03-15 19:31:26 +00:00
Add some specs for our Rufus::Scheduler extension.
This commit is contained in:
parent
9a7f7fe6b6
commit
51f8c8b805
1 changed files with 57 additions and 0 deletions
57
spec/lib/huginn_scheduler_spec.rb
Normal file
57
spec/lib/huginn_scheduler_spec.rb
Normal 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
|
Loading…
Add table
Reference in a new issue