123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 |
- 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
- allow(agent).to receive(:second_precision_enabled) { true }
- agent.options['schedule'] = '*/15 * * * * *'
- expect(agent).to be_valid
- allow(agent).to receive(: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
- # Currently agent.options[]= is not detected
- agent.options = {
- 'action' => 'run',
- 'schedule' => '*/5 * * * *'
- }
- agent.save
- expect(agent.memory['scheduled_at']).to be_nil
- end
- end
- end
|