Commentout check_cron_frequency
This commit is contained in:
parent
1bd5494942
commit
97cc677736
|
@ -13,30 +13,32 @@ module Ci
|
|||
validates :cron, cron: true, presence: true
|
||||
validates :cron_time_zone, presence: true
|
||||
validates :ref, ref: true, presence: true
|
||||
validate :check_cron_frequency
|
||||
# validate :check_cron_frequency
|
||||
|
||||
after_create :schedule_next_run!
|
||||
|
||||
def schedule_next_run!
|
||||
next_time = Ci::CronParser.new(cron, cron_time_zone).next_time_from(Time.now)
|
||||
|
||||
if next_time.present? && !less_than_1_hour_from_now?(next_time)
|
||||
# if next_time.present? && !less_than_1_hour_from_now?(next_time)
|
||||
if next_time.present?
|
||||
update!(next_run_at: next_time)
|
||||
end
|
||||
end
|
||||
|
||||
private
|
||||
# private
|
||||
|
||||
def less_than_1_hour_from_now?(time)
|
||||
((time - Time.now).abs < 1.hour) ? true : false
|
||||
end
|
||||
# def less_than_1_hour_from_now?(time)
|
||||
# puts "diff: #{(time - Time.now).abs.inspect}"
|
||||
# ((time - Time.now).abs < 1.hour) ? true : false
|
||||
# end
|
||||
|
||||
def check_cron_frequency
|
||||
next_time = Ci::CronParser.new(cron, cron_time_zone).next_time_from(Time.now)
|
||||
# def check_cron_frequency
|
||||
# next_time = Ci::CronParser.new(cron, cron_time_zone).next_time_from(Time.now)
|
||||
|
||||
if less_than_1_hour_from_now?(next_time)
|
||||
self.errors.add(:cron, " can not be less than 1 hour")
|
||||
end
|
||||
end
|
||||
# if less_than_1_hour_from_now?(next_time)
|
||||
# self.errors.add(:cron, " can not be less than 1 hour")
|
||||
# end
|
||||
# end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -12,33 +12,8 @@ describe Ci::TriggerSchedule, models: true do
|
|||
expect(trigger_schedule.errors[:ref].first).to include('does not exist')
|
||||
end
|
||||
|
||||
describe 'cron limitation' do
|
||||
let(:trigger_schedule) { create(:ci_trigger_schedule, :cron_nightly_build) }
|
||||
|
||||
before do
|
||||
trigger_schedule.cron = cron
|
||||
trigger_schedule.valid?
|
||||
end
|
||||
|
||||
context 'when cron frequency is too short' do
|
||||
let(:cron) { '0 * * * *' } # 00:00, 01:00, 02:00, ..., 23:00
|
||||
|
||||
it 'gets an error' do
|
||||
expect(trigger_schedule.errors[:cron].first).to include('can not be less than 1 hour')
|
||||
end
|
||||
end
|
||||
|
||||
context 'when cron frequency is eligible' do
|
||||
let(:cron) { '0 0 1 1 *' } # every 00:00, January 1st
|
||||
|
||||
it 'gets no errors' do
|
||||
expect(trigger_schedule.errors[:cron]).to be_empty
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
describe '#schedule_next_run!' do
|
||||
let(:trigger_schedule) { create(:ci_trigger_schedule, :cron_nightly_build) }
|
||||
let(:trigger_schedule) { create(:ci_trigger_schedule, :cron_nightly_build, next_run_at: nil) }
|
||||
|
||||
before do
|
||||
trigger_schedule.schedule_next_run!
|
||||
|
|
Loading…
Reference in New Issue