summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDylan Griffith <dyl.griffith@gmail.com>2018-08-14 15:27:13 +0100
committerDylan Griffith <dyl.griffith@gmail.com>2018-08-14 15:27:13 +0100
commit515245c27d7a323c371831e9408149175c1292ef (patch)
tree5bbc76f148a16fc0447ad4cafca8797aaf878f42
parent538abe7b6316042004a4546b7928f7d6d9c5436a (diff)
downloadgitlab-ce-515245c27d7a323c371831e9408149175c1292ef.tar.gz
Handle feature flag logic in Project#has_auto_devops_implicitly_disabled?
-rw-r--r--app/models/project.rb2
-rw-r--r--spec/models/project_spec.rb15
2 files changed, 16 insertions, 1 deletions
diff --git a/app/models/project.rb b/app/models/project.rb
index 5d8e31ca565..94c1d60f071 100644
--- a/app/models/project.rb
+++ b/app/models/project.rb
@@ -532,7 +532,7 @@ class Project < ActiveRecord::Base
end
def has_auto_devops_implicitly_disabled?
- auto_devops&.enabled.nil? && !Gitlab::CurrentSettings.auto_devops_enabled?
+ auto_devops&.enabled.nil? && !(Gitlab::CurrentSettings.auto_devops_enabled? || Feature.enabled?(:force_autodevops_on_by_default, self))
end
def empty_repo?
diff --git a/spec/models/project_spec.rb b/spec/models/project_spec.rb
index d15d4b1406e..d8a5e5f6869 100644
--- a/spec/models/project_spec.rb
+++ b/spec/models/project_spec.rb
@@ -3362,6 +3362,11 @@ describe Project do
end
describe '#has_auto_devops_implicitly_disabled?' do
+ before do
+ allow(Feature).to receive(:enabled?).and_call_original
+ Feature.get(:force_autodevops_on_by_default).enable_percentage_of_actors(0)
+ end
+
set(:project) { create(:project) }
context 'when enabled in settings' do
@@ -3383,6 +3388,16 @@ describe Project do
expect(project).to have_auto_devops_implicitly_disabled
end
+ context 'when force_autodevops_on_by_default is enabled for the project' do
+ before do
+ Feature.get(:force_autodevops_on_by_default).enable_percentage_of_actors(100)
+ end
+
+ it 'does not have auto devops implicitly disabled' do
+ expect(project).not_to have_auto_devops_implicitly_disabled
+ end
+ end
+
context 'when explicitly disabled' do
before do
create(:project_auto_devops, project: project, enabled: false)