blacklight 8.2.2 → 8.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|