blacklight 8.12.2 → 8.13.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/.github/matrix.json +43 -26
- data/.github/workflows/test.yml +1 -2
- data/.rubocop.yml +151 -8
- data/.rubocop_todo.yml +65 -53
- data/VERSION +1 -1
- data/app/assets/javascripts/blacklight/blacklight.esm.js.map +1 -1
- data/app/assets/javascripts/blacklight/blacklight.js.map +1 -1
- data/app/components/blacklight/advanced_search_form_component.rb +2 -2
- data/app/components/blacklight/constraints_component.rb +2 -2
- data/app/components/blacklight/document/bookmark_component.rb +2 -2
- data/app/components/blacklight/document/more_like_this_component.rb +2 -2
- data/app/components/blacklight/icons/legacy_icon_component.rb +1 -1
- data/app/components/blacklight/metadata_field_plain_text_layout_component.rb +2 -2
- data/app/controllers/concerns/blacklight/bookmarks.rb +5 -5
- data/app/controllers/concerns/blacklight/search_context.rb +1 -1
- data/app/controllers/concerns/blacklight/search_history.rb +1 -1
- data/app/helpers/blacklight/configuration_helper_behavior.rb +2 -2
- data/app/helpers/blacklight/icon_helper_behavior.rb +3 -3
- data/app/helpers/blacklight/layout_helper_behavior.rb +2 -2
- data/app/models/blacklight/icon.rb +3 -2
- data/app/models/concerns/blacklight/user.rb +1 -0
- data/app/presenters/blacklight/facet_field_presenter.rb +2 -2
- data/app/presenters/blacklight/rendering/helper_method.rb +4 -4
- data/app/presenters/blacklight/rendering/join.rb +2 -2
- data/app/presenters/blacklight/rendering/microdata.rb +1 -0
- data/app/values/blacklight/types.rb +2 -2
- data/app/views/catalog/_email_form.html.erb +2 -2
- data/app/views/catalog/_sms_form.html.erb +2 -2
- data/blacklight.gemspec +1 -1
- data/lib/blacklight/abstract_repository.rb +2 -2
- data/lib/blacklight/component.rb +2 -0
- data/lib/blacklight/configuration/context.rb +3 -3
- data/lib/blacklight/configuration/display_field.rb +1 -1
- data/lib/blacklight/configuration/field.rb +10 -10
- data/lib/blacklight/configuration/fields.rb +3 -3
- data/lib/blacklight/configuration/sort_field.rb +2 -2
- data/lib/blacklight/configuration/view_config.rb +2 -2
- data/lib/blacklight/configuration.rb +1 -1
- data/lib/blacklight/nested_open_struct_with_hash_access.rb +1 -1
- data/lib/blacklight/open_struct_with_hash_access.rb +5 -5
- data/lib/blacklight/parameters.rb +1 -1
- data/lib/blacklight/search_builder.rb +4 -4
- data/lib/blacklight/search_state/filter_field.rb +2 -2
- data/lib/blacklight/search_state/pivot_filter_field.rb +1 -1
- data/lib/blacklight/solr/request.rb +1 -1
- data/lib/blacklight/solr/response/facets.rb +2 -2
- data/lib/blacklight/solr/response/group_response.rb +2 -2
- data/lib/blacklight/solr/response.rb +4 -1
- data/lib/blacklight.rb +1 -1
- data/lib/generators/blacklight/assets/importmap_generator.rb +28 -3
- data/lib/generators/blacklight/search_builder_generator.rb +1 -1
- data/lib/generators/blacklight/templates/solr/conf/schema.xml +264 -178
- data/lib/generators/blacklight/templates/solr/conf/solrconfig.xml +6 -18
- data/package.json +1 -1
- data/spec/components/blacklight/document/action_component_spec.rb +1 -1
- data/spec/components/blacklight/document/group_component_spec.rb +1 -1
- data/spec/components/blacklight/document_component_spec.rb +9 -9
- data/spec/components/blacklight/facet_component_spec.rb +2 -2
- data/spec/components/blacklight/facet_field_list_component_spec.rb +1 -1
- data/spec/controllers/catalog_controller_spec.rb +2 -2
- data/spec/features/advanced_search_spec.rb +12 -12
- data/spec/features/bookmarks_spec.rb +12 -12
- data/spec/features/did_you_mean_spec.rb +17 -17
- data/spec/features/facet_missing_spec.rb +3 -3
- data/spec/features/modal_spec.rb +1 -1
- data/spec/features/record_view_spec.rb +14 -14
- data/spec/features/search_context_spec.rb +7 -7
- data/spec/features/search_filters_spec.rb +12 -12
- data/spec/features/search_formats_spec.rb +2 -2
- data/spec/features/search_history_spec.rb +11 -11
- data/spec/features/search_pagination_spec.rb +9 -9
- data/spec/features/search_results_spec.rb +3 -3
- data/spec/features/search_sort_spec.rb +4 -4
- data/spec/features/search_spec.rb +15 -15
- data/spec/helpers/blacklight/url_helper_behavior_spec.rb +14 -14
- data/spec/helpers/blacklight_helper_spec.rb +6 -0
- data/spec/helpers/catalog_helper_spec.rb +6 -6
- data/spec/lib/blacklight/open_struct_with_hash_access_spec.rb +7 -0
- data/spec/lib/blacklight/search_state/pivot_filter_field_spec.rb +1 -1
- data/spec/models/record_mailer_spec.rb +5 -5
- data/spec/models/solr_document_spec.rb +5 -1
- data/spec/presenters/blacklight/index_presenter_spec.rb +1 -0
- data/spec/presenters/blacklight/rendering/pipeline_spec.rb +1 -0
- data/spec/presenters/blacklight/show_presenter_spec.rb +1 -0
- data/spec/presenters/blacklight/thumbnail_presenter_spec.rb +1 -0
- data/spec/views/catalog/_document.html.erb_spec.rb +4 -4
- data/spec/views/catalog/_search_header.erb_spec.rb +2 -2
- data/spec/views/catalog/_sort_and_per_page.html.erb_spec.rb +5 -5
- data/spec/views/catalog/facet.html.erb_spec.rb +1 -1
- data/spec/views/catalog/index.html.erb_spec.rb +2 -2
- data/spec/views/catalog/show.html.erb_spec.rb +3 -3
- metadata +7 -10
|
@@ -7,7 +7,7 @@ RSpec.describe "Facets" do
|
|
|
7
7
|
click_on "Tibetan"
|
|
8
8
|
end
|
|
9
9
|
within "#sortAndPerPage" do
|
|
10
|
-
expect(page).to
|
|
10
|
+
expect(page).to have_text "1 - 6 of 6"
|
|
11
11
|
end
|
|
12
12
|
|
|
13
13
|
expect(page).to have_css(".blacklight-language_ssim")
|
|
@@ -20,7 +20,7 @@ RSpec.describe "Facets" do
|
|
|
20
20
|
|
|
21
21
|
click_on "India"
|
|
22
22
|
within ("#sortAndPerPage") do
|
|
23
|
-
expect(page).to
|
|
23
|
+
expect(page).to have_text "1 - 2 of 2"
|
|
24
24
|
end
|
|
25
25
|
within "#facet-language_ssim" do
|
|
26
26
|
expect(page).to have_css("span.selected", text: "Tibetan")
|
|
@@ -37,28 +37,28 @@ RSpec.describe "Facets" do
|
|
|
37
37
|
fill_in "q", with: 'history'
|
|
38
38
|
click_on 'search'
|
|
39
39
|
within ("#sortAndPerPage") do
|
|
40
|
-
expect(page).to
|
|
40
|
+
expect(page).to have_text "1 - 10 of 11"
|
|
41
41
|
end
|
|
42
42
|
|
|
43
43
|
within "#facet-language_ssim" do
|
|
44
44
|
click_on "Tibetan"
|
|
45
45
|
end
|
|
46
46
|
within ("#sortAndPerPage") do
|
|
47
|
-
expect(page).to
|
|
47
|
+
expect(page).to have_text "1 - 2 of 2"
|
|
48
48
|
end
|
|
49
49
|
within "#facet-language_ssim" do
|
|
50
50
|
expect(page).to have_css("span.selected", text: "Tibetan")
|
|
51
51
|
expect(page).to have_css("span.facet-count.selected", text: "2")
|
|
52
52
|
end
|
|
53
53
|
within "#appliedParams" do
|
|
54
|
-
expect(page).to
|
|
55
|
-
expect(page).to
|
|
54
|
+
expect(page).to have_text "You searched for:"
|
|
55
|
+
expect(page).to have_text "history"
|
|
56
56
|
end
|
|
57
57
|
|
|
58
58
|
click_on "2004"
|
|
59
59
|
|
|
60
60
|
within ("#sortAndPerPage") do
|
|
61
|
-
expect(page).to
|
|
61
|
+
expect(page).to have_text "1 entry found"
|
|
62
62
|
end
|
|
63
63
|
within "#facet-language_ssim" do
|
|
64
64
|
expect(page).to have_css("span.selected", text: "Tibetan")
|
|
@@ -83,7 +83,7 @@ RSpec.describe "Facets" do
|
|
|
83
83
|
click_on 'remove'
|
|
84
84
|
end
|
|
85
85
|
expect(page).to have_no_link 'remove'
|
|
86
|
-
expect(page).to
|
|
86
|
+
expect(page).to have_text('Welcome!')
|
|
87
87
|
end
|
|
88
88
|
|
|
89
89
|
it "retains filters when you change the search term" do
|
|
@@ -138,8 +138,8 @@ RSpec.describe "Facets" do
|
|
|
138
138
|
expect(page).to have_css("span.facet-count.selected", text: "2")
|
|
139
139
|
end
|
|
140
140
|
within "#appliedParams" do
|
|
141
|
-
expect(page).to
|
|
142
|
-
expect(page).to
|
|
141
|
+
expect(page).to have_text "You searched for:"
|
|
142
|
+
expect(page).to have_text "history"
|
|
143
143
|
end
|
|
144
144
|
end
|
|
145
145
|
|
|
@@ -162,8 +162,8 @@ RSpec.describe "Facets" do
|
|
|
162
162
|
expect(page).to have_css("span.facet-count.selected", text: "2")
|
|
163
163
|
end
|
|
164
164
|
within "#appliedParams" do
|
|
165
|
-
expect(page).to
|
|
166
|
-
expect(page).to
|
|
165
|
+
expect(page).to have_text "You searched for:"
|
|
166
|
+
expect(page).to have_text "history"
|
|
167
167
|
end
|
|
168
168
|
end
|
|
169
169
|
|
|
@@ -3,13 +3,13 @@
|
|
|
3
3
|
RSpec.describe "Search Formats" do
|
|
4
4
|
it "has an RSS XML response" do
|
|
5
5
|
visit "/catalog.rss?q="
|
|
6
|
-
expect(page).to
|
|
6
|
+
expect(page).to have_text "Blacklight Search Results"
|
|
7
7
|
expect(page).to have_xpath('//item', count: 10)
|
|
8
8
|
end
|
|
9
9
|
|
|
10
10
|
it "has an ATOM XML response" do
|
|
11
11
|
visit "/catalog.atom?q="
|
|
12
|
-
expect(page).to
|
|
12
|
+
expect(page).to have_text "Blacklight Search Results"
|
|
13
13
|
|
|
14
14
|
expect(page).to have_xpath('//entry', count: 10)
|
|
15
15
|
end
|
|
@@ -5,8 +5,8 @@ RSpec.describe "Search History Page" do
|
|
|
5
5
|
it "has a link to the history page" do
|
|
6
6
|
visit root_path
|
|
7
7
|
click_on 'History'
|
|
8
|
-
expect(page).to
|
|
9
|
-
expect(page).to
|
|
8
|
+
expect(page).to have_text 'Search History'
|
|
9
|
+
expect(page).to have_text 'You have no search history'
|
|
10
10
|
end
|
|
11
11
|
end
|
|
12
12
|
|
|
@@ -19,15 +19,15 @@ RSpec.describe "Search History Page" do
|
|
|
19
19
|
end
|
|
20
20
|
|
|
21
21
|
it "shows searches" do
|
|
22
|
-
expect(page).to
|
|
23
|
-
expect(page).to
|
|
24
|
-
expect(page).to
|
|
22
|
+
expect(page).to have_text 'Your recent searches'
|
|
23
|
+
expect(page).to have_text 'book'
|
|
24
|
+
expect(page).to have_no_text 'dang'
|
|
25
25
|
visit root_path
|
|
26
26
|
fill_in "q", with: 'dang'
|
|
27
27
|
click_on 'search'
|
|
28
28
|
click_on 'History'
|
|
29
|
-
expect(page).to
|
|
30
|
-
expect(page).to
|
|
29
|
+
expect(page).to have_text 'book'
|
|
30
|
+
expect(page).to have_text 'dang'
|
|
31
31
|
end
|
|
32
32
|
end
|
|
33
33
|
|
|
@@ -43,10 +43,10 @@ RSpec.describe "Search History Page" do
|
|
|
43
43
|
|
|
44
44
|
it "is able to clear the history" do
|
|
45
45
|
click_on "Clear Search History"
|
|
46
|
-
expect(page).to
|
|
47
|
-
expect(page).to
|
|
48
|
-
expect(page).to
|
|
49
|
-
expect(page).to
|
|
46
|
+
expect(page).to have_text 'Cleared your search history.'
|
|
47
|
+
expect(page).to have_text 'You have no search history'
|
|
48
|
+
expect(page).to have_no_text 'book'
|
|
49
|
+
expect(page).to have_no_text 'dang'
|
|
50
50
|
end
|
|
51
51
|
end
|
|
52
52
|
end
|
|
@@ -6,7 +6,7 @@ RSpec.describe "Search Pagination" do
|
|
|
6
6
|
fill_in "q", with: ''
|
|
7
7
|
click_on 'search'
|
|
8
8
|
within ("#sortAndPerPage") do
|
|
9
|
-
expect(page).to
|
|
9
|
+
expect(page).to have_text "1 - 10 of "
|
|
10
10
|
within '#per_page-dropdown' do
|
|
11
11
|
expect(page).to have_link('10')
|
|
12
12
|
expect(page).to have_link('20')
|
|
@@ -18,11 +18,11 @@ RSpec.describe "Search Pagination" do
|
|
|
18
18
|
click_on "Next »"
|
|
19
19
|
end
|
|
20
20
|
within "#sortAndPerPage" do
|
|
21
|
-
expect(page).to
|
|
21
|
+
expect(page).to have_text "11 - 20 of "
|
|
22
22
|
click_on "« Previous"
|
|
23
23
|
end
|
|
24
24
|
within "#sortAndPerPage" do
|
|
25
|
-
expect(page).to
|
|
25
|
+
expect(page).to have_text "1 - 10 of "
|
|
26
26
|
end
|
|
27
27
|
end
|
|
28
28
|
|
|
@@ -31,14 +31,14 @@ RSpec.describe "Search Pagination" do
|
|
|
31
31
|
fill_in "q", with: ''
|
|
32
32
|
click_on 'search'
|
|
33
33
|
within ("#sortAndPerPage") do
|
|
34
|
-
expect(page).to
|
|
34
|
+
expect(page).to have_text "1 - 10 of "
|
|
35
35
|
end
|
|
36
36
|
|
|
37
37
|
within ("#per_page-dropdown") do
|
|
38
38
|
click_on '20'
|
|
39
39
|
end
|
|
40
40
|
within ("#sortAndPerPage") do
|
|
41
|
-
expect(page).to
|
|
41
|
+
expect(page).to have_text "1 - 20 of "
|
|
42
42
|
end
|
|
43
43
|
end
|
|
44
44
|
|
|
@@ -61,7 +61,7 @@ RSpec.describe "Search Pagination" do
|
|
|
61
61
|
fill_in "q", with: ''
|
|
62
62
|
click_on 'search'
|
|
63
63
|
within ("#sortAndPerPage") do
|
|
64
|
-
expect(page).to
|
|
64
|
+
expect(page).to have_text "1 - 15 of "
|
|
65
65
|
within '#per_page-dropdown' do
|
|
66
66
|
expect(page).to have_link('15')
|
|
67
67
|
expect(page).to have_link('30')
|
|
@@ -71,7 +71,7 @@ RSpec.describe "Search Pagination" do
|
|
|
71
71
|
click_on '30'
|
|
72
72
|
end
|
|
73
73
|
within ("#sortAndPerPage") do
|
|
74
|
-
expect(page).to
|
|
74
|
+
expect(page).to have_text "1 - 30 of "
|
|
75
75
|
end
|
|
76
76
|
end
|
|
77
77
|
end
|
|
@@ -84,13 +84,13 @@ RSpec.describe "Search Pagination" do
|
|
|
84
84
|
click_on "Next »"
|
|
85
85
|
end
|
|
86
86
|
within "#sortAndPerPage" do
|
|
87
|
-
expect(page).to
|
|
87
|
+
expect(page).to have_text "11 - 20 of "
|
|
88
88
|
end
|
|
89
89
|
within ("#per_page-dropdown") do
|
|
90
90
|
click_on '20'
|
|
91
91
|
end
|
|
92
92
|
within "#sortAndPerPage" do
|
|
93
|
-
expect(page).to
|
|
93
|
+
expect(page).to have_text "1 - 20 of "
|
|
94
94
|
end
|
|
95
95
|
end
|
|
96
96
|
end
|
|
@@ -44,7 +44,7 @@ RSpec.describe "Search Results" do
|
|
|
44
44
|
|
|
45
45
|
it "provides search hints if there are no results" do
|
|
46
46
|
search_for 'asdfghj'
|
|
47
|
-
expect(page).to
|
|
47
|
+
expect(page).to have_text "No results found for your search"
|
|
48
48
|
end
|
|
49
49
|
|
|
50
50
|
it "provides search hints if there are no results" do
|
|
@@ -52,8 +52,8 @@ RSpec.describe "Search Results" do
|
|
|
52
52
|
fill_in "q", with: "inmul"
|
|
53
53
|
select "Author", from: "search_field"
|
|
54
54
|
click_on 'search'
|
|
55
|
-
expect(page).to
|
|
56
|
-
expect(page).to
|
|
55
|
+
expect(page).to have_text "No results found for your search"
|
|
56
|
+
expect(page).to have_text "you searched by Author"
|
|
57
57
|
click_on "try searching everything"
|
|
58
58
|
expect(page).to have_xpath("//a[contains(@href, 77826928)]")
|
|
59
59
|
end
|
|
@@ -6,17 +6,17 @@ RSpec.describe "Search Sort" do
|
|
|
6
6
|
within "#facet-language_ssim" do
|
|
7
7
|
click_on 'English'
|
|
8
8
|
end
|
|
9
|
-
expect(page).to
|
|
9
|
+
expect(page).to have_text 'Sort by relevance'
|
|
10
10
|
click_on 'title'
|
|
11
|
-
expect(page).to
|
|
11
|
+
expect(page).to have_text 'Sort by title'
|
|
12
12
|
end
|
|
13
13
|
|
|
14
14
|
it "sorts on search" do
|
|
15
15
|
visit root_path
|
|
16
16
|
fill_in "q", with: 'bod'
|
|
17
17
|
click_on 'search'
|
|
18
|
-
expect(page).to
|
|
18
|
+
expect(page).to have_text 'Sort by relevance'
|
|
19
19
|
click_on 'title'
|
|
20
|
-
expect(page).to
|
|
20
|
+
expect(page).to have_text 'Sort by title'
|
|
21
21
|
end
|
|
22
22
|
end
|
|
@@ -18,7 +18,7 @@ RSpec.describe "Search Page" do
|
|
|
18
18
|
expect(page).to have_css("button[type='submit'] .submit-search-text")
|
|
19
19
|
expect(page).to have_no_link "Start Over"
|
|
20
20
|
|
|
21
|
-
expect(page).to
|
|
21
|
+
expect(page).to have_text "Welcome!"
|
|
22
22
|
tmp_value = Capybara.ignore_hidden_elements
|
|
23
23
|
Capybara.ignore_hidden_elements = false
|
|
24
24
|
expect(page).to have_css("link[rel=stylesheet]")
|
|
@@ -44,8 +44,8 @@ RSpec.describe "Search Page" do
|
|
|
44
44
|
Capybara.ignore_hidden_elements = tmp_value
|
|
45
45
|
|
|
46
46
|
within "#appliedParams" do
|
|
47
|
-
expect(page).to
|
|
48
|
-
expect(page).to
|
|
47
|
+
expect(page).to have_text "You searched for:"
|
|
48
|
+
expect(page).to have_text "history"
|
|
49
49
|
end
|
|
50
50
|
|
|
51
51
|
within ("select#search_field") do
|
|
@@ -53,8 +53,8 @@ RSpec.describe "Search Page" do
|
|
|
53
53
|
end
|
|
54
54
|
|
|
55
55
|
within ("#sortAndPerPage") do
|
|
56
|
-
expect(page).to
|
|
57
|
-
expect(page).to
|
|
56
|
+
expect(page).to have_text "Sort by"
|
|
57
|
+
expect(page).to have_text "1 - 10 of 11"
|
|
58
58
|
within '#sort-dropdown' do
|
|
59
59
|
expect(page).to have_link('relevance')
|
|
60
60
|
expect(page).to have_link('year')
|
|
@@ -74,18 +74,18 @@ RSpec.describe "Search Page" do
|
|
|
74
74
|
click_on 'search'
|
|
75
75
|
|
|
76
76
|
within "#appliedParams" do
|
|
77
|
-
expect(page).to
|
|
78
|
-
expect(page).to
|
|
79
|
-
expect(page).to
|
|
77
|
+
expect(page).to have_text "You searched for:"
|
|
78
|
+
expect(page).to have_text "Title"
|
|
79
|
+
expect(page).to have_text "inmul"
|
|
80
80
|
end
|
|
81
81
|
within ("select#search_field") do
|
|
82
82
|
expect(page).to have_css("option[selected]", text: "Title")
|
|
83
83
|
end
|
|
84
84
|
within(".index_title") do
|
|
85
|
-
expect(page).to
|
|
85
|
+
expect(page).to have_text "1."
|
|
86
86
|
end
|
|
87
87
|
within ("#sortAndPerPage") do
|
|
88
|
-
expect(page).to
|
|
88
|
+
expect(page).to have_text "1 entry found"
|
|
89
89
|
end
|
|
90
90
|
end
|
|
91
91
|
|
|
@@ -94,8 +94,8 @@ RSpec.describe "Search Page" do
|
|
|
94
94
|
fill_in "q", with: 'history'
|
|
95
95
|
click_on 'search'
|
|
96
96
|
within "#documents" do
|
|
97
|
-
expect(page).to
|
|
98
|
-
expect(page).to
|
|
97
|
+
expect(page).to have_text "次按驟變"
|
|
98
|
+
expect(page).to have_text "DK861.K3 V5"
|
|
99
99
|
end
|
|
100
100
|
end
|
|
101
101
|
|
|
@@ -104,15 +104,15 @@ RSpec.describe "Search Page" do
|
|
|
104
104
|
fill_in "q", with: 'history'
|
|
105
105
|
click_on 'search'
|
|
106
106
|
within "#appliedParams" do
|
|
107
|
-
expect(page).to
|
|
108
|
-
expect(page).to
|
|
107
|
+
expect(page).to have_text "You searched for:"
|
|
108
|
+
expect(page).to have_text "history"
|
|
109
109
|
end
|
|
110
110
|
|
|
111
111
|
expect(page).to have_css "#q[value='history']"
|
|
112
112
|
|
|
113
113
|
click_on "Start Over"
|
|
114
114
|
|
|
115
|
-
expect(page).to
|
|
115
|
+
expect(page).to have_text "Welcome!"
|
|
116
116
|
expect(page).to have_no_css "#q[value='history']"
|
|
117
117
|
end
|
|
118
118
|
end
|
|
@@ -35,17 +35,17 @@ RSpec.describe Blacklight::UrlHelperBehavior do
|
|
|
35
35
|
it "builds a link tag to catalog using session[:search] for query params" do
|
|
36
36
|
allow(helper).to receive(:current_search_session).and_return double(query_params: query_params)
|
|
37
37
|
tag = helper.link_back_to_catalog
|
|
38
|
-
expect(tag).to
|
|
39
|
-
expect(tag).to
|
|
40
|
-
expect(tag).not_to
|
|
41
|
-
expect(tag).not_to
|
|
38
|
+
expect(tag).to include('q=query')
|
|
39
|
+
expect(tag).to include('f=facets')
|
|
40
|
+
expect(tag).not_to include('page=')
|
|
41
|
+
expect(tag).not_to include('per_page=')
|
|
42
42
|
end
|
|
43
43
|
|
|
44
44
|
it "builds a link tag to bookmarks using session[:search] for query params" do
|
|
45
45
|
allow(helper).to receive(:current_search_session).and_return double(query_params: bookmarks_query_params)
|
|
46
46
|
tag = helper.link_back_to_catalog
|
|
47
|
-
expect(tag).to
|
|
48
|
-
expect(tag).to
|
|
47
|
+
expect(tag).to include('Back to Bookmarks')
|
|
48
|
+
expect(tag).to include('/bookmarks')
|
|
49
49
|
end
|
|
50
50
|
|
|
51
51
|
context "with a search context" do
|
|
@@ -53,16 +53,16 @@ RSpec.describe Blacklight::UrlHelperBehavior do
|
|
|
53
53
|
allow(helper).to receive_messages(current_search_session: double(query_params: query_params))
|
|
54
54
|
allow(helper).to receive_messages(search_session: { 'per_page' => 15, 'counter' => 31 })
|
|
55
55
|
tag = helper.link_back_to_catalog
|
|
56
|
-
expect(tag).to
|
|
57
|
-
expect(tag).to
|
|
56
|
+
expect(tag).to include('page=3')
|
|
57
|
+
expect(tag).to include('per_page=15')
|
|
58
58
|
end
|
|
59
59
|
|
|
60
60
|
it "omits per_page if the value is the same as the default" do
|
|
61
61
|
allow(helper).to receive_messages(current_search_session: double(query_params: query_params))
|
|
62
62
|
allow(helper).to receive_messages(search_session: { 'per_page' => 10, 'counter' => 31 })
|
|
63
63
|
tag = helper.link_back_to_catalog
|
|
64
|
-
expect(tag).to
|
|
65
|
-
expect(tag).not_to
|
|
64
|
+
expect(tag).to include('page=4')
|
|
65
|
+
expect(tag).not_to include('per_page=')
|
|
66
66
|
end
|
|
67
67
|
end
|
|
68
68
|
|
|
@@ -92,8 +92,8 @@ RSpec.describe Blacklight::UrlHelperBehavior do
|
|
|
92
92
|
expect(my_engine).to receive(:url_for)
|
|
93
93
|
.with({ q: "query", f: "facets", controller: "catalog" })
|
|
94
94
|
.and_return('link-url')
|
|
95
|
-
expect(tag).to
|
|
96
|
-
expect(tag).to
|
|
95
|
+
expect(tag).to include('Back to Search')
|
|
96
|
+
expect(tag).to include('link-url')
|
|
97
97
|
end
|
|
98
98
|
end
|
|
99
99
|
end
|
|
@@ -130,11 +130,11 @@ RSpec.describe Blacklight::UrlHelperBehavior do
|
|
|
130
130
|
end
|
|
131
131
|
|
|
132
132
|
it "passes on the title attribute to the link_to_with_data method" do
|
|
133
|
-
expect(helper.link_to_document(document, "Some crazy long label...", title: "Some crazy longer label")).to
|
|
133
|
+
expect(helper.link_to_document(document, "Some crazy long label...", title: "Some crazy longer label")).to include('title="Some crazy longer label"')
|
|
134
134
|
end
|
|
135
135
|
|
|
136
136
|
it "doesn't add an erroneous title attribute if one isn't provided" do
|
|
137
|
-
expect(helper.link_to_document(document, "Some crazy long label...")).not_to
|
|
137
|
+
expect(helper.link_to_document(document, "Some crazy long label...")).not_to include('title=')
|
|
138
138
|
end
|
|
139
139
|
|
|
140
140
|
context "with an integer id" do
|
|
@@ -172,6 +172,12 @@ RSpec.describe BlacklightHelper do
|
|
|
172
172
|
end
|
|
173
173
|
|
|
174
174
|
it "ignores missing templates" do
|
|
175
|
+
# In ViewComponent 3.25.0+, collection components rendered from a plain
|
|
176
|
+
# ActionView template fall back to controller.view_context for helpers
|
|
177
|
+
# instead of the stubbed helper. Workaround not needed on 2.x or 4.x.
|
|
178
|
+
if ViewComponent::VERSION::MAJOR == 3
|
|
179
|
+
allow(controller).to receive(:view_context).and_return(helper)
|
|
180
|
+
end
|
|
175
181
|
blacklight_config.view.view_type(partials: %w[index_header a b])
|
|
176
182
|
|
|
177
183
|
response = helper.render_document_index_with_view :view_type, [obj1, obj1]
|
|
@@ -135,9 +135,9 @@ RSpec.describe CatalogHelper do
|
|
|
135
135
|
|
|
136
136
|
it "calls url_for on the engine scope" do
|
|
137
137
|
expect(my_engine).to receive(:url_for).and_return('/rss-path')
|
|
138
|
-
expect(tag).to
|
|
139
|
-
expect(tag).to
|
|
140
|
-
expect(tag).to
|
|
138
|
+
expect(tag).to include('title="RSS for results"')
|
|
139
|
+
expect(tag).to include('rel="alternate"')
|
|
140
|
+
expect(tag).to include('type="application/rss+xml"')
|
|
141
141
|
end
|
|
142
142
|
end
|
|
143
143
|
end
|
|
@@ -157,9 +157,9 @@ RSpec.describe CatalogHelper do
|
|
|
157
157
|
|
|
158
158
|
it "calls url_for on the engine scope" do
|
|
159
159
|
expect(my_engine).to receive(:url_for).and_return('/atom-path')
|
|
160
|
-
expect(tag).to
|
|
161
|
-
expect(tag).to
|
|
162
|
-
expect(tag).to
|
|
160
|
+
expect(tag).to include('title="Atom for results"')
|
|
161
|
+
expect(tag).to include('rel="alternate"')
|
|
162
|
+
expect(tag).to include('type="application/atom+xml"')
|
|
163
163
|
end
|
|
164
164
|
end
|
|
165
165
|
end
|
|
@@ -164,5 +164,12 @@ RSpec.describe Blacklight::OpenStructWithHashAccess do
|
|
|
164
164
|
it "works (and doesn't throw a stack error...)" do
|
|
165
165
|
expect(subject.try(:a)).to eq 1
|
|
166
166
|
end
|
|
167
|
+
|
|
168
|
+
it "passes a block to the method indicated" do
|
|
169
|
+
acc = []
|
|
170
|
+
test_block = proc { |n, v| acc << [n, v] }
|
|
171
|
+
expect(subject.try(:each_pair, &test_block)).to be subject
|
|
172
|
+
expect(acc).to eq [[:a, 1]]
|
|
173
|
+
end
|
|
167
174
|
end
|
|
168
175
|
end
|
|
@@ -73,7 +73,7 @@ RSpec.describe Blacklight::SearchState::PivotFilterField do
|
|
|
73
73
|
new_state = filter.remove(value_class.new(fq: { some_other_field: '3' }, value: '1'))
|
|
74
74
|
|
|
75
75
|
expect(new_state.params[:f]).not_to include :some_other_field
|
|
76
|
-
expect(new_state.filter('pivot_field').values&.map(&:fq)).to eql([some_other_field: nil])
|
|
76
|
+
expect(new_state.filter('pivot_field').values&.map(&:fq)).to eql([{ some_other_field: nil }])
|
|
77
77
|
end
|
|
78
78
|
|
|
79
79
|
it 'removes the filter parameter entirely if there are no filters left' do
|
|
@@ -41,7 +41,7 @@ RSpec.describe RecordMailer do
|
|
|
41
41
|
end
|
|
42
42
|
|
|
43
43
|
it "puts the title of the item in the subject" do
|
|
44
|
-
expect(email.subject).to
|
|
44
|
+
expect(email.subject).to include('The horn')
|
|
45
45
|
end
|
|
46
46
|
|
|
47
47
|
it "has the correct from address (w/o the port number)" do
|
|
@@ -49,8 +49,8 @@ RSpec.describe RecordMailer do
|
|
|
49
49
|
end
|
|
50
50
|
|
|
51
51
|
it "prints out the correct body" do
|
|
52
|
-
expect(email.body).to
|
|
53
|
-
expect(email.body).to
|
|
52
|
+
expect(email.body).to include('Title: The horn')
|
|
53
|
+
expect(email.body).to include('Author: Janetzky, Kurt')
|
|
54
54
|
expect(email.body).to match /projectblacklight.org/
|
|
55
55
|
end
|
|
56
56
|
|
|
@@ -104,8 +104,8 @@ RSpec.describe RecordMailer do
|
|
|
104
104
|
end
|
|
105
105
|
|
|
106
106
|
it "prints out the correct body" do
|
|
107
|
-
expect(@sms.body).to
|
|
108
|
-
expect(@sms.body).to
|
|
107
|
+
expect(@sms.body).to include('Title: The horn')
|
|
108
|
+
expect(@sms.body).to include('Author: Janetzky, Kurt')
|
|
109
109
|
expect(@sms.body).to match /projectblacklight.org:3000/
|
|
110
110
|
end
|
|
111
111
|
|
|
@@ -37,7 +37,11 @@ RSpec.describe SolrDocument, :api do
|
|
|
37
37
|
title_tesim: ['Good Omens'])
|
|
38
38
|
end
|
|
39
39
|
|
|
40
|
-
|
|
40
|
+
if RUBY_VERSION > '3.4'
|
|
41
|
+
it { is_expected.to end_with "_source: {\"id\" => \"123\", \"title_tesim\" => [\"Good Omens\"]}>" }
|
|
42
|
+
else
|
|
43
|
+
it { is_expected.to end_with "_source: {\"id\"=>\"123\", \"title_tesim\"=>[\"Good Omens\"]}>" }
|
|
44
|
+
end
|
|
41
45
|
end
|
|
42
46
|
|
|
43
47
|
describe '.attribute' do
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
RSpec.describe Blacklight::ThumbnailPresenter do
|
|
4
4
|
include Capybara::RSpecMatchers
|
|
5
|
+
|
|
5
6
|
let(:view_context) { double "View context" }
|
|
6
7
|
let(:config) { Blacklight::Configuration.new.view_config(:index) }
|
|
7
8
|
let(:presenter) { described_class.new(document, view_context, config) }
|
|
@@ -17,9 +17,9 @@ RSpec.describe "catalog/_document" do
|
|
|
17
17
|
stub_template "catalog/_b_default.html.erb" => "b_partial"
|
|
18
18
|
stub_template "catalog/_c_default.html.erb" => "c_partial"
|
|
19
19
|
render partial: "catalog/document", locals: { document: document, document_counter: 1, view_config: blacklight_config.index }
|
|
20
|
-
expect(rendered).to
|
|
21
|
-
expect(rendered).to
|
|
22
|
-
expect(rendered).to
|
|
20
|
+
expect(rendered).to include('a_partial')
|
|
21
|
+
expect(rendered).to include('b_partial')
|
|
22
|
+
expect(rendered).to include('c_partial')
|
|
23
23
|
end
|
|
24
24
|
|
|
25
25
|
context 'with a configured document component' do
|
|
@@ -39,7 +39,7 @@ RSpec.describe "catalog/_document" do
|
|
|
39
39
|
|
|
40
40
|
it 'renders the document component' do
|
|
41
41
|
render partial: "catalog/document", locals: { document: document, document_counter: 1, view_config: blacklight_config.index }
|
|
42
|
-
expect(rendered).to
|
|
42
|
+
expect(rendered).to include('blah')
|
|
43
43
|
end
|
|
44
44
|
end
|
|
45
45
|
end
|
|
@@ -8,7 +8,7 @@ RSpec.describe "/catalog/_search_header.html.erb" do
|
|
|
8
8
|
stub_template "_sort_and_per_page.html.erb" => "sort_and_per_page"
|
|
9
9
|
allow(view).to receive(:blacklight_config).and_return(CatalogController.blacklight_config)
|
|
10
10
|
render
|
|
11
|
-
expect(rendered).to
|
|
12
|
-
expect(rendered).to
|
|
11
|
+
expect(rendered).to include('did_you_mean')
|
|
12
|
+
expect(rendered).to include('sort_and_per_page')
|
|
13
13
|
end
|
|
14
14
|
end
|
|
@@ -17,10 +17,10 @@ RSpec.describe "catalog/_sort_and_per_page" do
|
|
|
17
17
|
stub_template "catalog/_per_page_widget.html.erb" => "per_page_widget"
|
|
18
18
|
stub_template "catalog/_view_type_group.html.erb" => "view_type_group"
|
|
19
19
|
render
|
|
20
|
-
expect(rendered).to
|
|
21
|
-
expect(rendered).to
|
|
22
|
-
expect(rendered).to
|
|
23
|
-
expect(rendered).to
|
|
20
|
+
expect(rendered).to include('paginate_compact')
|
|
21
|
+
expect(rendered).to include('sort_widget')
|
|
22
|
+
expect(rendered).to include('per_page_widget')
|
|
23
|
+
expect(rendered).to include('view_type_group')
|
|
24
24
|
end
|
|
25
25
|
|
|
26
26
|
it "does not render the pagination controls with bad limit values" do
|
|
@@ -30,6 +30,6 @@ RSpec.describe "catalog/_sort_and_per_page" do
|
|
|
30
30
|
stub_template "catalog/_per_page_widget.html.erb" => "per_page_widget"
|
|
31
31
|
stub_template "catalog/_view_type_group.html.erb" => "view_type_group"
|
|
32
32
|
render
|
|
33
|
-
expect(rendered).not_to
|
|
33
|
+
expect(rendered).not_to include('paginate_compact')
|
|
34
34
|
end
|
|
35
35
|
end
|
|
@@ -12,7 +12,7 @@ RSpec.describe "catalog/index.html.erb" do
|
|
|
12
12
|
it "renders the Search::SidebarComponent component" do
|
|
13
13
|
render
|
|
14
14
|
|
|
15
|
-
expect(sidebar).to
|
|
15
|
+
expect(sidebar).to include('Limit your search')
|
|
16
16
|
end
|
|
17
17
|
end
|
|
18
18
|
|
|
@@ -26,7 +26,7 @@ RSpec.describe "catalog/index.html.erb" do
|
|
|
26
26
|
|
|
27
27
|
it "renders the search_header partial" do
|
|
28
28
|
render
|
|
29
|
-
expect(rendered).to
|
|
29
|
+
expect(rendered).to include('header_content')
|
|
30
30
|
end
|
|
31
31
|
end
|
|
32
32
|
end
|