From 6a9ab27963fc1479fe7c78581b942c8dcce322e5 Mon Sep 17 00:00:00 2001 From: GitLab Bot Date: Tue, 15 Mar 2022 12:07:44 +0000 Subject: Add latest changes from gitlab-org/gitlab@master --- .../features/search/user_searches_for_code_spec.rb | 119 +++++++++++++++------ 1 file changed, 88 insertions(+), 31 deletions(-) (limited to 'spec/features/search') diff --git a/spec/features/search/user_searches_for_code_spec.rb b/spec/features/search/user_searches_for_code_spec.rb index a0016f82f0a..53c95b4a446 100644 --- a/spec/features/search/user_searches_for_code_spec.rb +++ b/spec/features/search/user_searches_for_code_spec.rb @@ -80,46 +80,103 @@ RSpec.describe 'User searches for code' do end end - context 'search code within refs', :js do - let(:ref_name) { 'v1.0.0' } + context 'when :new_header_search is true' do + context 'search code within refs', :js do + let(:ref_name) { 'v1.0.0' } + + before do + # This feature is diabled by default in spec_helper.rb. + # We missed a feature breaking bug, so to prevent this regression, testing both scenarios for this spec. + # This can be removed as part of closing https://gitlab.com/gitlab-org/gitlab/-/issues/339348. + stub_feature_flags(new_header_search: true) + visit(project_tree_path(project, ref_name)) + + submit_search('gitlab-grack') + select_search_scope('Code') + end - before do - visit(project_tree_path(project, ref_name)) + it 'shows ref switcher in code result summary' do + expect(find('.js-project-refs-dropdown')).to have_text(ref_name) + end - submit_search('gitlab-grack') - select_search_scope('Code') - end + it 'persists branch name across search' do + find('.gl-search-box-by-click-search-button').click + expect(find('.js-project-refs-dropdown')).to have_text(ref_name) + end - it 'shows ref switcher in code result summary' do - expect(find('.js-project-refs-dropdown')).to have_text(ref_name) - end - it 'persists branch name across search' do - find('.gl-search-box-by-click-search-button').click - expect(find('.js-project-refs-dropdown')).to have_text(ref_name) - end + # this example is use to test the desgine that the refs is not + # only repersent the branch as well as the tags. + it 'ref swither list all the branchs and tags' do + find('.js-project-refs-dropdown').click + expect(find('.dropdown-page-one .dropdown-content')).to have_link('sha-starting-with-large-number') + expect(find('.dropdown-page-one .dropdown-content')).to have_link('v1.0.0') + end - # this example is use to test the desgine that the refs is not - # only repersent the branch as well as the tags. - it 'ref swither list all the branchs and tags' do - find('.js-project-refs-dropdown').click - expect(find('.dropdown-page-one .dropdown-content')).to have_link('sha-starting-with-large-number') - expect(find('.dropdown-page-one .dropdown-content')).to have_link('v1.0.0') - end + it 'search result changes when refs switched' do + expect(find('.results')).not_to have_content('path = gitlab-grack') - it 'search result changes when refs switched' do - expect(find('.results')).not_to have_content('path = gitlab-grack') + find('.js-project-refs-dropdown').click + find('.dropdown-page-one .dropdown-content').click_link('master') - find('.js-project-refs-dropdown').click - find('.dropdown-page-one .dropdown-content').click_link('master') + expect(page).to have_selector('.results', text: 'path = gitlab-grack') + end - expect(page).to have_selector('.results', text: 'path = gitlab-grack') + it 'persist refs over browser tabs' do + ref = 'feature' + find('.js-project-refs-dropdown').click + link = find_link(ref)[:href] + expect(link.include?("repository_ref=" + ref)).to be(true) + end end + end - it 'persist refs over browser tabs' do - ref = 'feature' - find('.js-project-refs-dropdown').click - link = find_link(ref)[:href] - expect(link.include?("repository_ref=" + ref)).to be(true) + context 'when :new_header_search is false' do + context 'search code within refs', :js do + let(:ref_name) { 'v1.0.0' } + + before do + # This feature is diabled by default in spec_helper.rb. + # We missed a feature breaking bug, so to prevent this regression, testing both scenarios for this spec. + # This can be removed as part of closing https://gitlab.com/gitlab-org/gitlab/-/issues/339348. + stub_feature_flags(new_header_search: false) + visit(project_tree_path(project, ref_name)) + + submit_search('gitlab-grack') + select_search_scope('Code') + end + + it 'shows ref switcher in code result summary' do + expect(find('.js-project-refs-dropdown')).to have_text(ref_name) + end + + it 'persists branch name across search' do + find('.gl-search-box-by-click-search-button').click + expect(find('.js-project-refs-dropdown')).to have_text(ref_name) + end + + # this example is use to test the desgine that the refs is not + # only repersent the branch as well as the tags. + it 'ref swither list all the branchs and tags' do + find('.js-project-refs-dropdown').click + expect(find('.dropdown-page-one .dropdown-content')).to have_link('sha-starting-with-large-number') + expect(find('.dropdown-page-one .dropdown-content')).to have_link('v1.0.0') + end + + it 'search result changes when refs switched' do + expect(find('.results')).not_to have_content('path = gitlab-grack') + + find('.js-project-refs-dropdown').click + find('.dropdown-page-one .dropdown-content').click_link('master') + + expect(page).to have_selector('.results', text: 'path = gitlab-grack') + end + + it 'persist refs over browser tabs' do + ref = 'feature' + find('.js-project-refs-dropdown').click + link = find_link(ref)[:href] + expect(link.include?("repository_ref=" + ref)).to be(true) + end end end -- cgit v1.2.3