From 1ce82ee49370845db054368894c2e03e736fcd84 Mon Sep 17 00:00:00 2001 From: Arturo Herrero Date: Thu, 23 Jan 2025 16:28:12 +0100 Subject: [PATCH 1/3] Fix _tab feature flags usage in CE and EE --- .rubocop_todo/rspec/receive_messages.yml | 1 - app/services/search_service.rb | 6 -- ee/app/services/ee/search_service.rb | 6 ++ ee/lib/ee/search/navigation.rb | 29 ++++++-- .../controllers/ee/search_controller_spec.rb | 31 +++++++++ ee/spec/lib/search/navigation_spec.rb | 30 ++++++++- ee/spec/services/search_service_spec.rb | 6 ++ lib/search/navigation.rb | 35 ++-------- spec/controllers/search_controller_spec.rb | 11 ++-- spec/lib/search/navigation_spec.rb | 66 ------------------- spec/services/search_service_spec.rb | 6 -- 11 files changed, 104 insertions(+), 123 deletions(-) diff --git a/.rubocop_todo/rspec/receive_messages.yml b/.rubocop_todo/rspec/receive_messages.yml index 0915ff0ef945d0..3a2efb5ab23072 100644 --- a/.rubocop_todo/rspec/receive_messages.yml +++ b/.rubocop_todo/rspec/receive_messages.yml @@ -78,7 +78,6 @@ RSpec/ReceiveMessages: - 'ee/spec/lib/gitlab/vulnerability_scanning/finding_builder_spec.rb' - 'ee/spec/lib/google_cloud/artifact_registry/client_spec.rb' - 'ee/spec/lib/omni_auth/strategies/group_saml_spec.rb' - - 'ee/spec/lib/search/navigation_spec.rb' - 'ee/spec/lib/sidebars/groups/super_sidebar_panel_spec.rb' - 'ee/spec/lib/sidebars/projects/super_sidebar_panel_spec.rb' - 'ee/spec/lib/system_check/geo/database_replication_working_check_spec.rb' diff --git a/app/services/search_service.rb b/app/services/search_service.rb index 764613b0a8c9bd..906492003ac81d 100644 --- a/app/services/search_service.rb +++ b/app/services/search_service.rb @@ -108,18 +108,12 @@ def global_search_enabled_for_scope? return false if show_snippets? && Feature.disabled?(:global_search_snippet_titles_tab, current_user, type: :ops) case params[:scope] - when 'blobs' - Feature.enabled?(:global_search_code_tab, current_user, type: :ops) - when 'commits' - Feature.enabled?(:global_search_commits_tab, current_user, type: :ops) when 'issues' Feature.enabled?(:global_search_issues_tab, current_user, type: :ops) when 'merge_requests' Feature.enabled?(:global_search_merge_requests_tab, current_user, type: :ops) when 'snippet_titles' Feature.enabled?(:global_search_snippet_titles_tab, current_user, type: :ops) - when 'wiki_blobs' - Feature.enabled?(:global_search_wiki_tab, current_user, type: :ops) when 'users' Feature.enabled?(:global_search_users_tab, current_user, type: :ops) else diff --git a/ee/app/services/ee/search_service.rb b/ee/app/services/ee/search_service.rb index de21065815f196..83155952e69140 100644 --- a/ee/app/services/ee/search_service.rb +++ b/ee/app/services/ee/search_service.rb @@ -44,8 +44,14 @@ def use_zoekt? override :global_search_enabled_for_scope? def global_search_enabled_for_scope? case params[:scope] + when 'blobs' + ::Feature.enabled?(:global_search_code_tab, current_user, type: :ops) + when 'commits' + ::Feature.enabled?(:global_search_commits_tab, current_user, type: :ops) when 'epics' ::Feature.enabled?(:global_search_epics_tab, current_user, type: :ops) + when 'wiki_blobs' + ::Feature.enabled?(:global_search_wiki_tab, current_user, type: :ops) else super end diff --git a/ee/lib/ee/search/navigation.rb b/ee/lib/ee/search/navigation.rb index e7d50b4835bb19..72fb5ec030e956 100644 --- a/ee/lib/ee/search/navigation.rb +++ b/ee/lib/ee/search/navigation.rb @@ -8,6 +8,23 @@ module Navigation override :tabs def tabs (super || {}).tap do |nav| + nav[:blobs] ||= { + sort: 2, + label: _("Code"), + data: { testid: 'code-tab' }, + condition: show_code_search_tab? + } + nav[:wiki_blobs] ||= { + sort: 6, + label: _("Wiki"), + condition: show_wiki_search_tab? + } + nav[:commits] ||= { + sort: 7, + label: _("Commits"), + condition: show_commits_search_tab? + } + if ::Feature.enabled?(:work_item_scope_frontend, user) nav[:issues][:sub_items] ||= {} nav[:issues][:sub_items].merge!(get_epic_sub_item) @@ -42,9 +59,8 @@ def zoekt_enabled? !!options[:zoekt_enabled] end - override :show_code_search_tab? def show_code_search_tab? - return true if super + return true if tab_enabled_for_project?(:blobs) return false unless project.nil? global_search_code_tab_enabled = ::Feature.enabled?(:global_search_code_tab, user, type: :ops) @@ -65,9 +81,8 @@ def show_code_search_tab? false end - override :show_wiki_search_tab? def show_wiki_search_tab? - return true if super + return true if tab_enabled_for_project?(:wiki_blobs) return false if project return false unless show_elasticsearch_tabs? @@ -76,6 +91,12 @@ def show_wiki_search_tab? ::Feature.enabled?(:global_search_wiki_tab, user, type: :ops) end + def show_commits_search_tab? + return true if tab_enabled_for_project?(:commits) + + project.nil? && show_elasticsearch_tabs? && feature_flag_tab_enabled?(:global_search_commits_tab) + end + def show_epics_search_tab? return false if project return false unless options[:show_epics] diff --git a/ee/spec/controllers/ee/search_controller_spec.rb b/ee/spec/controllers/ee/search_controller_spec.rb index af3f38950a8b3d..955c275c4ff98a 100644 --- a/ee/spec/controllers/ee/search_controller_spec.rb +++ b/ee/spec/controllers/ee/search_controller_spec.rb @@ -197,6 +197,37 @@ end end end + + context 'for tab feature flags' do + using RSpec::Parameterized::TableSyntax + + subject(:show) { get :show, params: { scope: scope, search: 'term' }, format: :html } + + where(:feature_flag, :scope) do + :global_search_code_tab | 'blobs' + :global_search_commits_tab | 'commits' + :global_search_wiki_tab | 'wiki_blobs' + end + + with_them do + it 'returns 200 if flag is enabled' do + stub_feature_flags(feature_flag => true) + + show + + expect(response).to have_gitlab_http_status(:ok) + end + + it 'redirects with alert if flag is disabled' do + stub_feature_flags(feature_flag => false) + + show + + expect(response).to redirect_to search_path + expect(controller).to set_flash[:alert].to(/Global Search is disabled for this scope/) + end + end + end end describe 'GET #autocomplete' do diff --git a/ee/spec/lib/search/navigation_spec.rb b/ee/spec/lib/search/navigation_spec.rb index 384e52b8811962..7cdc11da15020c 100644 --- a/ee/spec/lib/search/navigation_spec.rb +++ b/ee/spec/lib/search/navigation_spec.rb @@ -14,8 +14,8 @@ let(:search_navigation) { described_class.new(user: user, project: project, group: group, options: options) } before do - allow(search_navigation).to receive(:can?).and_return(true) - allow(search_navigation).to receive(:tab_enabled_for_project?).and_return(false) + allow(search_navigation) + .to receive_messages(can?: true, tab_enabled_for_project?: false, feature_flag_tab_enabled?: false) end subject(:tabs) { search_navigation.tabs } @@ -156,6 +156,32 @@ end end + context 'for commits tab' do + where(:feature_flag_enabled, :show_elasticsearch_tabs, :project, :tab_enabled, :condition) do + false | false | nil | true | true + false | false | ref(:project_double) | true | true + false | false | nil | false | false + false | true | ref(:project_double) | false | false + false | true | nil | false | false + true | false | nil | false | false + true | false | ref(:project_double) | false | false + true | true | ref(:project_double) | false | false + true | true | nil | false | true + end + + with_them do + let(:options) { { show_elasticsearch_tabs: show_elasticsearch_tabs } } + + it 'data item condition is set correctly' do + allow(search_navigation).to receive(:feature_flag_tab_enabled?) + .with(:global_search_commits_tab).and_return(feature_flag_enabled) + allow(search_navigation).to receive(:tab_enabled_for_project?).with(:commits).and_return(tab_enabled) + + expect(tabs[:commits][:condition]).to eq(condition) + end + end + end + context 'for code tab' do context 'when project search' do let(:project) { project_double } diff --git a/ee/spec/services/search_service_spec.rb b/ee/spec/services/search_service_spec.rb index c86ae6a195c98f..b3367a6d9cb35e 100644 --- a/ee/spec/services/search_service_spec.rb +++ b/ee/spec/services/search_service_spec.rb @@ -110,8 +110,14 @@ let(:search) { 'foobar' } where(:scope, :feature_flag, :enabled, :expected) do + 'blobs' | :global_search_code_tab | false | false + 'blobs' | :global_search_code_tab | true | true + 'commits' | :global_search_commits_tab | false | false + 'commits' | :global_search_commits_tab | true | true 'epics' | :global_search_epics_tab | false | false 'epics' | :global_search_epics_tab | true | true + 'wiki_blobs' | :global_search_wiki_tab | false | false + 'wiki_blobs' | :global_search_wiki_tab | true | true end with_them do diff --git a/lib/search/navigation.rb b/lib/search/navigation.rb index f7eed0bae14cca..3c6d23634e09ab 100644 --- a/lib/search/navigation.rb +++ b/lib/search/navigation.rb @@ -26,13 +26,8 @@ def tabs data: { testid: 'projects-tab' }, condition: project.nil? }, - blobs: { - sort: 2, - label: _("Code"), - data: { testid: 'code-tab' }, - condition: show_code_search_tab? - }, - # sort: 3 is reserved for EE items + # sort: 2 is reserved for EE items + # sort: 3 is reserved for EE items issues: { sort: 4, label: _("Issues"), @@ -43,16 +38,8 @@ def tabs label: _("Merge requests"), condition: show_merge_requests_search_tab? }, - wiki_blobs: { - sort: 6, - label: _("Wiki"), - condition: show_wiki_search_tab? - }, - commits: { - sort: 7, - label: _("Commits"), - condition: show_commits_search_tab? - }, + # sort: 6 is reserved for EE items + # sort: 7 is reserved for EE items notes: { sort: 8, label: _("Comments"), @@ -130,20 +117,6 @@ def show_user_search_tab? project.nil? && feature_flag_tab_enabled?(:global_search_users_tab) end - def show_code_search_tab? - tab_enabled_for_project?(:blobs) - end - - def show_wiki_search_tab? - tab_enabled_for_project?(:wiki_blobs) - end - - def show_commits_search_tab? - return true if tab_enabled_for_project?(:commits) - - project.nil? && show_elasticsearch_tabs? && feature_flag_tab_enabled?(:global_search_commits_tab) - end - def show_issues_search_tab? return true if tab_enabled_for_project?(:issues) diff --git a/spec/controllers/search_controller_spec.rb b/spec/controllers/search_controller_spec.rb index ea26f43684fb9d..47c9626711e5d4 100644 --- a/spec/controllers/search_controller_spec.rb +++ b/spec/controllers/search_controller_spec.rb @@ -267,15 +267,12 @@ end end - context 'tab feature flags' do - subject { get :show, params: { scope: scope, search: 'term' }, format: :html } + context 'for tab feature flags' do + subject(:show) { get :show, params: { scope: scope, search: 'term' }, format: :html } where(:feature_flag, :scope) do - :global_search_code_tab | 'blobs' :global_search_issues_tab | 'issues' :global_search_merge_requests_tab | 'merge_requests' - :global_search_wiki_tab | 'wiki_blobs' - :global_search_commits_tab | 'commits' :global_search_users_tab | 'users' end @@ -283,7 +280,7 @@ it 'returns 200 if flag is enabled' do stub_feature_flags(feature_flag => true) - subject + show expect(response).to have_gitlab_http_status(:ok) end @@ -291,7 +288,7 @@ it 'redirects with alert if flag is disabled' do stub_feature_flags(feature_flag => false) - subject + show expect(response).to redirect_to search_path expect(controller).to set_flash[:alert].to(/Global Search is disabled for this scope/) diff --git a/spec/lib/search/navigation_spec.rb b/spec/lib/search/navigation_spec.rb index faf0cef9d100a8..93d12940013faf 100644 --- a/spec/lib/search/navigation_spec.rb +++ b/spec/lib/search/navigation_spec.rb @@ -74,26 +74,6 @@ end end - context 'for code tab' do - where(:project, :group, :tab_enabled_for_project, :condition) do - nil | nil | false | false - nil | ref(:group_double) | false | false - ref(:project_double) | nil | true | true - ref(:project_double) | nil | false | false - end - - with_them do - let(:options) { {} } - - it 'data item condition is set correctly' do - allow(search_navigation).to receive(:tab_enabled_for_project?) - .with(:blobs).and_return(tab_enabled_for_project) - - expect(tabs[:blobs][:condition]).to eq(condition) - end - end - end - context 'for issues tab' do where(:tab_enabled, :feature_flag_enabled, :project, :condition) do false | false | nil | false @@ -140,52 +120,6 @@ end end - context 'for wiki tab' do - where(:project, :group, :tab_enabled_for_project, :condition) do - nil | nil | false | false - nil | ref(:group_double) | false | false - ref(:project_double) | nil | true | true - ref(:project_double) | nil | false | false - end - - with_them do - let(:options) { {} } - - it 'data item condition is set correctly' do - allow(search_navigation).to receive(:tab_enabled_for_project?) - .with(:wiki_blobs).and_return(tab_enabled_for_project) - - expect(tabs[:wiki_blobs][:condition]).to eq(condition) - end - end - end - - context 'for commits tab' do - where(:feature_flag_enabled, :show_elasticsearch_tabs, :project, :tab_enabled, :condition) do - false | false | nil | true | true - false | false | ref(:project_double) | true | true - false | false | nil | false | false - false | true | ref(:project_double) | false | false - false | true | nil | false | false - true | false | nil | false | false - true | false | ref(:project_double) | false | false - true | true | ref(:project_double) | false | false - true | true | nil | false | true - end - - with_them do - let(:options) { { show_elasticsearch_tabs: show_elasticsearch_tabs } } - - it 'data item condition is set correctly' do - allow(search_navigation).to receive(:feature_flag_tab_enabled?) - .with(:global_search_commits_tab).and_return(feature_flag_enabled) - allow(search_navigation).to receive(:tab_enabled_for_project?).with(:commits).and_return(tab_enabled) - - expect(tabs[:commits][:condition]).to eq(condition) - end - end - end - context 'for comments tab' do where(:tab_enabled, :show_elasticsearch_tabs, :project, :condition) do true | true | nil | true diff --git a/spec/services/search_service_spec.rb b/spec/services/search_service_spec.rb index 47a19e16e4e7c7..6fab16f72d846d 100644 --- a/spec/services/search_service_spec.rb +++ b/spec/services/search_service_spec.rb @@ -490,18 +490,12 @@ let(:search) { 'foobar' } where(:scope, :feature_flag, :enabled, :expected) do - 'blobs' | :global_search_code_tab | false | false - 'blobs' | :global_search_code_tab | true | true - 'commits' | :global_search_commits_tab | false | false - 'commits' | :global_search_commits_tab | true | true 'issues' | :global_search_issues_tab | false | false 'issues' | :global_search_issues_tab | true | true 'merge_requests' | :global_search_merge_requests_tab | false | false 'merge_requests' | :global_search_merge_requests_tab | true | true 'snippet_titles' | :global_search_snippet_titles_tab | false | false 'snippet_titles' | :global_search_snippet_titles_tab | true | true - 'wiki_blobs' | :global_search_wiki_tab | false | false - 'wiki_blobs' | :global_search_wiki_tab | true | true 'users' | :global_search_users_tab | false | false 'users' | :global_search_users_tab | true | true 'random' | :random | nil | true -- GitLab From 82e331d53e98d4082cbf3d5c994090187ad45ac4 Mon Sep 17 00:00:00 2001 From: Arturo Herrero Date: Fri, 24 Jan 2025 11:28:16 +0100 Subject: [PATCH 2/3] Remove navigation changes --- .rubocop_todo/rspec/receive_messages.yml | 1 + ee/lib/ee/search/navigation.rb | 29 ++--------- ee/spec/lib/search/navigation_spec.rb | 30 +---------- lib/search/navigation.rb | 35 +++++++++++-- spec/lib/search/navigation_spec.rb | 66 ++++++++++++++++++++++++ 5 files changed, 104 insertions(+), 57 deletions(-) diff --git a/.rubocop_todo/rspec/receive_messages.yml b/.rubocop_todo/rspec/receive_messages.yml index 3a2efb5ab23072..0915ff0ef945d0 100644 --- a/.rubocop_todo/rspec/receive_messages.yml +++ b/.rubocop_todo/rspec/receive_messages.yml @@ -78,6 +78,7 @@ RSpec/ReceiveMessages: - 'ee/spec/lib/gitlab/vulnerability_scanning/finding_builder_spec.rb' - 'ee/spec/lib/google_cloud/artifact_registry/client_spec.rb' - 'ee/spec/lib/omni_auth/strategies/group_saml_spec.rb' + - 'ee/spec/lib/search/navigation_spec.rb' - 'ee/spec/lib/sidebars/groups/super_sidebar_panel_spec.rb' - 'ee/spec/lib/sidebars/projects/super_sidebar_panel_spec.rb' - 'ee/spec/lib/system_check/geo/database_replication_working_check_spec.rb' diff --git a/ee/lib/ee/search/navigation.rb b/ee/lib/ee/search/navigation.rb index 72fb5ec030e956..e7d50b4835bb19 100644 --- a/ee/lib/ee/search/navigation.rb +++ b/ee/lib/ee/search/navigation.rb @@ -8,23 +8,6 @@ module Navigation override :tabs def tabs (super || {}).tap do |nav| - nav[:blobs] ||= { - sort: 2, - label: _("Code"), - data: { testid: 'code-tab' }, - condition: show_code_search_tab? - } - nav[:wiki_blobs] ||= { - sort: 6, - label: _("Wiki"), - condition: show_wiki_search_tab? - } - nav[:commits] ||= { - sort: 7, - label: _("Commits"), - condition: show_commits_search_tab? - } - if ::Feature.enabled?(:work_item_scope_frontend, user) nav[:issues][:sub_items] ||= {} nav[:issues][:sub_items].merge!(get_epic_sub_item) @@ -59,8 +42,9 @@ def zoekt_enabled? !!options[:zoekt_enabled] end + override :show_code_search_tab? def show_code_search_tab? - return true if tab_enabled_for_project?(:blobs) + return true if super return false unless project.nil? global_search_code_tab_enabled = ::Feature.enabled?(:global_search_code_tab, user, type: :ops) @@ -81,8 +65,9 @@ def show_code_search_tab? false end + override :show_wiki_search_tab? def show_wiki_search_tab? - return true if tab_enabled_for_project?(:wiki_blobs) + return true if super return false if project return false unless show_elasticsearch_tabs? @@ -91,12 +76,6 @@ def show_wiki_search_tab? ::Feature.enabled?(:global_search_wiki_tab, user, type: :ops) end - def show_commits_search_tab? - return true if tab_enabled_for_project?(:commits) - - project.nil? && show_elasticsearch_tabs? && feature_flag_tab_enabled?(:global_search_commits_tab) - end - def show_epics_search_tab? return false if project return false unless options[:show_epics] diff --git a/ee/spec/lib/search/navigation_spec.rb b/ee/spec/lib/search/navigation_spec.rb index 7cdc11da15020c..384e52b8811962 100644 --- a/ee/spec/lib/search/navigation_spec.rb +++ b/ee/spec/lib/search/navigation_spec.rb @@ -14,8 +14,8 @@ let(:search_navigation) { described_class.new(user: user, project: project, group: group, options: options) } before do - allow(search_navigation) - .to receive_messages(can?: true, tab_enabled_for_project?: false, feature_flag_tab_enabled?: false) + allow(search_navigation).to receive(:can?).and_return(true) + allow(search_navigation).to receive(:tab_enabled_for_project?).and_return(false) end subject(:tabs) { search_navigation.tabs } @@ -156,32 +156,6 @@ end end - context 'for commits tab' do - where(:feature_flag_enabled, :show_elasticsearch_tabs, :project, :tab_enabled, :condition) do - false | false | nil | true | true - false | false | ref(:project_double) | true | true - false | false | nil | false | false - false | true | ref(:project_double) | false | false - false | true | nil | false | false - true | false | nil | false | false - true | false | ref(:project_double) | false | false - true | true | ref(:project_double) | false | false - true | true | nil | false | true - end - - with_them do - let(:options) { { show_elasticsearch_tabs: show_elasticsearch_tabs } } - - it 'data item condition is set correctly' do - allow(search_navigation).to receive(:feature_flag_tab_enabled?) - .with(:global_search_commits_tab).and_return(feature_flag_enabled) - allow(search_navigation).to receive(:tab_enabled_for_project?).with(:commits).and_return(tab_enabled) - - expect(tabs[:commits][:condition]).to eq(condition) - end - end - end - context 'for code tab' do context 'when project search' do let(:project) { project_double } diff --git a/lib/search/navigation.rb b/lib/search/navigation.rb index 3c6d23634e09ab..f7eed0bae14cca 100644 --- a/lib/search/navigation.rb +++ b/lib/search/navigation.rb @@ -26,8 +26,13 @@ def tabs data: { testid: 'projects-tab' }, condition: project.nil? }, - # sort: 2 is reserved for EE items - # sort: 3 is reserved for EE items + blobs: { + sort: 2, + label: _("Code"), + data: { testid: 'code-tab' }, + condition: show_code_search_tab? + }, + # sort: 3 is reserved for EE items issues: { sort: 4, label: _("Issues"), @@ -38,8 +43,16 @@ def tabs label: _("Merge requests"), condition: show_merge_requests_search_tab? }, - # sort: 6 is reserved for EE items - # sort: 7 is reserved for EE items + wiki_blobs: { + sort: 6, + label: _("Wiki"), + condition: show_wiki_search_tab? + }, + commits: { + sort: 7, + label: _("Commits"), + condition: show_commits_search_tab? + }, notes: { sort: 8, label: _("Comments"), @@ -117,6 +130,20 @@ def show_user_search_tab? project.nil? && feature_flag_tab_enabled?(:global_search_users_tab) end + def show_code_search_tab? + tab_enabled_for_project?(:blobs) + end + + def show_wiki_search_tab? + tab_enabled_for_project?(:wiki_blobs) + end + + def show_commits_search_tab? + return true if tab_enabled_for_project?(:commits) + + project.nil? && show_elasticsearch_tabs? && feature_flag_tab_enabled?(:global_search_commits_tab) + end + def show_issues_search_tab? return true if tab_enabled_for_project?(:issues) diff --git a/spec/lib/search/navigation_spec.rb b/spec/lib/search/navigation_spec.rb index 93d12940013faf..faf0cef9d100a8 100644 --- a/spec/lib/search/navigation_spec.rb +++ b/spec/lib/search/navigation_spec.rb @@ -74,6 +74,26 @@ end end + context 'for code tab' do + where(:project, :group, :tab_enabled_for_project, :condition) do + nil | nil | false | false + nil | ref(:group_double) | false | false + ref(:project_double) | nil | true | true + ref(:project_double) | nil | false | false + end + + with_them do + let(:options) { {} } + + it 'data item condition is set correctly' do + allow(search_navigation).to receive(:tab_enabled_for_project?) + .with(:blobs).and_return(tab_enabled_for_project) + + expect(tabs[:blobs][:condition]).to eq(condition) + end + end + end + context 'for issues tab' do where(:tab_enabled, :feature_flag_enabled, :project, :condition) do false | false | nil | false @@ -120,6 +140,52 @@ end end + context 'for wiki tab' do + where(:project, :group, :tab_enabled_for_project, :condition) do + nil | nil | false | false + nil | ref(:group_double) | false | false + ref(:project_double) | nil | true | true + ref(:project_double) | nil | false | false + end + + with_them do + let(:options) { {} } + + it 'data item condition is set correctly' do + allow(search_navigation).to receive(:tab_enabled_for_project?) + .with(:wiki_blobs).and_return(tab_enabled_for_project) + + expect(tabs[:wiki_blobs][:condition]).to eq(condition) + end + end + end + + context 'for commits tab' do + where(:feature_flag_enabled, :show_elasticsearch_tabs, :project, :tab_enabled, :condition) do + false | false | nil | true | true + false | false | ref(:project_double) | true | true + false | false | nil | false | false + false | true | ref(:project_double) | false | false + false | true | nil | false | false + true | false | nil | false | false + true | false | ref(:project_double) | false | false + true | true | ref(:project_double) | false | false + true | true | nil | false | true + end + + with_them do + let(:options) { { show_elasticsearch_tabs: show_elasticsearch_tabs } } + + it 'data item condition is set correctly' do + allow(search_navigation).to receive(:feature_flag_tab_enabled?) + .with(:global_search_commits_tab).and_return(feature_flag_enabled) + allow(search_navigation).to receive(:tab_enabled_for_project?).with(:commits).and_return(tab_enabled) + + expect(tabs[:commits][:condition]).to eq(condition) + end + end + end + context 'for comments tab' do where(:tab_enabled, :show_elasticsearch_tabs, :project, :condition) do true | true | nil | true -- GitLab From 710c540323c7c485abb698404d43e6de7bcab153 Mon Sep 17 00:00:00 2001 From: Arturo Herrero Date: Tue, 28 Jan 2025 11:25:12 +0100 Subject: [PATCH 3/3] Move feature flags under EE --- .../config}/feature_flags/ops/global_search_code_tab.yml | 0 .../config}/feature_flags/ops/global_search_epics_tab.yml | 0 .../config}/feature_flags/ops/global_search_wiki_tab.yml | 0 3 files changed, 0 insertions(+), 0 deletions(-) rename {config => ee/config}/feature_flags/ops/global_search_code_tab.yml (100%) rename {config => ee/config}/feature_flags/ops/global_search_epics_tab.yml (100%) rename {config => ee/config}/feature_flags/ops/global_search_wiki_tab.yml (100%) diff --git a/config/feature_flags/ops/global_search_code_tab.yml b/ee/config/feature_flags/ops/global_search_code_tab.yml similarity index 100% rename from config/feature_flags/ops/global_search_code_tab.yml rename to ee/config/feature_flags/ops/global_search_code_tab.yml diff --git a/config/feature_flags/ops/global_search_epics_tab.yml b/ee/config/feature_flags/ops/global_search_epics_tab.yml similarity index 100% rename from config/feature_flags/ops/global_search_epics_tab.yml rename to ee/config/feature_flags/ops/global_search_epics_tab.yml diff --git a/config/feature_flags/ops/global_search_wiki_tab.yml b/ee/config/feature_flags/ops/global_search_wiki_tab.yml similarity index 100% rename from config/feature_flags/ops/global_search_wiki_tab.yml rename to ee/config/feature_flags/ops/global_search_wiki_tab.yml -- GitLab