summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZeger-Jan van de Weg <git@zjvandeweg.nl>2017-09-15 09:53:28 +0200
committerZeger-Jan van de Weg <git@zjvandeweg.nl>2017-09-15 09:53:31 +0200
commitfb84bec54255cafecb7aa2b25816426be2d35505 (patch)
treeeaf747009b2fea3aabfa4078b282a2947133c670
parentec3b3797e789d82200de2694458cc7cde2093549 (diff)
downloadgitlab-ce-fb84bec54255cafecb7aa2b25816426be2d35505.tar.gz
Allow updating of project auto devops settings
Updating didn't work, as the project_id was missing to be set for the project_auto_devops model. Fixes gitlab-org/gitlab-ce#37893
-rw-r--r--app/models/project.rb2
-rw-r--r--changelogs/unreleased/zj-update-project-settings.yml5
-rw-r--r--spec/controllers/projects/pipelines_setttings_controller_spec.rb31
3 files changed, 37 insertions, 1 deletions
diff --git a/app/models/project.rb b/app/models/project.rb
index ff5638dd155..2b2bfbceb9d 100644
--- a/app/models/project.rb
+++ b/app/models/project.rb
@@ -192,7 +192,7 @@ class Project < ActiveRecord::Base
accepts_nested_attributes_for :variables, allow_destroy: true
accepts_nested_attributes_for :project_feature
accepts_nested_attributes_for :import_data
- accepts_nested_attributes_for :auto_devops
+ accepts_nested_attributes_for :auto_devops, update_only: true
delegate :name, to: :owner, allow_nil: true, prefix: true
delegate :members, to: :team, prefix: true
diff --git a/changelogs/unreleased/zj-update-project-settings.yml b/changelogs/unreleased/zj-update-project-settings.yml
new file mode 100644
index 00000000000..6ee3afcd6e2
--- /dev/null
+++ b/changelogs/unreleased/zj-update-project-settings.yml
@@ -0,0 +1,5 @@
+---
+title: Allow updating of project auto devops settings
+merge_request:
+author:
+type: fixed
diff --git a/spec/controllers/projects/pipelines_setttings_controller_spec.rb b/spec/controllers/projects/pipelines_setttings_controller_spec.rb
new file mode 100644
index 00000000000..9eb6d7ce8b5
--- /dev/null
+++ b/spec/controllers/projects/pipelines_setttings_controller_spec.rb
@@ -0,0 +1,31 @@
+require 'spec_helper'
+
+describe Projects::PipelinesSettingsController do
+ set(:user) { create(:user) }
+ set(:project_auto_devops) { create(:project_auto_devops) }
+ let(:project) { project_auto_devops.project }
+
+ before do
+ project.add_master(user)
+
+ sign_in(user)
+ end
+
+ describe 'PATCH update' do
+ before do
+ patch :update,
+ namespace_id: project.namespace.to_param,
+ project_id: project,
+ project: {
+ auto_devops_attributes: { enabled: false, domain: 'mempmep.md' }
+ }
+ end
+
+ context 'when updating the auto_devops settings' do
+ it 'redirects to the settings page' do
+ expect(response).to have_http_status(302)
+ expect(flash[:notice]).to eq("Pipelines settings for '#{project.name}' were successfully updated.")
+ end
+ end
+ end
+end