Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'spec/views/search/_results.html.haml_spec.rb')
-rw-r--r--spec/views/search/_results.html.haml_spec.rb66
1 files changed, 39 insertions, 27 deletions
diff --git a/spec/views/search/_results.html.haml_spec.rb b/spec/views/search/_results.html.haml_spec.rb
index 2149c394320..e81462ee518 100644
--- a/spec/views/search/_results.html.haml_spec.rb
+++ b/spec/views/search/_results.html.haml_spec.rb
@@ -3,36 +3,60 @@
require 'spec_helper'
RSpec.describe 'search/_results' do
- let(:user) { create(:user) }
+ using RSpec::Parameterized::TableSyntax
+
+ let_it_be(:user) { create(:user) }
+
let(:search_objects) { Issue.page(1).per(2) }
let(:scope) { 'issues' }
let(:term) { 'foo' }
+ let(:search_results) { instance_double('Gitlab::SearchResults', { formatted_count: 10, current_user: user } ) }
+ let(:search_service) { class_double(SearchServicePresenter, scope: scope, search: term, current_user: user) }
before do
controller.params[:action] = 'show'
controller.params[:search] = term
- allow(self).to receive(:current_user).and_return(user)
- allow(@search_results).to receive(:formatted_count).with(scope).and_return(10)
- allow(self).to receive(:search_count_path).with(any_args).and_return("test count link")
- allow(self).to receive(:search_path).with(any_args).and_return("link test")
-
- stub_feature_flags(search_page_vertical_nav: false)
-
create_list(:issue, 3)
- @search_objects = search_objects
- @scope = scope
- @search_term = term
- @search_service = SearchServicePresenter.new(SearchService.new(user, search: term, scope: scope))
+ allow(view).to receive(:current_user) { user }
+ assign(:search_count_path, 'test count link')
+ assign(:search_path, 'link test')
+ assign(:search_results, search_results)
+ assign(:search_objects, search_objects)
+ assign(:search_term, term)
+ assign(:scope, scope)
+ @search_service = SearchServicePresenter.new(SearchService.new(user, search: term, scope: scope))
allow(@search_service).to receive(:search_objects).and_return(search_objects)
end
- it 'displays the page size' do
- render
+ where(search_page_vertical_nav_enabled: [true, false])
+
+ with_them do
+ describe 'page size' do
+ before do
+ stub_feature_flags(search_page_vertical_nav: search_page_vertical_nav_enabled)
+ end
+
+ context 'when search results have a count' do
+ it 'displays the page size' do
+ render
+
+ expect(rendered).to have_content('Showing 1 - 2 of 3 issues for foo')
+ end
+ end
+
+ context 'when search results do not have a count' do
+ let(:search_objects) { Issue.page(1).per(2).without_count }
+
+ it 'does not display the page size' do
+ render
- expect(rendered).to have_content('Showing 1 - 2 of 3 issues for foo')
+ expect(rendered).not_to have_content(/Showing .* of .*/)
+ end
+ end
+ end
end
context 'when searching notes which contain quotes in markdown' do
@@ -51,18 +75,6 @@ RSpec.describe 'search/_results' do
end
end
- context 'when search results do not have a count' do
- before do
- @search_objects = @search_objects.without_count
- end
-
- it 'does not display the page size' do
- render
-
- expect(rendered).not_to have_content(/Showing .* of .*/)
- end
- end
-
context 'rendering all types of search results' do
let_it_be(:project) { create(:project, :repository, :wiki_repo) }
let_it_be(:issue) { create(:issue, project: project, title: 'testing') }