diff options
author | Sean McGivern <sean@mcgivern.me.uk> | 2017-08-04 21:22:41 +0000 |
---|---|---|
committer | Sean McGivern <sean@mcgivern.me.uk> | 2017-08-04 21:22:41 +0000 |
commit | 848097b57bcde309b2e40fbae74d642d87af9718 (patch) | |
tree | e9116bb6c2553f97b2f1f8bbde6101024387e5b4 | |
parent | cad767260dff3fac366a63400b60cd4211b05b85 (diff) | |
parent | 73146801e6b350c731a26dcfa68d79268fa314d4 (diff) | |
download | gitlab-ce-848097b57bcde309b2e40fbae74d642d87af9718.tar.gz |
Merge branch 'fix/sm/35931-active-ci-pipelineschedule-have-nullified-next_run_at' into 'master'
Fix "pipeline_schedules pages throwing error 500" when "Active Ci::PipelineSchedule have a nullified `next_run_at`"
Closes #32790
See merge request !13286
3 files changed, 24 insertions, 1 deletions
diff --git a/app/views/projects/pipeline_schedules/_pipeline_schedule.html.haml b/app/views/projects/pipeline_schedules/_pipeline_schedule.html.haml index 7343d6e039c..bd8c38292d6 100644 --- a/app/views/projects/pipeline_schedules/_pipeline_schedule.html.haml +++ b/app/views/projects/pipeline_schedules/_pipeline_schedule.html.haml @@ -15,7 +15,7 @@ - else = s_("PipelineSchedules|None") %td.next-run-cell - - if pipeline_schedule.active? + - if pipeline_schedule.active? && pipeline_schedule.next_run_at = time_ago_with_tooltip(pipeline_schedule.real_next_run) - else = s_("PipelineSchedules|Inactive") diff --git a/changelogs/unreleased/fix-sm-35931-active-ci-pipelineschedule-have-nullified-next_run_at.yml b/changelogs/unreleased/fix-sm-35931-active-ci-pipelineschedule-have-nullified-next_run_at.yml new file mode 100644 index 00000000000..07840205b6e --- /dev/null +++ b/changelogs/unreleased/fix-sm-35931-active-ci-pipelineschedule-have-nullified-next_run_at.yml @@ -0,0 +1,4 @@ +--- +title: Fix pipeline_schedules pages when active schedule has an abnormal state +merge_request: 13286 +author: diff --git a/spec/features/projects/pipeline_schedules_spec.rb b/spec/features/projects/pipeline_schedules_spec.rb index 605415d2af4..24b335a7068 100644 --- a/spec/features/projects/pipeline_schedules_spec.rb +++ b/spec/features/projects/pipeline_schedules_spec.rb @@ -219,6 +219,25 @@ feature 'Pipeline Schedules', :js do end end end + + context 'when active is true and next_run_at is NULL' do + background do + create(:ci_pipeline_schedule, project: project, owner: user).tap do |pipeline_schedule| + pipeline_schedule.update_attribute(:cron, nil) # Consequently next_run_at will be nil + end + end + + scenario 'user edit and recover the problematic pipeline schedule' do + visit_pipelines_schedules + find(".content-list .pipeline-schedule-table-row:nth-child(1) .btn-group a[title='Edit']").click + fill_in 'schedule_cron', with: '* 1 2 3 4' + click_button 'Save pipeline schedule' + + page.within('.pipeline-schedule-table-row:nth-child(1)') do + expect(page).to have_css(".next-run-cell time") + end + end + end end context 'logged in as non-member' do |