Skip to content
代码片段 群组 项目
提交 628b0045 编辑于 作者: Madelein van Niekerk's avatar Madelein van Niekerk 提交者: Allen Cook
浏览文件

Add feature flag for global snippet search

Changelog: changed
上级 cfd69011
No related branches found
No related tags found
无相关合并请求
......@@ -493,6 +493,10 @@ def show_comments_search_tab?
@project.nil? && search_service.show_elasticsearch_tabs?
end
def show_snippets_search_tab?
search_service.show_snippets? && @project.nil? && feature_flag_tab_enabled?(:global_search_snippet_titles_tab)
end
# search page scope navigation
def search_navigation
{
......@@ -506,7 +510,7 @@ def search_navigation
notes: { sort: 8, label: _("Comments"), condition: show_comments_search_tab? },
milestones: { sort: 9, label: _("Milestones"), condition: project_search_tabs?(:milestones) || @project.nil? },
users: { sort: 10, label: _("Users"), condition: show_user_search_tab? },
snippet_titles: { sort: 11, label: _("Titles and Descriptions"), search: { snippets: true, group_id: nil, project_id: nil }, condition: search_service.show_snippets? && @project.nil? }
snippet_titles: { sort: 11, label: _("Titles and Descriptions"), search: { snippets: true, group_id: nil, project_id: nil }, condition: show_snippets_search_tab? }
}
end
......
......@@ -113,6 +113,8 @@ def show_epics?
end
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)
......@@ -122,6 +124,8 @@ def global_search_enabled_for_scope?
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'
......
---
name: global_search_snippet_titles_tab
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/123668
rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/415353
milestone: '16.1'
type: ops
group: group::global search
default_enabled: true
......@@ -1259,16 +1259,22 @@ def simple_sanitize(str)
end
context 'snippet_titles' do
where(:global_project, :global_show_snippets, :condition) do
ref(:project) | true | false
nil | false | false
ref(:project) | false | false
nil | true | true
where(:global_project, :global_show_snippets, :global_feature_flag_enabled, :condition) do
ref(:project) | true | false | false
nil | false | false | false
ref(:project) | false | false | false
nil | true | false | false
ref(:project) | true | true | false
nil | false | true | false
ref(:project) | false | true | false
nil | true | true | true
end
with_them do
it 'data item condition is set correctly' do
allow(search_service).to receive(:show_snippets?).and_return(global_show_snippets)
allow(self).to receive(:feature_flag_tab_enabled?).with(:global_search_snippet_titles_tab)
.and_return(global_feature_flag_enabled)
@project = global_project
expect(search_navigation[:snippet_titles][:condition]).to eq(condition)
......
......@@ -412,6 +412,22 @@
end
end
context 'global snippet search is disabled' do
it 'returns forbidden response' do
stub_feature_flags(global_search_snippet_titles_tab: false)
get api(endpoint, user), params: { search: 'awesome', scope: 'snippet_titles' }
expect(response).to have_gitlab_http_status(:forbidden)
end
end
context 'global snippet search is enabled' do
it 'returns ok response' do
stub_feature_flags(global_search_snippet_titles_tab: true)
get api(endpoint, user), params: { search: 'awesome', scope: 'snippet_titles' }
expect(response).to have_gitlab_http_status(:ok)
end
end
it 'increments the custom search sli error rate with error false if no error occurred' do
expect(Gitlab::Metrics::GlobalSearchSlis).to receive(:record_error_rate).with(
error: false,
......
......@@ -485,6 +485,8 @@
'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
......@@ -498,5 +500,25 @@
expect(subject.global_search_enabled_for_scope?).to eq expected
end
end
context 'when snippet search is enabled' do
let(:scope) { 'snippet_titles' }
before do
allow(described_class).to receive(:show_snippets?).and_return(true)
end
it 'returns false when feature_flag is not enabled' do
stub_feature_flags(global_search_snippet_titles_tab: false)
expect(subject.global_search_enabled_for_scope?).to eq false
end
it 'returns true when feature_flag is enabled' do
stub_feature_flags(global_search_snippet_titles_tab: true)
expect(subject.global_search_enabled_for_scope?).to eq true
end
end
end
end
0% 加载中 .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册