Remove triggers_helper. Add trigger_schedule_presenter.
This commit is contained in:
parent
4a5c6a8e29
commit
f229290ac8
4 changed files with 39 additions and 10 deletions
|
@ -10,11 +10,4 @@ module TriggersHelper
|
|||
def service_trigger_url(service)
|
||||
"#{Settings.gitlab.url}/api/v3/projects/#{service.project_id}/services/#{service.to_param}/trigger"
|
||||
end
|
||||
|
||||
def real_next_run(trigger_schedule,
|
||||
worker_cron: Settings.cron_jobs['trigger_schedule_worker']['cron'],
|
||||
worker_time_zone: Time.zone.name)
|
||||
Gitlab::Ci::CronParser.new(worker_cron, worker_time_zone)
|
||||
.next_time_from(trigger_schedule.next_run_at)
|
||||
end
|
||||
end
|
||||
|
|
|
@ -2,6 +2,7 @@ module Ci
|
|||
class TriggerSchedule < ActiveRecord::Base
|
||||
extend Ci::Model
|
||||
include Importable
|
||||
include Presentable
|
||||
|
||||
acts_as_paranoid
|
||||
|
||||
|
|
11
app/presenters/ci/trigger_schedule_presenter.rb
Normal file
11
app/presenters/ci/trigger_schedule_presenter.rb
Normal file
|
@ -0,0 +1,11 @@
|
|||
module Ci
|
||||
class TriggerSchedulePresenter < Gitlab::View::Presenter::Delegated
|
||||
presents :trigger_schedule
|
||||
|
||||
def real_next_run(worker_cron: Settings.cron_jobs['trigger_schedule_worker']['cron'],
|
||||
worker_time_zone: Time.zone.name)
|
||||
Gitlab::Ci::CronParser.new(worker_cron, worker_time_zone)
|
||||
.next_time_from(next_run_at)
|
||||
end
|
||||
end
|
||||
end
|
|
@ -1,10 +1,34 @@
|
|||
require 'rails_helper'
|
||||
require 'spec_helper'
|
||||
|
||||
describe Ci::TriggerSchedulePresenter do
|
||||
let(:trigger_schedule) { create(:ci_trigger_schedule) }
|
||||
|
||||
subject(:presenter) do
|
||||
described_class.new(trigger_schedule)
|
||||
end
|
||||
|
||||
it 'inherits from Gitlab::View::Presenter::Delegated' do
|
||||
expect(described_class.superclass).to eq(Gitlab::View::Presenter::Delegated)
|
||||
end
|
||||
|
||||
describe '#initialize' do
|
||||
it 'takes a trigger_schedule and optional params' do
|
||||
expect { presenter }.not_to raise_error
|
||||
end
|
||||
|
||||
it 'exposes trigger_schedule' do
|
||||
expect(presenter.trigger_schedule).to eq(trigger_schedule)
|
||||
end
|
||||
|
||||
it 'forwards missing methods to trigger_schedule' do
|
||||
expect(presenter.ref).to eq('master')
|
||||
end
|
||||
end
|
||||
|
||||
describe TriggersHelper do
|
||||
describe '#real_next_run' do
|
||||
let(:trigger_schedule) { create(:ci_trigger_schedule, cron: user_cron, cron_time_zone: 'UTC') }
|
||||
|
||||
subject { helper.real_next_run(trigger_schedule, arguments) }
|
||||
subject { described_class.new(trigger_schedule).real_next_run(arguments) }
|
||||
|
||||
context 'when next_run_at > worker_next_time' do
|
||||
let(:arguments) { { worker_cron: '0 0 1 1 *', worker_time_zone: 'UTC' } } # every 00:00, January 1st
|
Loading…
Reference in a new issue