blacklight 8.8.3 → 9.0.0.beta1
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 +3 -3
- data/.github/pull_request_template.md +7 -0
- data/.github/workflows/ruby.yml +1 -9
- data/.rubocop.yml +2 -2
- data/.rubocop_todo.yml +0 -9
- data/README.md +30 -8
- data/VERSION +1 -1
- data/app/assets/builds/blacklight.css +448 -0
- data/app/assets/javascripts/blacklight/blacklight.esm.js +18 -15
- data/app/assets/javascripts/blacklight/blacklight.esm.js.map +1 -1
- data/app/assets/javascripts/blacklight/blacklight.js +18 -15
- data/app/assets/javascripts/blacklight/blacklight.js.map +1 -1
- data/app/assets/stylesheets/blacklight/_balanced_list.scss +1 -4
- data/app/assets/stylesheets/blacklight/_blacklight_base.scss +1 -3
- data/app/assets/stylesheets/blacklight/_bookmark.scss +44 -41
- data/app/assets/stylesheets/blacklight/_bootstrap_overrides.scss +7 -26
- data/app/assets/stylesheets/blacklight/_constraints.scss +15 -24
- data/app/assets/stylesheets/blacklight/_controls.scss +2 -18
- data/app/assets/stylesheets/blacklight/_facets.scss +15 -82
- data/app/assets/stylesheets/blacklight/_group.scss +2 -5
- data/app/assets/stylesheets/blacklight/_header.scss +4 -11
- data/app/assets/stylesheets/blacklight/_icons.scss +0 -8
- data/app/assets/stylesheets/blacklight/_modal.scss +2 -2
- data/app/assets/stylesheets/blacklight/_pagination.scss +0 -4
- data/app/assets/stylesheets/blacklight/_search_form.scss +0 -1
- data/app/assets/stylesheets/blacklight/_search_history.scss +0 -4
- data/app/assets/stylesheets/blacklight/_search_results.scss +1 -15
- data/app/assets/stylesheets/blacklight/blacklight_defaults.scss +9 -14
- data/app/assets/stylesheets/blacklight/build.scss +4 -0
- data/app/components/blacklight/advanced_search_form_component.rb +1 -1
- data/app/components/blacklight/constraint_component.rb +1 -1
- data/app/components/blacklight/constraint_layout_component.html.erb +2 -2
- data/app/components/blacklight/constraints_component.html.erb +2 -2
- data/app/components/blacklight/constraints_component.rb +1 -1
- data/app/components/blacklight/document/action_component.rb +3 -1
- data/app/components/blacklight/document/bookmark_component.html.erb +3 -3
- data/app/components/blacklight/document/group_component.html.erb +1 -1
- data/app/components/blacklight/document/page_header_component.rb +1 -1
- data/app/components/blacklight/document/sidebar_component.rb +5 -5
- data/app/components/blacklight/document_component.rb +9 -13
- data/app/components/blacklight/document_title_component.rb +3 -2
- data/app/components/blacklight/facet_field_component.html.erb +5 -5
- data/app/components/blacklight/facet_field_list_component.rb +4 -22
- data/app/components/blacklight/facet_item_component.rb +2 -2
- data/app/components/blacklight/facet_item_pivot_component.rb +2 -2
- data/app/components/blacklight/response/facet_group_component.html.erb +3 -18
- data/app/components/blacklight/response/facet_group_component.rb +7 -23
- data/app/components/blacklight/response/facet_toggle_button_component.html.erb +16 -0
- data/app/components/blacklight/response/facet_toggle_button_component.rb +14 -0
- data/app/components/blacklight/response/pagination_component.html.erb +1 -1
- data/app/components/blacklight/response/pagination_component.rb +2 -1
- data/app/components/blacklight/response/sort_component.rb +1 -0
- data/app/components/blacklight/response/view_type_button_component.html.erb +1 -1
- data/app/components/blacklight/response/view_type_component.html.erb +1 -1
- data/app/components/blacklight/search/facet_suggest_input.html.erb +7 -7
- data/app/components/blacklight/search/facet_suggest_input.rb +0 -4
- data/app/components/blacklight/search/per_page_component.html.erb +1 -1
- data/app/components/blacklight/search/per_page_component.rb +1 -0
- data/app/components/blacklight/search/sidebar_component.html.erb +1 -1
- data/app/components/blacklight/search/sidebar_component.rb +1 -1
- data/app/components/blacklight/search_bar_component.html.erb +3 -3
- data/app/components/blacklight/search_bar_component.rb +2 -2
- data/app/components/blacklight/search_button_component.rb +2 -2
- data/app/components/blacklight/search_context/server_applied_params_component.html.erb +2 -2
- data/app/components/blacklight/search_context/server_applied_params_component.rb +9 -0
- data/app/components/blacklight/skip_link_component.html.erb +1 -1
- data/app/components/blacklight/skip_link_component.rb +7 -3
- data/app/components/blacklight/skip_link_item_component.rb +18 -0
- data/app/components/blacklight/top_navbar_component.html.erb +1 -1
- data/app/controllers/concerns/blacklight/catalog.rb +3 -2
- data/app/controllers/concerns/blacklight/search_context.rb +0 -12
- data/app/helpers/blacklight/blacklight_helper_behavior.rb +0 -6
- data/app/helpers/blacklight/catalog_helper_behavior.rb +1 -11
- data/app/helpers/blacklight/configuration_helper_behavior.rb +0 -12
- data/app/helpers/blacklight/document_helper_behavior.rb +0 -26
- data/app/helpers/blacklight/icon_helper_behavior.rb +1 -9
- data/app/helpers/blacklight/layout_helper_behavior.rb +2 -2
- data/app/helpers/blacklight/render_partials_helper_behavior.rb +0 -14
- data/app/helpers/blacklight/url_helper_behavior.rb +1 -1
- data/app/javascript/{blacklight → blacklight-frontend}/bookmark_toggle.js +1 -1
- data/app/javascript/{blacklight → blacklight-frontend}/core.js +2 -10
- data/app/javascript/{blacklight → blacklight-frontend}/debounce.js +1 -1
- data/app/javascript/{blacklight → blacklight-frontend}/facet_suggest.js +3 -3
- data/app/javascript/blacklight-frontend/index.js +18 -0
- data/app/javascript/{blacklight → blacklight-frontend}/modal.js +16 -2
- data/app/models/concerns/blacklight/document.rb +0 -11
- data/app/models/concerns/blacklight/user.rb +1 -1
- data/app/presenters/blacklight/facet_field_presenter.rb +2 -2
- data/app/presenters/blacklight/json_presenter.rb +3 -1
- data/app/services/blacklight/search_params_yaml_coder.rb +0 -2
- data/app/views/bookmarks/_clear_bookmarks_widget.html.erb +0 -2
- data/app/views/bookmarks/index.html.erb +1 -1
- data/app/views/catalog/_results_pagination.html.erb +2 -5
- data/app/views/catalog/_search_results.html.erb +4 -4
- data/app/views/catalog/_search_results_header.html.erb +1 -1
- data/app/views/catalog/_sort_and_per_page.html.erb +1 -1
- data/app/views/catalog/_sort_widget.html.erb +1 -0
- data/app/views/catalog/facet.html.erb +1 -1
- data/app/views/catalog/show.html.erb +2 -3
- data/app/views/kaminari/blacklight/_paginator.html.erb +1 -2
- data/app/views/layouts/blacklight/base.html.erb +3 -7
- data/app/views/search_history/index.html.erb +0 -2
- data/blacklight.gemspec +4 -4
- data/config/importmap.rb +1 -1
- data/config/locales/blacklight.ar.yml +4 -4
- data/config/locales/blacklight.ca.yml +124 -124
- data/config/locales/blacklight.de.yml +2 -2
- data/config/locales/blacklight.en.yml +14 -14
- data/config/locales/blacklight.es.yml +4 -4
- data/config/locales/blacklight.fr.yml +4 -4
- data/config/locales/blacklight.hu.yml +4 -4
- data/config/locales/blacklight.it.yml +3 -3
- data/config/locales/blacklight.nl.yml +3 -3
- data/config/locales/blacklight.pt-BR.yml +3 -3
- data/config/locales/blacklight.sq.yml +4 -4
- data/config/locales/blacklight.zh.yml +4 -4
- data/lib/blacklight/configuration/display_field.rb +1 -1
- data/lib/blacklight/configuration/fields.rb +3 -3
- data/lib/blacklight/configuration/view_config.rb +0 -2
- data/lib/blacklight/configuration.rb +7 -12
- data/lib/blacklight/engine.rb +0 -6
- data/lib/blacklight/open_struct_with_hash_access.rb +4 -4
- data/lib/blacklight/search_builder.rb +4 -4
- data/lib/blacklight/search_state/filter_field.rb +2 -2
- data/lib/blacklight/solr/request.rb +1 -7
- data/lib/blacklight/solr/response/group_response.rb +2 -2
- data/lib/blacklight.rb +1 -1
- data/lib/generators/blacklight/assets/importmap_generator.rb +8 -24
- data/lib/generators/blacklight/assets/propshaft_generator.rb +1 -1
- data/lib/generators/blacklight/assets_generator.rb +3 -3
- data/lib/generators/blacklight/controller_generator.rb +3 -3
- data/lib/generators/blacklight/user_generator.rb +9 -10
- data/package.json +14 -4
- data/rollup.config.js +1 -1
- data/spec/components/blacklight/document/action_component_spec.rb +1 -5
- data/spec/components/blacklight/document/sidebar_component_spec.rb +5 -20
- data/spec/components/blacklight/facet_field_checkboxes_component_spec.rb +2 -2
- data/spec/components/blacklight/facet_field_list_component_spec.rb +2 -2
- data/spec/components/blacklight/search/facet_suggest_input_spec.rb +2 -18
- data/spec/components/blacklight/search_bar_component_spec.rb +1 -1
- data/spec/controllers/catalog_controller_spec.rb +1 -1
- data/spec/features/axe_spec.rb +6 -11
- data/spec/features/bookmarks_spec.rb +48 -11
- data/spec/features/facets_spec.rb +21 -36
- data/spec/features/search_context_spec.rb +1 -2
- data/spec/features/search_filters_spec.rb +6 -6
- data/spec/helpers/blacklight/configuration_helper_behavior_spec.rb +0 -9
- data/spec/helpers/blacklight/render_partials_helper_behavior_spec.rb +1 -1
- data/spec/lib/blacklight/parameters_spec.rb +1 -12
- data/spec/lib/blacklight/search_state/filter_field_spec.rb +0 -18
- data/spec/models/blacklight/solr/request_spec.rb +7 -0
- data/spec/services/blacklight/search_service_spec.rb +1 -1
- data/spec/test_app_templates/Gemfile.extra +0 -1
- data/spec/views/catalog/_facet_layout.html.erb_spec.rb +3 -3
- data/spec/views/catalog/index.html.erb_spec.rb +6 -3
- data/spec/views/catalog/show.html.erb_spec.rb +1 -0
- data/tasks/blacklight.rake +8 -5
- metadata +30 -54
- data/app/assets/stylesheets/blacklight/_autocomplete.scss +0 -25
- data/app/assets/stylesheets/blacklight/_mixins.scss +0 -20
- data/app/components/blacklight/icons/legacy_icon_component.rb +0 -30
- data/app/javascript/blacklight/index.js +0 -18
- data/app/views/catalog/_constraints.html.erb +0 -1
- data/app/views/catalog/_facets.html.erb +0 -5
- data/app/views/catalog/_search_form.html.erb +0 -7
- data/app/views/catalog/_search_header.html.erb +0 -1
- data/app/views/catalog/_show_sidebar.html.erb +0 -3
- data/app/views/catalog/_show_tools.html.erb +0 -2
- data/app/views/catalog/_start_over.html.erb +0 -1
- data/app/views/shared/_header_navbar.html.erb +0 -1
- data/lib/generators/blacklight/assets/sprockets_generator.rb +0 -68
- data/spec/views/catalog/_search_header.erb_spec.rb +0 -14
- data/spec/views/catalog/_show_sidebar.erb_spec.rb +0 -24
- data/spec/views/catalog/_show_tools.html.erb_spec.rb +0 -37
- /data/app/javascript/{blacklight → blacklight-frontend}/button_focus.js +0 -0
- /data/app/javascript/{blacklight → blacklight-frontend}/checkbox_submit.js +0 -0
- /data/app/javascript/{blacklight → blacklight-frontend}/modalForm.js +0 -0
- /data/app/javascript/{blacklight → blacklight-frontend}/search_context.js +0 -0
@@ -1,6 +1,11 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
RSpec.describe "Bookmarks" do
|
4
|
+
before do
|
5
|
+
# Prevent any existing bookmarks from interfering
|
6
|
+
Bookmark.delete_all
|
7
|
+
end
|
8
|
+
|
4
9
|
describe "navigating from the homepage" do
|
5
10
|
it "has a link to the history page" do
|
6
11
|
sign_in 'user1'
|
@@ -40,13 +45,25 @@ RSpec.describe "Bookmarks" do
|
|
40
45
|
expect(page).to have_content 'Successfully removed bookmark.'
|
41
46
|
end
|
42
47
|
|
43
|
-
|
44
|
-
|
45
|
-
check 'Bookmark'
|
48
|
+
context 'when bookmark_icon_component is set to nil' do
|
49
|
+
let!(:default_bookmark_icon_component) { CatalogController.blacklight_config.bookmark_icon_component }
|
46
50
|
|
47
|
-
|
48
|
-
|
49
|
-
|
51
|
+
before do
|
52
|
+
CatalogController.blacklight_config.bookmark_icon_component = nil
|
53
|
+
end
|
54
|
+
|
55
|
+
after do
|
56
|
+
CatalogController.blacklight_config.bookmark_icon_component = default_bookmark_icon_component
|
57
|
+
end
|
58
|
+
|
59
|
+
it 'shows bookmarks as checkboxes', :js do
|
60
|
+
visit solr_document_path('2007020969')
|
61
|
+
check 'Bookmark'
|
62
|
+
|
63
|
+
visit solr_document_path('2007020969')
|
64
|
+
expect(page).to have_css('input[type="checkbox"][checked]')
|
65
|
+
uncheck 'In Bookmarks'
|
66
|
+
end
|
50
67
|
end
|
51
68
|
|
52
69
|
it "adds bookmarks after a user logs in" do
|
@@ -82,17 +99,37 @@ RSpec.describe "Bookmarks" do
|
|
82
99
|
expect(page).to have_content 'Ci an zhou bian'
|
83
100
|
end
|
84
101
|
|
85
|
-
context "
|
102
|
+
context "when the bookmark icon is configured (default)" do
|
103
|
+
it 'shows bookmark icon', :js do
|
104
|
+
visit solr_document_path('2007020969')
|
105
|
+
expect(page).to have_css('.blacklight-icons-bookmark')
|
106
|
+
find('.blacklight-icons-bookmark').click
|
107
|
+
|
108
|
+
expect(find('.toggle-bookmark-input', visible: false)).to be_checked
|
109
|
+
find('.blacklight-icons-bookmark').click
|
110
|
+
end
|
111
|
+
end
|
112
|
+
|
113
|
+
context "without bookmark navbar element" do
|
114
|
+
let!(:default_nav_partials) { CatalogController.blacklight_config.navbar.partials }
|
115
|
+
|
86
116
|
before do
|
87
|
-
CatalogController.blacklight_config.
|
117
|
+
CatalogController.blacklight_config.navbar.partials = CatalogController.blacklight_config.navbar.partials.except(:bookmark)
|
118
|
+
end
|
119
|
+
|
120
|
+
after do
|
121
|
+
CatalogController.blacklight_config.navbar.partials = default_nav_partials
|
88
122
|
end
|
89
123
|
|
90
|
-
it '
|
124
|
+
it 'adds and removes bookmarks', :js do
|
91
125
|
visit solr_document_path('2007020969')
|
92
|
-
expect(page).to
|
126
|
+
expect(page).to have_no_css('#bookmarks_nav')
|
93
127
|
find('.blacklight-icons-bookmark').click
|
94
128
|
|
95
|
-
expect(
|
129
|
+
expect(page).to have_content 'In Bookmarks'
|
130
|
+
|
131
|
+
visit solr_document_path('2007020969')
|
132
|
+
expect(find('.toggle-bookmark-input', visible: false)).to be_checked
|
96
133
|
find('.blacklight-icons-bookmark').click
|
97
134
|
end
|
98
135
|
end
|
@@ -100,49 +100,34 @@ RSpec.describe "Facets" do
|
|
100
100
|
end
|
101
101
|
|
102
102
|
describe 'Facet modal' do
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
allow(CatalogController).to receive(:blacklight_config).and_return enabled
|
108
|
-
end
|
109
|
-
|
110
|
-
it 'allows the user to filter a long list of facet values', :js do
|
111
|
-
visit '/catalog/facet/subject_ssim'
|
112
|
-
expect(page).to have_no_link 'Old age' # This is on the second page of facet values
|
113
|
-
expect(page).to have_css 'a.facet-select', count: 20
|
103
|
+
it 'allows the user to filter a long list of facet values', :js do
|
104
|
+
visit '/catalog/facet/subject_ssim'
|
105
|
+
expect(page).to have_no_link 'Old age' # This is on the second page of facet values
|
106
|
+
expect(page).to have_css 'a.facet-select', count: 20
|
114
107
|
|
115
|
-
|
108
|
+
fill_in 'facet_suggest_subject_ssim', with: "ag"
|
116
109
|
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
it 'shows the user facet suggestions that are relevant to their q param', :js do
|
122
|
-
visit '/catalog/facet/subject_ssim?q=tibet&search_field=all_fields'
|
123
|
-
fill_in 'facet_suggest_subject_ssim', with: 'la'
|
110
|
+
expect(page).to have_link 'Old age'
|
111
|
+
expect(page).to have_css 'a.facet-select', count: 2
|
112
|
+
end
|
124
113
|
|
125
|
-
|
126
|
-
|
127
|
-
|
114
|
+
it 'shows the user facet suggestions that are relevant to their q param', :js do
|
115
|
+
visit '/catalog/facet/subject_ssim?q=tibet&search_field=all_fields'
|
116
|
+
fill_in 'facet_suggest_subject_ssim', with: 'la'
|
128
117
|
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
expect(page).to have_css 'a.facet-select', count: 20
|
118
|
+
expect(page).to have_link 'Tibetan language'
|
119
|
+
expect(page).to have_css 'a.facet-select', count: 1
|
120
|
+
end
|
133
121
|
|
134
|
-
|
122
|
+
it 'allows the user to filter more than once', :js do
|
123
|
+
visit '/catalog/facet/subject_ssim'
|
124
|
+
expect(page).to have_no_link 'Old age' # This is on the second page of facet values
|
125
|
+
expect(page).to have_css 'a.facet-select', count: 20
|
135
126
|
|
136
|
-
|
137
|
-
expect(page).to have_link('Old age', href: '/?f%5Bsubject_ssim%5D%5B%5D=Old+age')
|
138
|
-
end
|
139
|
-
end
|
140
|
-
end
|
127
|
+
fill_in 'facet_suggest_subject_ssim', with: "ag"
|
141
128
|
|
142
|
-
|
143
|
-
|
144
|
-
visit '/?f[subject_ssim][0]=Iran.+Viza%CC%84rat-i+Kishvar'
|
145
|
-
expect(page).to have_text 'Naqdī barā-yi tamām-i fuṣūl'
|
129
|
+
expect(page).to have_link 'Old age'
|
130
|
+
expect(page).to have_link('Old age', href: '/?f%5Bsubject_ssim%5D%5B%5D=Old+age')
|
146
131
|
end
|
147
132
|
end
|
148
133
|
end
|
@@ -47,10 +47,9 @@ RSpec.describe "Search Results context" do
|
|
47
47
|
search_for ''
|
48
48
|
expect(page).to have_content "1 - 10"
|
49
49
|
find_all('.index_title a').last.click
|
50
|
-
expect(page).to have_css "h1", text: "Pluvial nectar"
|
51
50
|
click_on "Next »"
|
52
51
|
|
53
|
-
expect(page).to
|
52
|
+
expect(page).to have_content "Naqdī barā-yi tamām-i"
|
54
53
|
click_on "Back to Search"
|
55
54
|
expect(page).to have_content "11 - 20"
|
56
55
|
end
|
@@ -171,7 +171,7 @@ RSpec.describe "Facets" do
|
|
171
171
|
visit root_path
|
172
172
|
|
173
173
|
within(".blacklight-subject_ssim") do
|
174
|
-
expect(page).to have_no_css(".
|
174
|
+
expect(page).to have_no_css(".accordion-body", visible: true)
|
175
175
|
end
|
176
176
|
end
|
177
177
|
|
@@ -179,9 +179,9 @@ RSpec.describe "Facets" do
|
|
179
179
|
visit root_path
|
180
180
|
|
181
181
|
within(".blacklight-subject_ssim") do
|
182
|
-
expect(page).to have_no_css(".
|
182
|
+
expect(page).to have_no_css(".accordion-body", visible: true)
|
183
183
|
click_on 'Topic'
|
184
|
-
expect(page).to have_css(".
|
184
|
+
expect(page).to have_css(".accordion-body", visible: true)
|
185
185
|
end
|
186
186
|
end
|
187
187
|
|
@@ -189,9 +189,9 @@ RSpec.describe "Facets" do
|
|
189
189
|
visit root_path
|
190
190
|
|
191
191
|
within(".blacklight-subject_ssim") do
|
192
|
-
expect(page).to have_no_css(".
|
193
|
-
find(".
|
194
|
-
expect(page).to have_css(".
|
192
|
+
expect(page).to have_no_css(".accordion-body", visible: true)
|
193
|
+
find(".accordion-header").click
|
194
|
+
expect(page).to have_css(".accordion-body", visible: true)
|
195
195
|
end
|
196
196
|
end
|
197
197
|
|
@@ -93,15 +93,6 @@ RSpec.describe Blacklight::ConfigurationHelperBehavior do
|
|
93
93
|
end
|
94
94
|
end
|
95
95
|
|
96
|
-
describe "#per_page_options_for_select" do
|
97
|
-
it "is the per-page values formatted as options_for_select" do
|
98
|
-
allow(helper).to receive_messages(blacklight_config: double(per_page: [11, 22, 33]))
|
99
|
-
expect(helper.per_page_options_for_select).to include ["11<span class=\"sr-only visually-hidden\"> per page</span>", 11]
|
100
|
-
expect(helper.per_page_options_for_select).to include ["22<span class=\"sr-only visually-hidden\"> per page</span>", 22]
|
101
|
-
expect(helper.per_page_options_for_select).to include ["33<span class=\"sr-only visually-hidden\"> per page</span>", 33]
|
102
|
-
end
|
103
|
-
end
|
104
|
-
|
105
96
|
describe "#should_render_field?" do
|
106
97
|
let(:field_config) { double('field config', if: true, unless: false) }
|
107
98
|
|
@@ -52,7 +52,7 @@ RSpec.describe Blacklight::Parameters do
|
|
52
52
|
let(:search_state) { Blacklight::SearchState.new(query_params, blacklight_config) }
|
53
53
|
let(:blacklight_config) { Blacklight::Configuration.new }
|
54
54
|
|
55
|
-
context 'with
|
55
|
+
context 'with facebooks badly mangled query parameters' do
|
56
56
|
let(:query_params) do
|
57
57
|
ActionController::Parameters.new(
|
58
58
|
f: { field: { '0': 'first', '1': 'second' } },
|
@@ -67,17 +67,6 @@ RSpec.describe Blacklight::Parameters do
|
|
67
67
|
it 'normalizes the facets to the expected format' do
|
68
68
|
expect(params.permit_search_params.to_h.with_indifferent_access).to include f: { field: %w[first second] }, f_inclusive: { field: %w[first second] }
|
69
69
|
end
|
70
|
-
|
71
|
-
context 'when several fields are configured' do
|
72
|
-
before do
|
73
|
-
blacklight_config.add_facet_field 'other_field'
|
74
|
-
blacklight_config.add_facet_field 'some_other_pivot_field', pivot: %w[abc def]
|
75
|
-
end
|
76
|
-
|
77
|
-
it 'normalizes the facets to the expected format' do
|
78
|
-
expect(params.permit_search_params.to_h.with_indifferent_access).to include f: { field: %w[first second] }, f_inclusive: { field: %w[first second] }
|
79
|
-
end
|
80
|
-
end
|
81
70
|
end
|
82
71
|
|
83
72
|
context 'with filter_search_state_fields set to false' do
|
@@ -198,22 +198,4 @@ RSpec.describe Blacklight::SearchState::FilterField do
|
|
198
198
|
expect(search_state.filter('some_field').include?(OpenStruct.new(value: '1'))).to be true
|
199
199
|
end
|
200
200
|
end
|
201
|
-
|
202
|
-
describe '#permitted_params' do
|
203
|
-
context 'with a pivot facet' do
|
204
|
-
let(:blacklight_config) do
|
205
|
-
Blacklight::Configuration.new.configure do |config|
|
206
|
-
config.add_facet_field 'my_pivot', pivot: %w[format language_ssim]
|
207
|
-
end
|
208
|
-
end
|
209
|
-
|
210
|
-
it 'marks all the pivot fields as permitted' do
|
211
|
-
field = described_class.new blacklight_config.facet_fields['my_pivot'], search_state
|
212
|
-
expect(field.permitted_params).to eq({
|
213
|
-
f: { "-format" => [], "-language_ssim" => [], "format" => [], "language_ssim" => [] },
|
214
|
-
f_inclusive: { "format" => [], "language_ssim" => [] }
|
215
|
-
})
|
216
|
-
end
|
217
|
-
end
|
218
|
-
end
|
219
201
|
end
|
@@ -64,5 +64,12 @@ RSpec.describe Blacklight::Solr::Request, :api do
|
|
64
64
|
|
65
65
|
expect(subject.dig('json', 'query', 'bool', 'must')).to contain_exactly('some query', 'also required')
|
66
66
|
end
|
67
|
+
|
68
|
+
it 'filters out empty query' do
|
69
|
+
subject['q'] = ""
|
70
|
+
subject.append_boolean_query :must, 'present query'
|
71
|
+
|
72
|
+
expect(subject.dig('json', 'query', 'bool', 'must')).to contain_exactly('present query')
|
73
|
+
end
|
67
74
|
end
|
68
75
|
end
|
@@ -59,7 +59,7 @@ RSpec.describe Blacklight::SearchService, :api do
|
|
59
59
|
allow(blacklight_config).to receive(:default_solr_params).and_return(qt: 'custom_request_handler')
|
60
60
|
allow(blacklight_solr).to receive(:send_and_receive) do |path, params|
|
61
61
|
expect(path).to eq 'select'
|
62
|
-
expect(params[:params]['facet.field']).to
|
62
|
+
expect(params[:params]['facet.field']).to eq ["format", "{!ex=pub_date_ssim_single}pub_date_ssim", "subject_ssim", "language_ssim", "lc_1letter_ssim", "subject_geo_ssim", "subject_era_ssim"]
|
63
63
|
expect(params[:params]["facet.query"]).to eq ["pub_date_ssim:[#{5.years.ago.year} TO *]", "pub_date_ssim:[#{10.years.ago.year} TO *]", "pub_date_ssim:[#{25.years.ago.year} TO *]"]
|
64
64
|
expect(params[:params]).to include('rows' => 10, 'qt' => "custom_request_handler", 'q' => "", "f.subject_ssim.facet.limit" => 21, 'sort' => "score desc, pub_date_si desc, title_si asc")
|
65
65
|
end.and_return('response' => { 'docs' => [] })
|
@@ -28,14 +28,14 @@ RSpec.describe "catalog/facet_layout" do
|
|
28
28
|
it "is collapsable" do
|
29
29
|
render partial: 'catalog/facet_layout', locals: { facet_field: facet_field }
|
30
30
|
expect(rendered).to have_css 'button.collapsed[data-toggle="collapse"][data-bs-toggle="collapse"][aria-expanded="false"]'
|
31
|
-
expect(rendered).to have_css '.collapse .
|
31
|
+
expect(rendered).to have_css '.collapse .accordion-body'
|
32
32
|
end
|
33
33
|
|
34
34
|
it "is configured to be open by default" do
|
35
35
|
allow(facet_field).to receive_messages(collapse: false)
|
36
36
|
render partial: 'catalog/facet_layout', locals: { facet_field: facet_field }
|
37
37
|
expect(rendered).to have_css 'button[data-toggle="collapse"][data-bs-toggle="collapse"][aria-expanded="true"]'
|
38
|
-
expect(rendered).to have_no_css '.
|
39
|
-
expect(rendered).to have_css '.collapse.show .
|
38
|
+
expect(rendered).to have_no_css '.accordion-header.collapsed'
|
39
|
+
expect(rendered).to have_css '.collapse.show .accordion-body'
|
40
40
|
end
|
41
41
|
end
|
@@ -19,14 +19,17 @@ RSpec.describe "catalog/index.html.erb" do
|
|
19
19
|
describe "with search parameters" do
|
20
20
|
before do
|
21
21
|
stub_template "catalog/_results_pagination.html.erb" => ""
|
22
|
-
stub_template "catalog/_search_header.html.erb" => "header_content"
|
23
22
|
allow(view).to receive_messages(has_search_parameters?: true, blacklight_config: Blacklight::Configuration.new)
|
24
|
-
|
23
|
+
allow(controller).to receive_messages(blacklight_config: Blacklight::Configuration.new)
|
24
|
+
|
25
|
+
@response = response
|
25
26
|
end
|
26
27
|
|
28
|
+
let(:response) { Blacklight::Solr::Response.new({ response: { numFound: 30 } }, start: 10, rows: 10) }
|
29
|
+
|
27
30
|
it "renders the search_header partial" do
|
28
31
|
render
|
29
|
-
expect(rendered).to match /
|
32
|
+
expect(rendered).to match /sortAndPerPage/
|
30
33
|
end
|
31
34
|
end
|
32
35
|
end
|
@@ -7,6 +7,7 @@ RSpec.describe "catalog/show.html.erb" do
|
|
7
7
|
|
8
8
|
before do
|
9
9
|
allow(presenter).to receive(:html_title).and_return('Heading')
|
10
|
+
allow(document).to receive(:more_like_this).and_return([])
|
10
11
|
allow(view).to receive_messages(has_user_authentication_provider?: false)
|
11
12
|
allow(view).to receive_messages(render_document_sidebar_partial: "Sidebar")
|
12
13
|
allow(view).to receive_messages(current_search_session: nil, search_session: {})
|
data/tasks/blacklight.rake
CHANGED
@@ -3,7 +3,7 @@
|
|
3
3
|
require 'engine_cart/rake_task'
|
4
4
|
|
5
5
|
require 'rspec/core/rake_task'
|
6
|
-
RSpec::Core::RakeTask.new(:
|
6
|
+
RSpec::Core::RakeTask.new(spec: 'blacklight:build_host_assets') do |t|
|
7
7
|
t.pattern = 'spec/**/*_spec.rb'
|
8
8
|
end
|
9
9
|
|
@@ -46,15 +46,18 @@ desc "Run test suite"
|
|
46
46
|
task ci: ['build:npm'] do
|
47
47
|
with_solr do
|
48
48
|
Rake::Task['blacklight:internal:seed'].invoke
|
49
|
-
within_test_app do
|
50
|
-
# Precompiles the assets
|
51
|
-
system "bin/rake spec:prepare"
|
52
|
-
end
|
53
49
|
Rake::Task['blacklight:coverage'].invoke
|
54
50
|
end
|
55
51
|
end
|
56
52
|
|
57
53
|
namespace :blacklight do
|
54
|
+
task :build_host_assets do
|
55
|
+
within_test_app do
|
56
|
+
# Precompiles the assets
|
57
|
+
`bin/rails spec:prepare`
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
58
61
|
desc "Run tests with coverage"
|
59
62
|
task :coverage do
|
60
63
|
ENV['COVERAGE'] = 'true'
|