From 06cb48534db649c9178e275d894d18f7327f90c7 Mon Sep 17 00:00:00 2001 From: Adam Hegyi <ahegyi@gitlab.com> Date: Wed, 13 Jan 2021 13:37:12 +0100 Subject: [PATCH] Enable devops_adoption feature flag conditionally This change enables the devops_adoption_feature flag by default if the feature is already in use. --- app/views/admin/dev_ops_report/show.html.haml | 3 +- ...ops-adoption-ff-when-feature-is-in-use.yml | 5 +++ .../dev_ops_report/show.html.haml_spec.rb | 35 +++++++++++++++++++ 3 files changed, 42 insertions(+), 1 deletion(-) create mode 100644 ee/changelogs/unreleased/enable-devops-adoption-ff-when-feature-is-in-use.yml create mode 100644 ee/spec/views/admin/dev_ops_report/show.html.haml_spec.rb diff --git a/app/views/admin/dev_ops_report/show.html.haml b/app/views/admin/dev_ops_report/show.html.haml index 733c0de9fe978..7659f02bdce12 100644 --- a/app/views/admin/dev_ops_report/show.html.haml +++ b/app/views/admin/dev_ops_report/show.html.haml @@ -3,7 +3,8 @@ .container .gl-mt-3 - - if Gitlab.ee? && Feature.enabled?(:devops_adoption_feature, default_enabled: false) && License.feature_available?(:devops_adoption) + - feature_already_in_use = Analytics::DevopsAdoption::Segment.any? + - if Gitlab.ee? && Feature.enabled?(:devops_adoption_feature, default_enabled: feature_already_in_use) && License.feature_available?(:devops_adoption) = render_if_exists 'admin/dev_ops_report/devops_tabs' - else = render 'report' diff --git a/ee/changelogs/unreleased/enable-devops-adoption-ff-when-feature-is-in-use.yml b/ee/changelogs/unreleased/enable-devops-adoption-ff-when-feature-is-in-use.yml new file mode 100644 index 0000000000000..18930976ed152 --- /dev/null +++ b/ee/changelogs/unreleased/enable-devops-adoption-ff-when-feature-is-in-use.yml @@ -0,0 +1,5 @@ +--- +title: Enable DevOps Adoption Report feature flag if any Segments already exist +merge_request: 51602 +author: +type: other diff --git a/ee/spec/views/admin/dev_ops_report/show.html.haml_spec.rb b/ee/spec/views/admin/dev_ops_report/show.html.haml_spec.rb new file mode 100644 index 0000000000000..65bc1efc3e5fc --- /dev/null +++ b/ee/spec/views/admin/dev_ops_report/show.html.haml_spec.rb @@ -0,0 +1,35 @@ +# frozen_string_literal: true + +require 'spec_helper' + +RSpec.describe 'admin/dev_ops_report/show.html.haml' do + include Devise::Test::ControllerHelpers + + before do + stub_licensed_features(devops_adoption: true) + end + + context 'when no segment record is present' do + it 'disables the feature' do + expect(Feature).to receive(:enabled?).with(:devops_adoption_feature, default_enabled: false).and_return(false) + + render + + expect(rendered).not_to have_selector('#devops-adoption') + end + end + + context 'when at least one segment record is present' do + before do + create(:devops_adoption_segment) + end + + it 'enables the feature' do + expect(Feature).to receive(:enabled?).with(:devops_adoption_feature, default_enabled: true).and_return(true) + + render + + expect(rendered).to have_selector('#devops-adoption') + end + end +end -- GitLab