2017-03-29 07:49:47 -04:00
|
|
|
require 'spec_helper'
|
|
|
|
|
|
|
|
describe Ci::TriggerSchedule, models: true do
|
2017-03-29 14:33:23 -04:00
|
|
|
let(:user) { create(:user) }
|
|
|
|
let(:project) { create(:project) }
|
|
|
|
let(:trigger) { create(:ci_trigger, owner: user, project: project, ref: 'master') }
|
2017-03-29 07:49:47 -04:00
|
|
|
|
|
|
|
describe 'associations' do
|
|
|
|
it { is_expected.to belong_to(:project) }
|
|
|
|
it { is_expected.to belong_to(:trigger) }
|
|
|
|
end
|
|
|
|
|
2017-03-29 14:33:23 -04:00
|
|
|
describe 'validation' do
|
|
|
|
let(:trigger_schedule) { create(:ci_trigger_schedule, :cron_nightly_build, trigger: trigger) }
|
2017-03-29 07:49:47 -04:00
|
|
|
|
2017-03-29 14:33:23 -04:00
|
|
|
it { expect(trigger_schedule).to validate_presence_of(:trigger) }
|
|
|
|
it { is_expected.to validate_presence_of(:cron) }
|
|
|
|
it { is_expected.to validate_presence_of(:cron_time_zone) }
|
2017-03-29 07:49:47 -04:00
|
|
|
|
2017-03-29 14:33:23 -04:00
|
|
|
it '#check_cron' do
|
|
|
|
subject.cron = 'Hack'
|
|
|
|
subject.valid?
|
|
|
|
subject.errors[:screen_name].to include(' is invalid syntax')
|
|
|
|
end
|
|
|
|
|
|
|
|
it '#check_ref' do
|
2017-03-29 07:49:47 -04:00
|
|
|
end
|
|
|
|
end
|
|
|
|
|
2017-03-29 14:33:23 -04:00
|
|
|
describe '#schedule_next_run!' do
|
|
|
|
let(:trigger_schedule) { create(:ci_trigger_schedule, :cron_nightly_build, next_run_at: nil, trigger: trigger) }
|
2017-03-29 07:49:47 -04:00
|
|
|
|
2017-03-29 14:33:23 -04:00
|
|
|
before do
|
|
|
|
trigger_schedule.schedule_next_run!
|
|
|
|
end
|
2017-03-29 07:49:47 -04:00
|
|
|
|
2017-03-29 14:33:23 -04:00
|
|
|
it 'updates next_run_at' do
|
|
|
|
expect(Ci::TriggerSchedule.last.next_run_at).not_to be_nil
|
|
|
|
end
|
|
|
|
end
|
2017-03-29 07:49:47 -04:00
|
|
|
end
|