blacklight 8.2.2 → 8.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.env +1 -1
- data/.github/workflows/ruby.yml +56 -62
- data/.rubocop.yml +226 -21
- data/VERSION +1 -1
- data/app/assets/stylesheets/blacklight/_mixins.scss +2 -17
- data/app/components/blacklight/facet_item_pivot_component.rb +2 -2
- data/app/components/blacklight/system/dropdown_component.rb +1 -1
- data/app/helpers/blacklight/catalog_helper_behavior.rb +1 -5
- data/app/helpers/blacklight/layout_helper_behavior.rb +3 -3
- data/app/views/shared/_flash_messages.html.erb +1 -1
- data/lib/blacklight/configuration.rb +1 -0
- data/lib/blacklight/nested_open_struct_with_hash_access.rb +2 -2
- data/lib/blacklight/solr/request.rb +1 -1
- data/lib/blacklight/solr/response/facets.rb +1 -1
- data/lib/blacklight/solr/search_builder_behavior.rb +1 -1
- data/package.json +1 -1
- data/spec/components/blacklight/advanced_search_form_component_spec.rb +2 -2
- data/spec/components/blacklight/constraint_layout_component_spec.rb +11 -11
- data/spec/components/blacklight/constraints_component_spec.rb +9 -9
- data/spec/components/blacklight/document/group_component_spec.rb +3 -3
- data/spec/components/blacklight/document/sidebar_component_spec.rb +3 -4
- data/spec/components/blacklight/document_component_spec.rb +21 -25
- data/spec/components/blacklight/facet_component_spec.rb +2 -2
- data/spec/components/blacklight/facet_field_checkboxes_component_spec.rb +5 -5
- data/spec/components/blacklight/facet_field_list_component_spec.rb +13 -13
- data/spec/components/blacklight/facet_item_component_spec.rb +5 -5
- data/spec/components/blacklight/facet_item_pivot_component_spec.rb +6 -6
- data/spec/components/blacklight/header_component_spec.rb +1 -2
- data/spec/components/blacklight/hidden_search_state_component_spec.rb +6 -6
- data/spec/components/blacklight/metadata_field_component_spec.rb +3 -3
- data/spec/components/blacklight/response/pagination_component_spec.rb +4 -4
- data/spec/components/blacklight/search_context/server_applied_params_component_spec.rb +1 -1
- data/spec/components/blacklight/search_context/server_item_pagination_component_spec.rb +1 -3
- data/spec/components/blacklight/system/flash_message_component_spec.rb +5 -5
- data/spec/controllers/blacklight/catalog_spec.rb +1 -1
- data/spec/controllers/blacklight/{catalog/component_configuration_spec.rb → configurable_spec.rb} +1 -1
- data/spec/controllers/bookmarks_controller_spec.rb +10 -10
- data/spec/controllers/catalog_controller_spec.rb +24 -26
- data/spec/features/advanced_search_spec.rb +14 -14
- data/spec/features/alternate_controller_spec.rb +9 -9
- data/spec/features/axe_spec.rb +4 -4
- data/spec/features/bookmarks_spec.rb +19 -19
- data/spec/features/citation_spec.rb +1 -1
- data/spec/features/did_you_mean_spec.rb +23 -23
- data/spec/features/facet_missing_spec.rb +9 -9
- data/spec/features/facets_spec.rb +21 -20
- data/spec/features/modal_spec.rb +4 -4
- data/spec/features/record_view_spec.rb +2 -2
- data/spec/features/search_context_spec.rb +6 -6
- data/spec/features/search_crawler_spec.rb +5 -5
- data/spec/features/search_filters_spec.rb +65 -65
- data/spec/features/search_history_spec.rb +12 -12
- data/spec/features/search_pagination_spec.rb +10 -10
- data/spec/features/search_results_spec.rb +1 -1
- data/spec/features/search_sort_spec.rb +4 -4
- data/spec/features/search_spec.rb +25 -25
- data/spec/features/sitelinks_search_box_spec.rb +2 -2
- data/spec/features/sms_spec.rb +1 -1
- data/spec/helpers/blacklight/layout_helper_behavior_spec.rb +20 -3
- data/spec/helpers/blacklight/render_partials_helper_behavior_spec.rb +2 -1
- data/spec/helpers/blacklight/url_helper_behavior_spec.rb +7 -8
- data/spec/helpers/blacklight_helper_spec.rb +13 -15
- data/spec/helpers/catalog_helper_spec.rb +3 -6
- data/spec/i18n_spec.rb +2 -1
- data/spec/lib/blacklight/search_state_spec.rb +4 -4
- data/spec/lib/tasks/blacklight_task_spec.rb +2 -1
- data/spec/models/blacklight/configurable_spec.rb +1 -1
- data/spec/models/blacklight/configuration/context_spec.rb +1 -1
- data/spec/models/blacklight/configuration_spec.rb +2 -2
- data/spec/models/blacklight/document/active_model_shim_spec.rb +1 -1
- data/spec/models/blacklight/document/cache_key_spec.rb +1 -1
- data/spec/models/blacklight/document_spec.rb +1 -1
- data/spec/models/blacklight/facet_paginator_spec.rb +14 -14
- data/spec/models/blacklight/icon_spec.rb +1 -1
- data/spec/models/blacklight/search_builder_spec.rb +1 -1
- data/spec/models/blacklight/solr/document_spec.rb +1 -1
- data/spec/models/blacklight/solr/facet_paginator_spec.rb +1 -1
- data/spec/models/blacklight/solr/repository_spec.rb +2 -2
- data/spec/models/blacklight/solr/request_spec.rb +1 -1
- data/spec/models/blacklight/solr/response/facets_spec.rb +1 -1
- data/spec/models/blacklight/solr/response/group_response_spec.rb +1 -1
- data/spec/models/blacklight/solr/response/group_spec.rb +1 -1
- data/spec/models/blacklight/solr/response_spec.rb +1 -1
- data/spec/models/blacklight/solr/{search_builder_spec.rb → search_builder_behavior_spec.rb} +9 -19
- data/spec/models/blacklight/suggest/response_spec.rb +1 -1
- data/spec/models/blacklight/suggest_search_spec.rb +1 -1
- data/spec/models/blacklight/user_spec.rb +1 -1
- data/spec/models/solr_document_spec.rb +1 -1
- data/spec/presenters/blacklight/document_presenter_spec.rb +1 -2
- data/spec/presenters/blacklight/field_presenter_spec.rb +1 -1
- data/spec/presenters/blacklight/index_presenter_spec.rb +2 -3
- data/spec/presenters/blacklight/json_presenter_spec.rb +1 -1
- data/spec/presenters/{pipeline_spec.rb → blacklight/rendering/pipeline_spec.rb} +1 -1
- data/spec/presenters/blacklight/show_presenter_spec.rb +5 -6
- data/spec/presenters/{thumbnail_presenter_spec.rb → blacklight/thumbnail_presenter_spec.rb} +5 -3
- data/spec/routing/catalog_routing_spec.rb +1 -1
- data/spec/services/blacklight/field_retriever_spec.rb +1 -1
- data/spec/services/blacklight/search_service_spec.rb +9 -9
- data/spec/spec_helper.rb +2 -2
- data/spec/support/features/search_helpers.rb +2 -2
- data/spec/support/features/session_helpers.rb +3 -3
- data/spec/test_app_templates/lib/generators/test_app_generator.rb +2 -2
- data/spec/views/catalog/_document.html.erb_spec.rb +1 -4
- data/spec/views/catalog/_document_list.html.erb_spec.rb +2 -2
- data/spec/views/catalog/_facet_index_navigation.html.erb_spec.rb +5 -6
- data/spec/views/catalog/_facet_layout.html.erb_spec.rb +7 -7
- data/spec/views/catalog/_paginate_compact.html.erb_spec.rb +4 -4
- data/spec/views/catalog/_show_sidebar.erb_spec.rb +1 -4
- data/spec/views/catalog/_show_tools.html.erb_spec.rb +1 -2
- data/spec/views/catalog/_view_type_group.html.erb_spec.rb +7 -7
- data/spec/views/catalog/email_success.html.erb_spec.rb +1 -1
- data/spec/views/catalog/facet.html.erb_spec.rb +1 -1
- data/spec/views/catalog/facet.json.jbuilder_spec.rb +1 -1
- data/spec/views/catalog/index.atom.builder_spec.rb +18 -19
- data/spec/views/catalog/index.html.erb_spec.rb +2 -4
- data/spec/views/catalog/index.json.jbuilder_spec.rb +5 -8
- data/spec/views/catalog/show.html.erb_spec.rb +3 -5
- data/spec/views/catalog/show.json.jbuilder_spec.rb +1 -2
- data/spec/views/catalog/sms_success.html.erb_spec.rb +1 -1
- data/spec/views/shared/_user_util_links.html.erb_spec.rb +2 -3
- metadata +10 -10
@@ -1,15 +1,15 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
RSpec.describe Blacklight::FacetPaginator, api
|
4
|
-
let(:
|
5
|
-
let(:
|
6
|
-
let(:
|
7
|
-
let(:
|
8
|
-
let(:
|
9
|
-
let(:
|
10
|
-
let(:
|
11
|
-
let(:seven_facet_values) { [
|
12
|
-
let(:six_facet_values) { [
|
3
|
+
RSpec.describe Blacklight::FacetPaginator, :api do
|
4
|
+
let(:book) { Blacklight::Solr::Response::Facets::FacetItem.new(hits: '792', value: 'Book') }
|
5
|
+
let(:musical_score) { Blacklight::Solr::Response::Facets::FacetItem.new(hits: '65', value: 'Musical Score') }
|
6
|
+
let(:serial) { Blacklight::Solr::Response::Facets::FacetItem.new(hits: '58', value: 'Serial') }
|
7
|
+
let(:musical_recording) { Blacklight::Solr::Response::Facets::FacetItem.new(hits: '48', value: 'Musical Recording') }
|
8
|
+
let(:microform) { Blacklight::Solr::Response::Facets::FacetItem.new(hits: '37', value: 'Microform') }
|
9
|
+
let(:thesis) { Blacklight::Solr::Response::Facets::FacetItem.new(hits: '27', value: 'Thesis') }
|
10
|
+
let(:blank) { Blacklight::Solr::Response::Facets::FacetItem.new(hits: '0') }
|
11
|
+
let(:seven_facet_values) { [book, musical_score, serial, musical_recording, microform, thesis, blank] }
|
12
|
+
let(:six_facet_values) { [book, musical_score, serial, musical_recording, microform, thesis] }
|
13
13
|
let(:limit) { 6 }
|
14
14
|
|
15
15
|
context 'on the first page of two pages' do
|
@@ -42,7 +42,7 @@ RSpec.describe Blacklight::FacetPaginator, api: true do
|
|
42
42
|
end
|
43
43
|
|
44
44
|
context 'on the last page of two pages' do
|
45
|
-
subject(:paginator) { described_class.new([
|
45
|
+
subject(:paginator) { described_class.new([blank], offset: 6, limit: limit) }
|
46
46
|
|
47
47
|
it { is_expected.not_to be_first_page }
|
48
48
|
it { is_expected.to be_last_page }
|
@@ -124,7 +124,7 @@ RSpec.describe Blacklight::FacetPaginator, api: true do
|
|
124
124
|
context 'when sorting by "count"' do
|
125
125
|
subject { described_class.new([]) }
|
126
126
|
|
127
|
-
let(:params) { HashWithIndifferentAccess.new 'facet.prefix': 'A' }
|
127
|
+
let(:params) { ActiveSupport::HashWithIndifferentAccess.new 'facet.prefix': 'A' }
|
128
128
|
|
129
129
|
it 'includes the prefix filter for "index" sorting' do
|
130
130
|
expect(subject.params_for_resort_url('index', params)).to include 'facet.prefix': 'A'
|
@@ -159,7 +159,7 @@ RSpec.describe Blacklight::FacetPaginator, api: true do
|
|
159
159
|
end
|
160
160
|
|
161
161
|
describe "#as_json" do
|
162
|
-
subject { described_class.new([
|
162
|
+
subject { described_class.new([book], offset: 0, limit: nil).as_json }
|
163
163
|
|
164
164
|
it "is well structured" do
|
165
165
|
expect(subject).to eq("items" => [{ "hits" => "792", "value" => "Book" }], "limit" => nil,
|
@@ -169,7 +169,7 @@ RSpec.describe Blacklight::FacetPaginator, api: true do
|
|
169
169
|
|
170
170
|
describe "#total_pages" do
|
171
171
|
# this method is just for API compatability with kaminari 0.16.1
|
172
|
-
subject { described_class.new([
|
172
|
+
subject { described_class.new([book], offset: 0, limit: nil).total_pages }
|
173
173
|
|
174
174
|
it { is_expected.to eq -1 }
|
175
175
|
end
|
@@ -1,6 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
RSpec.describe Blacklight::Solr::FacetPaginator, api
|
3
|
+
RSpec.describe Blacklight::Solr::FacetPaginator, :api do
|
4
4
|
let(:f1) { Blacklight::Solr::Response::Facets::FacetItem.new(hits: '792', value: 'Book') }
|
5
5
|
|
6
6
|
describe "#as_json" do
|
@@ -1,6 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
RSpec.describe Blacklight::Solr::Repository, api
|
3
|
+
RSpec.describe Blacklight::Solr::Repository, :api do
|
4
4
|
subject(:repository) do
|
5
5
|
described_class.new blacklight_config
|
6
6
|
end
|
@@ -183,7 +183,7 @@ RSpec.describe Blacklight::Solr::Repository, api: true do
|
|
183
183
|
end
|
184
184
|
end
|
185
185
|
|
186
|
-
describe "http_method configuration", integration
|
186
|
+
describe "http_method configuration", :integration do
|
187
187
|
let (:blacklight_config) { config = Blacklight::Configuration.new; config.http_method = :post; config }
|
188
188
|
|
189
189
|
it "sends a post request to solr and get a response back" do
|
@@ -1,6 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
RSpec.describe Blacklight::Solr::Response::Facets, api
|
3
|
+
RSpec.describe Blacklight::Solr::Response::Facets, :api do
|
4
4
|
describe Blacklight::Solr::Response::Facets::FacetField do
|
5
5
|
describe "A field with default options" do
|
6
6
|
subject(:field) { described_class.new "my_field", [] }
|
@@ -1,9 +1,15 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
RSpec.describe Blacklight::Solr::SearchBuilderBehavior, api
|
3
|
+
RSpec.describe Blacklight::Solr::SearchBuilderBehavior, :api do
|
4
4
|
subject { search_builder.with(user_params) }
|
5
5
|
|
6
6
|
let(:single_facet) { { format: ['Book'] } }
|
7
|
+
let(:search_builder_class) do
|
8
|
+
Class.new(Blacklight::SearchBuilder) do
|
9
|
+
include Blacklight::Solr::SearchBuilderBehavior
|
10
|
+
end
|
11
|
+
end
|
12
|
+
let(:search_builder) { search_builder_class.new(context) }
|
7
13
|
let(:multi_facets) { { format: ['Book'], language_ssim: ['Tibetan'] } }
|
8
14
|
let(:mult_word_query) { 'tibetan history' }
|
9
15
|
let(:subject_search_params) { { commit: "search", search_field: "subject", action: "index", controller: "catalog", rows: "10", q: "wome" } }
|
@@ -14,13 +20,6 @@ RSpec.describe Blacklight::Solr::SearchBuilderBehavior, api: true do
|
|
14
20
|
|
15
21
|
before { allow(context).to receive(:blacklight_config).and_return(blacklight_config) }
|
16
22
|
|
17
|
-
let(:search_builder_class) do
|
18
|
-
Class.new(Blacklight::SearchBuilder) do
|
19
|
-
include Blacklight::Solr::SearchBuilderBehavior
|
20
|
-
end
|
21
|
-
end
|
22
|
-
let(:search_builder) { search_builder_class.new(context) }
|
23
|
-
|
24
23
|
context "with default processor chain" do
|
25
24
|
subject { search_builder }
|
26
25
|
|
@@ -117,7 +116,7 @@ RSpec.describe Blacklight::Solr::SearchBuilderBehavior, api: true do
|
|
117
116
|
end
|
118
117
|
|
119
118
|
it 'is negative' do
|
120
|
-
expect(subject[:'f.subject_ssim.facet.limit']).to eq
|
119
|
+
expect(subject[:'f.subject_ssim.facet.limit']).to eq(-1)
|
121
120
|
end
|
122
121
|
end
|
123
122
|
|
@@ -522,15 +521,6 @@ RSpec.describe Blacklight::Solr::SearchBuilderBehavior, api: true do
|
|
522
521
|
expect(subject[:qq1]).to eq 'xyz'
|
523
522
|
end
|
524
523
|
end
|
525
|
-
|
526
|
-
describe "mapping facet.field" do
|
527
|
-
let(:blacklight_config) do
|
528
|
-
Blacklight::Configuration.new do |config|
|
529
|
-
config.add_facet_field 'some_field'
|
530
|
-
config.add_facet_fields_to_solr_request!
|
531
|
-
end
|
532
|
-
end
|
533
|
-
end
|
534
524
|
end
|
535
525
|
|
536
526
|
describe "#facet_value_to_fq_string" do
|
@@ -564,7 +554,7 @@ RSpec.describe Blacklight::Solr::SearchBuilderBehavior, api: true do
|
|
564
554
|
expect(subject.send(:facet_value_to_fq_string, "facet_name", 1.11)).to eq '{!term f=facet_name}1.11'
|
565
555
|
end
|
566
556
|
|
567
|
-
it "passes floats through" do
|
557
|
+
it "passes floats in strings through" do
|
568
558
|
expect(subject.send(:facet_value_to_fq_string, "facet_name", "1.11")).to eq '{!term f=facet_name}1.11'
|
569
559
|
end
|
570
560
|
|
@@ -1,6 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
RSpec.describe Blacklight::Suggest::Response, api
|
3
|
+
RSpec.describe Blacklight::Suggest::Response, :api do
|
4
4
|
let(:empty_response) { described_class.new({}, { q: 'hello' }, 'suggest', 'mySuggester') }
|
5
5
|
let(:full_response) do
|
6
6
|
described_class.new(
|
@@ -1,6 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
RSpec.describe Blacklight::SuggestSearch, api
|
3
|
+
RSpec.describe Blacklight::SuggestSearch, :api do
|
4
4
|
let(:params) { { q: 'test' } }
|
5
5
|
let(:response) { instance_double(Blacklight::Suggest::Response) }
|
6
6
|
let(:repository) { instance_double(Blacklight::Solr::Repository, suggestions: response) }
|
@@ -11,8 +11,7 @@ RSpec.describe Blacklight::DocumentPresenter do
|
|
11
11
|
let(:search_state) { Blacklight::SearchState.new(params, blacklight_config, controller) }
|
12
12
|
|
13
13
|
before do
|
14
|
-
allow(request_context).to
|
15
|
-
allow(request_context).to receive(:action_name).and_return(:show)
|
14
|
+
allow(request_context).to receive_messages(search_state: search_state, action_name: :show)
|
16
15
|
end
|
17
16
|
|
18
17
|
describe '#fields_to_render' do
|
@@ -1,6 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
RSpec.describe Blacklight::FieldPresenter, api
|
3
|
+
RSpec.describe Blacklight::FieldPresenter, :api do
|
4
4
|
subject(:presenter) { described_class.new(request_context, document, field_config, options) }
|
5
5
|
|
6
6
|
let(:request_context) { double('View context', params: { x: '1' }, search_state: search_state, should_render_field?: true, blacklight_config: config) }
|
@@ -1,6 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
RSpec.describe Blacklight::IndexPresenter, api
|
3
|
+
RSpec.describe Blacklight::IndexPresenter, :api do
|
4
4
|
include Capybara::RSpecMatchers
|
5
5
|
subject { presenter }
|
6
6
|
|
@@ -21,8 +21,7 @@ RSpec.describe Blacklight::IndexPresenter, api: true do
|
|
21
21
|
end
|
22
22
|
|
23
23
|
before do
|
24
|
-
allow(request_context).to
|
25
|
-
allow(request_context).to receive(:action_name).and_return(:index)
|
24
|
+
allow(request_context).to receive_messages(search_state: search_state, action_name: :index)
|
26
25
|
end
|
27
26
|
|
28
27
|
describe '#fields' do
|
@@ -25,7 +25,7 @@ RSpec.describe Blacklight::Rendering::Pipeline do
|
|
25
25
|
let(:values) { ['a'] }
|
26
26
|
let(:field_config) { Blacklight::Configuration::NullField.new(itemprop: 'some-prop', separator_options: nil) }
|
27
27
|
|
28
|
-
it { is_expected.to
|
28
|
+
it { is_expected.to have_css("span[@itemprop='some-prop']", text: "a") }
|
29
29
|
end
|
30
30
|
|
31
31
|
it 'sets the operations on the instance as equal to the class variable' do
|
@@ -1,6 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
RSpec.describe Blacklight::ShowPresenter, api
|
3
|
+
RSpec.describe Blacklight::ShowPresenter, :api do
|
4
4
|
include Capybara::RSpecMatchers
|
5
5
|
subject { presenter }
|
6
6
|
|
@@ -18,8 +18,7 @@ RSpec.describe Blacklight::ShowPresenter, api: true do
|
|
18
18
|
end
|
19
19
|
|
20
20
|
before do
|
21
|
-
allow(request_context).to
|
22
|
-
allow(request_context).to receive(:action_name).and_return(:show)
|
21
|
+
allow(request_context).to receive_messages(search_state: search_state, action_name: :show)
|
23
22
|
end
|
24
23
|
|
25
24
|
describe "link_rel_alternates" do
|
@@ -64,7 +63,7 @@ RSpec.describe Blacklight::ShowPresenter, api: true do
|
|
64
63
|
tmp_value = Capybara.ignore_hidden_elements
|
65
64
|
Capybara.ignore_hidden_elements = false
|
66
65
|
document.export_formats.each_pair do |format, _spec|
|
67
|
-
expect(subject).to
|
66
|
+
expect(subject).to have_css("link[href$='.#{format}']", count: 1) do |tag|
|
68
67
|
expect(tag["rel"]).to eq "alternate"
|
69
68
|
expect(tag["title"]).to eq format.to_s
|
70
69
|
expect(tag["href"]).to eq "url.#{format}"
|
@@ -82,7 +81,7 @@ RSpec.describe Blacklight::ShowPresenter, api: true do
|
|
82
81
|
it "respects unique: true" do
|
83
82
|
tmp_value = Capybara.ignore_hidden_elements
|
84
83
|
Capybara.ignore_hidden_elements = false
|
85
|
-
expect(subject).to
|
84
|
+
expect(subject).to have_css("link[type='application/weird']", count: 1)
|
86
85
|
Capybara.ignore_hidden_elements = tmp_value
|
87
86
|
end
|
88
87
|
end
|
@@ -93,7 +92,7 @@ RSpec.describe Blacklight::ShowPresenter, api: true do
|
|
93
92
|
it "excludes formats from :exclude" do
|
94
93
|
tmp_value = Capybara.ignore_hidden_elements
|
95
94
|
Capybara.ignore_hidden_elements = false
|
96
|
-
expect(subject).
|
95
|
+
expect(subject).to have_no_css("link[href$='.weird_dup']")
|
97
96
|
Capybara.ignore_hidden_elements = tmp_value
|
98
97
|
end
|
99
98
|
end
|
@@ -75,10 +75,10 @@ RSpec.describe Blacklight::ThumbnailPresenter do
|
|
75
75
|
end
|
76
76
|
|
77
77
|
it "calls the provided thumbnail method" do
|
78
|
-
expect(view_context).to receive_messages(xyz: "some-thumbnail")
|
79
78
|
allow(view_context).to receive(:link_to_document).with(document, "some-thumbnail", {})
|
80
79
|
.and_return("link")
|
81
80
|
expect(subject).to eq "link"
|
81
|
+
expect(view_context).to have_received(:xyz)
|
82
82
|
end
|
83
83
|
|
84
84
|
context "and url options have :suppress_link" do
|
@@ -107,8 +107,9 @@ RSpec.describe Blacklight::ThumbnailPresenter do
|
|
107
107
|
it "creates an image tag from the given field" do
|
108
108
|
allow(document).to receive(:fetch).with(:xyz, nil).and_return("http://example.com/some.jpg")
|
109
109
|
allow(view_context).to receive(:image_tag).with("http://example.com/some.jpg", {}).and_return('<img src="image.jpg">')
|
110
|
-
|
110
|
+
allow(view_context).to receive(:link_to_document)
|
111
111
|
subject
|
112
|
+
expect(view_context).to have_received(:link_to_document).with(document, '<img src="image.jpg">', {})
|
112
113
|
end
|
113
114
|
|
114
115
|
it "returns nil if no thumbnail is in the document" do
|
@@ -126,8 +127,9 @@ RSpec.describe Blacklight::ThumbnailPresenter do
|
|
126
127
|
|
127
128
|
it "creates an image tag from the given field" do
|
128
129
|
allow(view_context).to receive(:image_tag).with("http://example.com/some.jpg", {}).and_return('<img src="image.jpg">')
|
129
|
-
|
130
|
+
allow(view_context).to receive(:link_to_document).and_return('<a><img></a>')
|
130
131
|
expect(presenter.thumbnail_tag).to eq '<a><img></a>'
|
132
|
+
expect(view_context).to have_received(:link_to_document).with(document, '<img src="image.jpg">', {})
|
131
133
|
end
|
132
134
|
end
|
133
135
|
end
|
@@ -30,7 +30,7 @@ RSpec.describe "Routing" do
|
|
30
30
|
end
|
31
31
|
end
|
32
32
|
|
33
|
-
describe "solr_document_path for SolrDocument", test
|
33
|
+
describe "solr_document_path for SolrDocument", :test do
|
34
34
|
it "routes correctly" do
|
35
35
|
expect(get: solr_document_path(SolrDocument.new(id: 'asdf'))).to route_to(controller: 'catalog', action: 'show', id: 'asdf')
|
36
36
|
end
|
@@ -1,6 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
RSpec.describe Blacklight::FieldRetriever, api
|
3
|
+
RSpec.describe Blacklight::FieldRetriever, :api do
|
4
4
|
let(:service) { described_class.new(document, blacklight_field_config) }
|
5
5
|
|
6
6
|
let(:blacklight_field_config) { Blacklight::Configuration::Field.new(field: 'author_field', highlight: true) }
|
@@ -8,7 +8,7 @@
|
|
8
8
|
# to talk with solr and get results)? when we do a document request, does
|
9
9
|
# blacklight code get a single document returned?)
|
10
10
|
#
|
11
|
-
RSpec.describe Blacklight::SearchService, api
|
11
|
+
RSpec.describe Blacklight::SearchService, :api do
|
12
12
|
subject { service }
|
13
13
|
|
14
14
|
let(:context) { { whatever: :value } }
|
@@ -17,7 +17,7 @@ RSpec.describe Blacklight::SearchService, api: true do
|
|
17
17
|
let(:user_params) { {} }
|
18
18
|
|
19
19
|
let(:blacklight_config) { Blacklight::Configuration.new }
|
20
|
-
let(:copy_of_catalog_config) {
|
20
|
+
let(:copy_of_catalog_config) { CatalogController.blacklight_config.deep_copy }
|
21
21
|
let(:blacklight_solr) { RSolr.connect(Blacklight.connection_config.except(:adapter)) }
|
22
22
|
|
23
23
|
let(:all_docs_query) { '' }
|
@@ -49,7 +49,7 @@ RSpec.describe Blacklight::SearchService, api: true do
|
|
49
49
|
end
|
50
50
|
|
51
51
|
# SPECS FOR SEARCH RESULTS FOR QUERY
|
52
|
-
describe 'Search Results', integration
|
52
|
+
describe 'Search Results', :integration do
|
53
53
|
let(:blacklight_config) { copy_of_catalog_config }
|
54
54
|
|
55
55
|
describe 'for a sample query returning results' do
|
@@ -81,7 +81,7 @@ RSpec.describe Blacklight::SearchService, api: true do
|
|
81
81
|
end
|
82
82
|
end
|
83
83
|
|
84
|
-
describe "for a query returning multiple groups", integration
|
84
|
+
describe "for a query returning multiple groups", :integration do
|
85
85
|
let(:blacklight_config) { copy_of_catalog_config }
|
86
86
|
let(:user_params) { { q: all_docs_query } }
|
87
87
|
|
@@ -139,7 +139,7 @@ RSpec.describe Blacklight::SearchService, api: true do
|
|
139
139
|
end # Search Results
|
140
140
|
|
141
141
|
# SPECS FOR SEARCH RESULTS FOR FACETS
|
142
|
-
describe 'Facets in Search Results for All Docs Query', integration
|
142
|
+
describe 'Facets in Search Results for All Docs Query', :integration do
|
143
143
|
let(:blacklight_config) { copy_of_catalog_config }
|
144
144
|
let(:user_params) { { q: all_docs_query } }
|
145
145
|
|
@@ -184,7 +184,7 @@ RSpec.describe Blacklight::SearchService, api: true do
|
|
184
184
|
end # facet specs
|
185
185
|
|
186
186
|
# SPECS FOR SEARCH RESULTS FOR PAGING
|
187
|
-
describe 'Paging', integration
|
187
|
+
describe 'Paging', :integration do
|
188
188
|
let(:blacklight_config) { copy_of_catalog_config }
|
189
189
|
let(:user_params) { { q: all_docs_query } }
|
190
190
|
|
@@ -276,7 +276,7 @@ RSpec.describe Blacklight::SearchService, api: true do
|
|
276
276
|
end # page specs
|
277
277
|
|
278
278
|
# SPECS FOR SINGLE DOCUMENT REQUESTS
|
279
|
-
describe 'Get Document By Id', integration
|
279
|
+
describe 'Get Document By Id', :integration do
|
280
280
|
let(:doc_id) { '2007020969' }
|
281
281
|
let(:bad_id) { 'redrum' }
|
282
282
|
|
@@ -299,7 +299,7 @@ RSpec.describe Blacklight::SearchService, api: true do
|
|
299
299
|
end
|
300
300
|
end
|
301
301
|
|
302
|
-
describe 'Get multiple documents By Id', integration
|
302
|
+
describe 'Get multiple documents By Id', :integration do
|
303
303
|
let(:doc_id) { '2007020969' }
|
304
304
|
let(:bad_id) { 'redrum' }
|
305
305
|
let(:response) { service.fetch([doc_id]) }
|
@@ -318,7 +318,7 @@ RSpec.describe Blacklight::SearchService, api: true do
|
|
318
318
|
end
|
319
319
|
|
320
320
|
# SPECS FOR SPELLING SUGGESTIONS VIA SEARCH
|
321
|
-
describe "Searches should return spelling suggestions", integration
|
321
|
+
describe "Searches should return spelling suggestions", :integration do
|
322
322
|
context "for just-poor-enough-query term" do
|
323
323
|
let(:user_params) { { q: 'boo' } }
|
324
324
|
|
data/spec/spec_helper.rb
CHANGED
@@ -28,7 +28,7 @@ Capybara.javascript_driver = :headless_chrome
|
|
28
28
|
|
29
29
|
Capybara.register_driver :headless_chrome do |app|
|
30
30
|
Capybara::Selenium::Driver.load_selenium
|
31
|
-
capabilities =
|
31
|
+
capabilities = Selenium::WebDriver::Chrome::Options.new.tap do |opts|
|
32
32
|
opts.args << '--headless'
|
33
33
|
opts.args << '--disable-gpu'
|
34
34
|
opts.args << '--no-sandbox'
|
@@ -41,7 +41,7 @@ end
|
|
41
41
|
# in spec/support/ and its subdirectories.
|
42
42
|
# Blacklight, again, make sure we're looking in the right place for em.
|
43
43
|
# Relative to HERE, NOT to Rails.root, which is off somewhere else.
|
44
|
-
Dir[Pathname.new(File.expand_path('support/**/*.rb', __dir__))].
|
44
|
+
Dir[Pathname.new(File.expand_path('support/**/*.rb', __dir__))].each { |f| require f }
|
45
45
|
|
46
46
|
RSpec.configure do |config|
|
47
47
|
config.disable_monkey_patching!
|
@@ -6,7 +6,7 @@ module Features
|
|
6
6
|
def search_for q
|
7
7
|
visit root_path
|
8
8
|
fill_in "q", with: q
|
9
|
-
|
9
|
+
click_on 'search'
|
10
10
|
end
|
11
11
|
|
12
12
|
def position_in_result_page(page, id)
|
@@ -20,7 +20,7 @@ module Features
|
|
20
20
|
def number_of_results_for_query(query)
|
21
21
|
visit root_path
|
22
22
|
fill_in "q", with: query
|
23
|
-
|
23
|
+
click_on "search"
|
24
24
|
get_number_of_results_from_page(page)
|
25
25
|
end
|
26
26
|
|
@@ -9,7 +9,7 @@ module Features
|
|
9
9
|
fill_in 'Email', with: email
|
10
10
|
fill_in 'Password', with: password
|
11
11
|
fill_in 'Password confirmation', with: password
|
12
|
-
|
12
|
+
click_on 'Sign up'
|
13
13
|
end
|
14
14
|
|
15
15
|
def sign_in(login = 'user1')
|
@@ -20,9 +20,9 @@ module Features
|
|
20
20
|
fill_in("user_password", with: "password")
|
21
21
|
|
22
22
|
if has_button? "Sign in"
|
23
|
-
|
23
|
+
click_on("Sign in")
|
24
24
|
elsif has_button? "Log in"
|
25
|
-
|
25
|
+
click_on("Log in")
|
26
26
|
else
|
27
27
|
raise "Unable to find sign in button"
|
28
28
|
end
|
@@ -20,13 +20,13 @@ class TestAppGenerator < Rails::Generators::Base
|
|
20
20
|
options += ' --skip-assets'
|
21
21
|
end
|
22
22
|
|
23
|
-
generate 'blacklight:install', options
|
23
|
+
generate :'blacklight:install', options
|
24
24
|
end
|
25
25
|
|
26
26
|
def run_test_support_generator
|
27
27
|
say_status("warning", "GENERATING test_support", :yellow)
|
28
28
|
|
29
|
-
generate
|
29
|
+
generate(:'blacklight:test_support')
|
30
30
|
end
|
31
31
|
|
32
32
|
def add_local_assets_for_propshaft
|
@@ -6,10 +6,7 @@ RSpec.describe "catalog/_document" do
|
|
6
6
|
|
7
7
|
before do
|
8
8
|
allow(controller).to receive(:controller_name).and_return('test')
|
9
|
-
allow(view).to
|
10
|
-
allow(view).to receive(:blacklight_config).and_return(blacklight_config)
|
11
|
-
allow(view).to receive(:search_session).and_return({})
|
12
|
-
allow(view).to receive(:current_search_session).and_return(nil)
|
9
|
+
allow(view).to receive_messages(render_grouped_response?: false, blacklight_config: blacklight_config, search_session: {}, current_search_session: nil)
|
13
10
|
allow(view.main_app).to receive(:track_test_path).and_return('/track')
|
14
11
|
assign(:response, instance_double(Blacklight::Solr::Response, start: 20))
|
15
12
|
end
|
@@ -1,6 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
RSpec.describe "catalog/_document_list"
|
3
|
+
RSpec.describe "catalog/_document_list" do
|
4
4
|
let(:view_type) { 'some-view' }
|
5
5
|
let(:view_config) { double(Blacklight::Configuration::ViewConfig) }
|
6
6
|
|
@@ -12,6 +12,6 @@ RSpec.describe "catalog/_document_list", type: :view do
|
|
12
12
|
|
13
13
|
it "includes a class for the current view" do
|
14
14
|
render(partial: "catalog/document_list", locals: { view_config: view_config })
|
15
|
-
expect(rendered).to
|
15
|
+
expect(rendered).to have_css(".documents-some-view")
|
16
16
|
end
|
17
17
|
end
|