1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 |
- require 'rails_helper'
- describe Agents::SchedulerAgent do
- let(:valid_params) {
- {
- name: 'Example',
- options: {
- 'action' => 'run',
- 'schedule' => '0 * * * *'
- },
- }
- }
- let(:agent) {
- described_class.create!(valid_params) { |agent|
- agent.user = users(:bob)
- }
- }
- it_behaves_like AgentControllerConcern
- describe "validation" do
- it "should validate schedule" do
- expect(agent).to be_valid
- agent.options.delete('schedule')
- expect(agent).not_to be_valid
- agent.options['schedule'] = nil
- expect(agent).not_to be_valid
- agent.options['schedule'] = ''
- expect(agent).not_to be_valid
- agent.options['schedule'] = '0'
- expect(agent).not_to be_valid
- agent.options['schedule'] = '*/15 * * * * * *'
- expect(agent).not_to be_valid
- agent.options['schedule'] = '*/1 * * * *'
- expect(agent).to be_valid
- agent.options['schedule'] = '*/1 * * *'
- expect(agent).not_to be_valid
- stub(agent).second_precision_enabled { true }
- agent.options['schedule'] = '*/15 * * * * *'
- expect(agent).to be_valid
- stub(agent).second_precision_enabled { false }
- agent.options['schedule'] = '*/10 * * * * *'
- expect(agent).not_to be_valid
- agent.options['schedule'] = '5/30 * * * * *'
- expect(agent).not_to be_valid
- agent.options['schedule'] = '*/15 * * * * *'
- expect(agent).to be_valid
- agent.options['schedule'] = '15,45 * * * * *'
- expect(agent).to be_valid
- agent.options['schedule'] = '0 * * * * *'
- expect(agent).to be_valid
- end
- end
- describe "save" do
- it "should delete memory['scheduled_at'] if and only if options is changed" do
- time = Time.now.to_i
- agent.memory['scheduled_at'] = time
- agent.save
- expect(agent.memory['scheduled_at']).to eq(time)
- agent.memory['scheduled_at'] = time
-
- agent.options = {
- 'action' => 'run',
- 'schedule' => '*/5 * * * *'
- }
- agent.save
- expect(agent.memory['scheduled_at']).to be_nil
- end
- end
- describe "check!" do
- it "should control targets" do
- stub(agent).control!.once { nil }
- agent.check
- end
- end
- end
|