blacklight 8.13.0 → 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.
Files changed (242) hide show
  1. checksums.yaml +4 -4
  2. data/.env +3 -3
  3. data/.github/pull_request_template.md +7 -0
  4. data/.github/workflows/ruby.yml +98 -0
  5. data/.rubocop.yml +8 -151
  6. data/.rubocop_todo.yml +53 -74
  7. data/.solr_wrapper.yml +0 -2
  8. data/README.md +30 -8
  9. data/VERSION +1 -1
  10. data/app/assets/builds/blacklight.css +448 -0
  11. data/app/assets/javascripts/blacklight/blacklight.esm.js +8 -51
  12. data/app/assets/javascripts/blacklight/blacklight.esm.js.map +1 -1
  13. data/app/assets/javascripts/blacklight/blacklight.js +8 -51
  14. data/app/assets/javascripts/blacklight/blacklight.js.map +1 -1
  15. data/app/assets/stylesheets/blacklight/_balanced_list.scss +1 -4
  16. data/app/assets/stylesheets/blacklight/_blacklight_base.scss +1 -3
  17. data/app/assets/stylesheets/blacklight/_bookmark.scss +44 -41
  18. data/app/assets/stylesheets/blacklight/_bootstrap_overrides.scss +0 -29
  19. data/app/assets/stylesheets/blacklight/_constraints.scss +15 -24
  20. data/app/assets/stylesheets/blacklight/_controls.scss +2 -18
  21. data/app/assets/stylesheets/blacklight/_facets.scss +15 -82
  22. data/app/assets/stylesheets/blacklight/_group.scss +2 -5
  23. data/app/assets/stylesheets/blacklight/_header.scss +4 -11
  24. data/app/assets/stylesheets/blacklight/_icons.scss +0 -8
  25. data/app/assets/stylesheets/blacklight/_modal.scss +9 -10
  26. data/app/assets/stylesheets/blacklight/_pagination.scss +3 -5
  27. data/app/assets/stylesheets/blacklight/_search_form.scss +0 -1
  28. data/app/assets/stylesheets/blacklight/_search_history.scss +0 -4
  29. data/app/assets/stylesheets/blacklight/_search_results.scss +1 -15
  30. data/app/assets/stylesheets/blacklight/blacklight_defaults.scss +9 -17
  31. data/app/assets/stylesheets/blacklight/build.scss +4 -0
  32. data/app/components/blacklight/advanced_search_form_component.rb +3 -3
  33. data/app/components/blacklight/constraint_component.rb +1 -1
  34. data/app/components/blacklight/constraint_layout_component.html.erb +2 -2
  35. data/app/components/blacklight/constraints_component.html.erb +2 -2
  36. data/app/components/blacklight/constraints_component.rb +3 -3
  37. data/app/components/blacklight/document/action_component.rb +3 -1
  38. data/app/components/blacklight/document/bookmark_component.html.erb +3 -3
  39. data/app/components/blacklight/document/bookmark_component.rb +2 -3
  40. data/app/components/blacklight/document/group_component.html.erb +1 -1
  41. data/app/components/blacklight/document/more_like_this_component.rb +2 -2
  42. data/app/components/blacklight/document/page_header_component.rb +3 -3
  43. data/app/components/blacklight/document/sidebar_component.rb +5 -5
  44. data/app/components/blacklight/document_component.rb +14 -20
  45. data/app/components/blacklight/document_title_component.rb +3 -2
  46. data/app/components/blacklight/facet_field_component.html.erb +5 -5
  47. data/app/components/blacklight/facet_field_list_component.rb +4 -22
  48. data/app/components/blacklight/facet_field_pagination_component.html.erb +2 -2
  49. data/app/components/blacklight/facet_item_component.rb +2 -2
  50. data/app/components/blacklight/facet_item_pivot_component.rb +2 -2
  51. data/app/components/blacklight/header_component.rb +2 -2
  52. data/app/components/blacklight/metadata_field_plain_text_layout_component.rb +2 -2
  53. data/app/components/blacklight/response/facet_group_component.html.erb +3 -18
  54. data/app/components/blacklight/response/facet_group_component.rb +7 -23
  55. data/app/components/blacklight/response/facet_toggle_button_component.html.erb +16 -0
  56. data/app/components/blacklight/response/facet_toggle_button_component.rb +14 -0
  57. data/app/components/blacklight/response/pagination_component.html.erb +1 -1
  58. data/app/components/blacklight/response/pagination_component.rb +2 -1
  59. data/app/components/blacklight/response/sort_component.rb +1 -0
  60. data/app/components/blacklight/response/view_type_button_component.html.erb +1 -1
  61. data/app/components/blacklight/response/view_type_component.html.erb +1 -1
  62. data/app/components/blacklight/search/facet_suggest_input.html.erb +7 -10
  63. data/app/components/blacklight/search/facet_suggest_input.rb +0 -4
  64. data/app/components/blacklight/search/per_page_component.html.erb +1 -1
  65. data/app/components/blacklight/search/per_page_component.rb +1 -0
  66. data/app/components/blacklight/search/sidebar_component.html.erb +1 -1
  67. data/app/components/blacklight/search/sidebar_component.rb +1 -1
  68. data/app/components/blacklight/search_bar_component.html.erb +3 -3
  69. data/app/components/blacklight/search_bar_component.rb +2 -2
  70. data/app/components/blacklight/search_button_component.rb +2 -2
  71. data/app/components/blacklight/search_context/server_applied_params_component.html.erb +2 -2
  72. data/app/components/blacklight/search_context/server_applied_params_component.rb +9 -0
  73. data/app/components/blacklight/skip_link_component.html.erb +1 -1
  74. data/app/components/blacklight/skip_link_component.rb +2 -1
  75. data/app/components/blacklight/system/dropdown_component.html.erb +1 -1
  76. data/app/components/blacklight/system/dropdown_component.rb +1 -1
  77. data/app/components/blacklight/top_navbar_component.html.erb +1 -1
  78. data/app/controllers/concerns/blacklight/bookmarks.rb +5 -5
  79. data/app/controllers/concerns/blacklight/catalog.rb +3 -2
  80. data/app/controllers/concerns/blacklight/search_context.rb +2 -14
  81. data/app/controllers/concerns/blacklight/search_history.rb +1 -1
  82. data/app/helpers/blacklight/blacklight_helper_behavior.rb +0 -6
  83. data/app/helpers/blacklight/catalog_helper_behavior.rb +0 -10
  84. data/app/helpers/blacklight/configuration_helper_behavior.rb +2 -14
  85. data/app/helpers/blacklight/document_helper_behavior.rb +0 -26
  86. data/app/helpers/blacklight/icon_helper_behavior.rb +3 -11
  87. data/app/helpers/blacklight/render_partials_helper_behavior.rb +0 -14
  88. data/app/helpers/blacklight/url_helper_behavior.rb +1 -1
  89. data/app/javascript/{blacklight → blacklight-frontend}/bookmark_toggle.js +1 -1
  90. data/app/javascript/{blacklight → blacklight-frontend}/core.js +2 -10
  91. data/app/javascript/{blacklight → blacklight-frontend}/debounce.js +1 -1
  92. data/app/javascript/blacklight-frontend/facet_suggest.js +26 -0
  93. data/app/javascript/blacklight-frontend/index.js +18 -0
  94. data/app/javascript/{blacklight → blacklight-frontend}/modal.js +2 -14
  95. data/app/javascript/{blacklight → blacklight-frontend}/search_context.js +2 -3
  96. data/app/models/blacklight/icon.rb +2 -3
  97. data/app/models/concerns/blacklight/document.rb +0 -11
  98. data/app/models/concerns/blacklight/user.rb +1 -2
  99. data/app/presenters/blacklight/json_presenter.rb +3 -1
  100. data/app/presenters/blacklight/rendering/helper_method.rb +4 -4
  101. data/app/presenters/blacklight/rendering/join.rb +2 -2
  102. data/app/presenters/blacklight/rendering/microdata.rb +0 -1
  103. data/app/services/blacklight/search_params_yaml_coder.rb +0 -2
  104. data/app/values/blacklight/types.rb +2 -2
  105. data/app/views/bookmarks/_clear_bookmarks_widget.html.erb +0 -2
  106. data/app/views/bookmarks/index.html.erb +1 -1
  107. data/app/views/catalog/_document.atom.builder +1 -1
  108. data/app/views/catalog/_document.html.erb +1 -1
  109. data/app/views/catalog/_email_form.html.erb +2 -2
  110. data/app/views/catalog/_results_pagination.html.erb +2 -5
  111. data/app/views/catalog/_search_results.html.erb +3 -3
  112. data/app/views/catalog/_search_results_header.html.erb +1 -1
  113. data/app/views/catalog/_show_main_content.html.erb +1 -1
  114. data/app/views/catalog/_sms_form.html.erb +2 -2
  115. data/app/views/catalog/_sort_and_per_page.html.erb +1 -1
  116. data/app/views/catalog/_sort_widget.html.erb +1 -0
  117. data/app/views/catalog/facet.html.erb +9 -9
  118. data/app/views/catalog/show.html.erb +2 -3
  119. data/app/views/kaminari/blacklight/_paginator.html.erb +1 -2
  120. data/app/views/layouts/blacklight/base.html.erb +3 -7
  121. data/app/views/search_history/index.html.erb +0 -2
  122. data/blacklight.gemspec +5 -5
  123. data/config/importmap.rb +1 -1
  124. data/config/locales/blacklight.ar.yml +4 -4
  125. data/config/locales/blacklight.ca.yml +124 -124
  126. data/config/locales/blacklight.de.yml +2 -2
  127. data/config/locales/blacklight.en.yml +14 -14
  128. data/config/locales/blacklight.es.yml +4 -4
  129. data/config/locales/blacklight.fr.yml +4 -4
  130. data/config/locales/blacklight.hu.yml +4 -4
  131. data/config/locales/blacklight.it.yml +3 -3
  132. data/config/locales/blacklight.nl.yml +3 -3
  133. data/config/locales/blacklight.pt-BR.yml +3 -3
  134. data/config/locales/blacklight.sq.yml +4 -4
  135. data/config/locales/blacklight.zh.yml +4 -4
  136. data/lib/blacklight/abstract_repository.rb +2 -2
  137. data/lib/blacklight/component.rb +1 -4
  138. data/lib/blacklight/configuration/context.rb +3 -3
  139. data/lib/blacklight/configuration/field.rb +10 -10
  140. data/lib/blacklight/configuration/sort_field.rb +2 -2
  141. data/lib/blacklight/configuration/view_config.rb +2 -4
  142. data/lib/blacklight/configuration.rb +4 -10
  143. data/lib/blacklight/engine.rb +0 -6
  144. data/lib/blacklight/nested_open_struct_with_hash_access.rb +1 -1
  145. data/lib/blacklight/open_struct_with_hash_access.rb +2 -2
  146. data/lib/blacklight/parameters.rb +1 -1
  147. data/lib/blacklight/search_state/filter_field.rb +4 -4
  148. data/lib/blacklight/search_state/pivot_filter_field.rb +1 -1
  149. data/lib/blacklight/solr/request.rb +2 -8
  150. data/lib/blacklight/solr/response/facets.rb +2 -2
  151. data/lib/blacklight/solr/response.rb +1 -4
  152. data/lib/generators/blacklight/assets/importmap_generator.rb +10 -51
  153. data/lib/generators/blacklight/assets/propshaft_generator.rb +1 -1
  154. data/lib/generators/blacklight/assets_generator.rb +3 -3
  155. data/lib/generators/blacklight/controller_generator.rb +3 -3
  156. data/lib/generators/blacklight/search_builder_generator.rb +1 -1
  157. data/lib/generators/blacklight/templates/.solr_wrapper.yml +0 -2
  158. data/lib/generators/blacklight/templates/solr/conf/schema.xml +178 -264
  159. data/lib/generators/blacklight/templates/solr/conf/solrconfig.xml +18 -6
  160. data/lib/generators/blacklight/user_generator.rb +9 -10
  161. data/package.json +14 -4
  162. data/rollup.config.js +1 -1
  163. data/spec/components/blacklight/document/action_component_spec.rb +2 -6
  164. data/spec/components/blacklight/document/group_component_spec.rb +1 -1
  165. data/spec/components/blacklight/document/sidebar_component_spec.rb +5 -20
  166. data/spec/components/blacklight/document_component_spec.rb +19 -24
  167. data/spec/components/blacklight/facet_component_spec.rb +2 -2
  168. data/spec/components/blacklight/facet_field_checkboxes_component_spec.rb +2 -2
  169. data/spec/components/blacklight/facet_field_list_component_spec.rb +3 -3
  170. data/spec/components/blacklight/search/facet_suggest_input_spec.rb +3 -27
  171. data/spec/components/blacklight/search_bar_component_spec.rb +1 -1
  172. data/spec/controllers/blacklight/catalog_spec.rb +1 -1
  173. data/spec/controllers/catalog_controller_spec.rb +3 -3
  174. data/spec/features/advanced_search_spec.rb +12 -12
  175. data/spec/features/axe_spec.rb +6 -11
  176. data/spec/features/bookmarks_spec.rb +60 -23
  177. data/spec/features/did_you_mean_spec.rb +17 -17
  178. data/spec/features/facet_missing_spec.rb +3 -3
  179. data/spec/features/facets_spec.rb +22 -90
  180. data/spec/features/modal_spec.rb +1 -1
  181. data/spec/features/record_view_spec.rb +14 -14
  182. data/spec/features/search_context_spec.rb +8 -9
  183. data/spec/features/search_filters_spec.rb +18 -18
  184. data/spec/features/search_formats_spec.rb +2 -2
  185. data/spec/features/search_history_spec.rb +11 -11
  186. data/spec/features/search_pagination_spec.rb +9 -9
  187. data/spec/features/search_results_spec.rb +3 -3
  188. data/spec/features/search_sort_spec.rb +4 -4
  189. data/spec/features/search_spec.rb +15 -15
  190. data/spec/helpers/blacklight/configuration_helper_behavior_spec.rb +0 -9
  191. data/spec/helpers/blacklight/render_partials_helper_behavior_spec.rb +1 -1
  192. data/spec/helpers/blacklight/url_helper_behavior_spec.rb +14 -14
  193. data/spec/helpers/blacklight_helper_spec.rb +0 -6
  194. data/spec/helpers/catalog_helper_spec.rb +6 -6
  195. data/spec/lib/blacklight/open_struct_with_hash_access_spec.rb +0 -7
  196. data/spec/lib/blacklight/parameters_spec.rb +1 -12
  197. data/spec/lib/blacklight/search_state/filter_field_spec.rb +0 -18
  198. data/spec/lib/blacklight/search_state/pivot_filter_field_spec.rb +1 -1
  199. data/spec/models/blacklight/solr/request_spec.rb +7 -0
  200. data/spec/models/record_mailer_spec.rb +5 -5
  201. data/spec/models/solr_document_spec.rb +1 -5
  202. data/spec/presenters/blacklight/index_presenter_spec.rb +0 -1
  203. data/spec/presenters/blacklight/rendering/pipeline_spec.rb +0 -1
  204. data/spec/presenters/blacklight/show_presenter_spec.rb +0 -1
  205. data/spec/presenters/blacklight/thumbnail_presenter_spec.rb +0 -1
  206. data/spec/services/blacklight/search_service_spec.rb +1 -1
  207. data/spec/support/presenter_test_helpers.rb +1 -1
  208. data/spec/views/catalog/_document.html.erb_spec.rb +4 -4
  209. data/spec/views/catalog/_facet_layout.html.erb_spec.rb +3 -3
  210. data/spec/views/catalog/_sort_and_per_page.html.erb_spec.rb +5 -5
  211. data/spec/views/catalog/facet.html.erb_spec.rb +1 -9
  212. data/spec/views/catalog/index.atom.builder_spec.rb +0 -2
  213. data/spec/views/catalog/index.html.erb_spec.rb +7 -4
  214. data/spec/views/catalog/show.html.erb_spec.rb +4 -3
  215. data/tasks/blacklight.rake +8 -5
  216. metadata +34 -65
  217. data/.github/matrix.json +0 -109
  218. data/.github/workflows/build.yml +0 -16
  219. data/.github/workflows/lint.yml +0 -25
  220. data/.github/workflows/main.yml +0 -24
  221. data/.github/workflows/test.yml +0 -57
  222. data/app/assets/stylesheets/blacklight/_autocomplete.scss +0 -25
  223. data/app/assets/stylesheets/blacklight/_mixins.scss +0 -20
  224. data/app/components/blacklight/icons/legacy_icon_component.rb +0 -30
  225. data/app/javascript/blacklight/facet_suggest.js +0 -48
  226. data/app/javascript/blacklight/index.js +0 -18
  227. data/app/views/catalog/_constraints.html.erb +0 -1
  228. data/app/views/catalog/_facets.html.erb +0 -5
  229. data/app/views/catalog/_search_form.html.erb +0 -7
  230. data/app/views/catalog/_search_header.html.erb +0 -1
  231. data/app/views/catalog/_show_sidebar.html.erb +0 -3
  232. data/app/views/catalog/_show_tools.html.erb +0 -2
  233. data/app/views/catalog/_start_over.html.erb +0 -1
  234. data/app/views/shared/_header_navbar.html.erb +0 -1
  235. data/lib/generators/blacklight/assets/sprockets_generator.rb +0 -68
  236. data/spec/components/blacklight/system/dropdown_component_spec.rb +0 -26
  237. data/spec/views/catalog/_search_header.erb_spec.rb +0 -14
  238. data/spec/views/catalog/_show_sidebar.erb_spec.rb +0 -24
  239. data/spec/views/catalog/_show_tools.html.erb_spec.rb +0 -37
  240. /data/app/javascript/{blacklight → blacklight-frontend}/button_focus.js +0 -0
  241. /data/app/javascript/{blacklight → blacklight-frontend}/checkbox_submit.js +0 -0
  242. /data/app/javascript/{blacklight → blacklight-frontend}/modalForm.js +0 -0
@@ -1,12 +1,17 @@
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'
7
12
  visit root_path
8
13
  click_on 'Bookmarks'
9
- expect(page).to have_text 'You have no bookmarks'
14
+ expect(page).to have_content 'You have no bookmarks'
10
15
  end
11
16
  end
12
17
 
@@ -15,8 +20,8 @@ RSpec.describe "Bookmarks" do
15
20
  click_on 'Bookmark'
16
21
  click_on 'Bookmarks'
17
22
  click_on 'Clear Bookmarks'
18
- expect(page).to have_text 'Cleared your bookmarks.'
19
- expect(page).to have_text 'You have no bookmarks'
23
+ expect(page).to have_content 'Cleared your bookmarks.'
24
+ expect(page).to have_content 'You have no bookmarks'
20
25
  end
21
26
 
22
27
  it "add and remove bookmarks from search results" do
@@ -25,11 +30,11 @@ RSpec.describe "Bookmarks" do
25
30
  fill_in "q", with: 'Sumadhvavijayaḥ'
26
31
  click_on 'search'
27
32
  click_on 'Bookmark'
28
- expect(page).to have_text 'Successfully added bookmark.'
33
+ expect(page).to have_content 'Successfully added bookmark.'
29
34
  fill_in "q", with: 'Sumadhvavijayaḥ'
30
35
  click_on 'search'
31
36
  click_on 'Remove bookmark'
32
- expect(page).to have_text 'Successfully removed bookmark.'
37
+ expect(page).to have_content 'Successfully removed bookmark.'
33
38
  end
34
39
 
35
40
  it "adds and delete bookmarks from the show page" do
@@ -37,16 +42,28 @@ RSpec.describe "Bookmarks" do
37
42
  visit solr_document_path('2007020969')
38
43
  click_on 'Bookmark'
39
44
  click_on 'Remove bookmark'
40
- expect(page).to have_text 'Successfully removed bookmark.'
45
+ expect(page).to have_content 'Successfully removed bookmark.'
41
46
  end
42
47
 
43
- it 'shows bookmarks as checkboxes', :js do
44
- visit solr_document_path('2007020969')
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
- visit solr_document_path('2007020969')
48
- expect(page).to have_css('input[type="checkbox"][checked]')
49
- uncheck 'In Bookmarks'
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
@@ -55,7 +72,7 @@ RSpec.describe "Bookmarks" do
55
72
  sign_in 'user1'
56
73
  visit bookmarks_path
57
74
  expect(page).to have_button("Remove bookmark")
58
- expect(page).to have_text("Strong Medicine speaks")
75
+ expect(page).to have_content("Strong Medicine speaks")
59
76
  end
60
77
 
61
78
  it "cites items in bookmarks" do
@@ -63,7 +80,7 @@ RSpec.describe "Bookmarks" do
63
80
  click_on 'Bookmark'
64
81
  click_on 'Bookmarks'
65
82
  click_on 'Cite'
66
- expect(page).to have_text 'Strong Medicine speaks'
83
+ expect(page).to have_content 'Strong Medicine speaks'
67
84
  end
68
85
 
69
86
  it "cites all items in current bookmarks" do
@@ -74,25 +91,45 @@ RSpec.describe "Bookmarks" do
74
91
  click_on 'Bookmark'
75
92
 
76
93
  visit "/bookmarks?per_page=1"
77
- expect(page).to have_text 'Strong Medicine speaks'
78
- expect(page).to have_no_text 'Ci an zhou bian'
94
+ expect(page).to have_content 'Strong Medicine speaks'
95
+ expect(page).to have_no_content 'Ci an zhou bian'
79
96
 
80
97
  click_on 'Cite'
81
- expect(page).to have_text 'Strong Medicine speaks'
82
- expect(page).to have_text 'Ci an zhou bian'
98
+ expect(page).to have_content 'Strong Medicine speaks'
99
+ expect(page).to have_content 'Ci an zhou bian'
83
100
  end
84
101
 
85
- context "has bookmark icon" do
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.bookmark_icon_component = Blacklight::Icons::BookmarkIconComponent
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 'shows bookmark icon instead of checkbox', :js do
124
+ it 'adds and removes bookmarks', :js do
91
125
  visit solr_document_path('2007020969')
92
- expect(page).to have_css('.blacklight-icons-bookmark')
126
+ expect(page).to have_no_css('#bookmarks_nav')
93
127
  find('.blacklight-icons-bookmark').click
94
128
 
95
- expect(find('.toggle-bookmark[type="checkbox"]', visible: false)).to be_checked
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
@@ -8,10 +8,10 @@ RSpec.describe "Did You Mean" do
8
8
  fill_in "q", with: 'politica'
9
9
  click_on 'search'
10
10
 
11
- expect(page).to have_text("Did you mean")
11
+ expect(page).to have_content("Did you mean")
12
12
  click_on 'policy'
13
13
  within ("#sortAndPerPage") do
14
- expect(page).to have_text "1 - 2 of 2"
14
+ expect(page).to have_content "1 - 2 of 2"
15
15
  end
16
16
  end
17
17
  end
@@ -24,10 +24,10 @@ RSpec.describe "Did You Mean" do
24
24
  fill_in "q", with: 'yehudiyam'
25
25
  click_on 'search'
26
26
 
27
- expect(page).to have_text("Did you mean")
27
+ expect(page).to have_content("Did you mean")
28
28
  click_on 'yehudiyim'
29
29
  within ("#sortAndPerPage") do
30
- expect(page).to have_text "1 entry found"
30
+ expect(page).to have_content "1 entry found"
31
31
  end
32
32
  within ("select#search_field") do
33
33
  expect(page).to have_css("option[selected]", text: "Title")
@@ -43,10 +43,10 @@ RSpec.describe "Did You Mean" do
43
43
  fill_in "q", with: 'shirma'
44
44
  click_on 'search'
45
45
 
46
- expect(page).to have_text("Did you mean")
46
+ expect(page).to have_content("Did you mean")
47
47
  click_on 'sharma'
48
48
  within ("#sortAndPerPage") do
49
- expect(page).to have_text "1 entry found"
49
+ expect(page).to have_content "1 entry found"
50
50
  end
51
51
  within ("select#search_field") do
52
52
  expect(page).to have_css("option[selected]", text: "Author")
@@ -62,10 +62,10 @@ RSpec.describe "Did You Mean" do
62
62
  fill_in "q", with: 'wome'
63
63
  click_on 'search'
64
64
 
65
- expect(page).to have_text("Did you mean")
65
+ expect(page).to have_content("Did you mean")
66
66
  click_on 'women'
67
67
  within ("#sortAndPerPage") do
68
- expect(page).to have_text "1 - 3 of 3"
68
+ expect(page).to have_content "1 - 3 of 3"
69
69
  end
70
70
  within ("select#search_field") do
71
71
  expect(page).to have_css("option[selected]", text: "Subject")
@@ -78,7 +78,7 @@ RSpec.describe "Did You Mean" do
78
78
  fill_in "q", with: 'ooofda ooofda'
79
79
  click_on 'search'
80
80
 
81
- expect(page).to have_no_text("Did you mean")
81
+ expect(page).to have_no_content("Did you mean")
82
82
  end
83
83
 
84
84
  it "has separate suggestions" do
@@ -86,7 +86,7 @@ RSpec.describe "Did You Mean" do
86
86
  click_on 'search'
87
87
 
88
88
  within(".suggest") do
89
- expect(page).to have_text("Did you mean")
89
+ expect(page).to have_content("Did you mean")
90
90
  expect(page).to have_link('policy')
91
91
  expect(page).to have_link('bon')
92
92
  expect(page).to have_no_link('policy bon')
@@ -94,7 +94,7 @@ RSpec.describe "Did You Mean" do
94
94
 
95
95
  click_on 'bon'
96
96
  within ("#sortAndPerPage") do
97
- expect(page).to have_text "1 entry found"
97
+ expect(page).to have_content "1 entry found"
98
98
  end
99
99
  end
100
100
 
@@ -103,7 +103,7 @@ RSpec.describe "Did You Mean" do
103
103
  click_on 'search'
104
104
 
105
105
  within(".suggest") do
106
- expect(page).to have_text("Did you mean")
106
+ expect(page).to have_content("Did you mean")
107
107
  expect(page).to have_link('bon', count: 1)
108
108
  expect(page).to have_no_link('bon bon')
109
109
  end
@@ -114,10 +114,10 @@ RSpec.describe "Did You Mean" do
114
114
  fill_in "q", with: 'ayaz'
115
115
  click_on 'search'
116
116
 
117
- expect(page).to have_text("Did you mean")
117
+ expect(page).to have_content("Did you mean")
118
118
  click_on 'bya'
119
119
  within ("#sortAndPerPage") do
120
- expect(page).to have_text "1 - 3 of 3"
120
+ expect(page).to have_content "1 - 3 of 3"
121
121
  end
122
122
  end
123
123
 
@@ -125,7 +125,7 @@ RSpec.describe "Did You Mean" do
125
125
  # polit gives 5 results in 30 record demo index - 5 is default cutoff
126
126
  fill_in "q", with: 'polit'
127
127
  click_on 'search'
128
- expect(page).to have_text("Did you mean")
128
+ expect(page).to have_content("Did you mean")
129
129
  end
130
130
 
131
131
  context 'spellcheck collations are enabled' do
@@ -141,10 +141,10 @@ RSpec.describe "Did You Mean" do
141
141
  fill_in "q", with: 'Yoshido Hajime'
142
142
  click_on 'search'
143
143
 
144
- expect(page).to have_text("Did you mean")
144
+ expect(page).to have_content("Did you mean")
145
145
  click_on 'yoshida Hajime'
146
146
  within ("#sortAndPerPage") do
147
- expect(page).to have_text "1 - 2 of 2"
147
+ expect(page).to have_content "1 - 2 of 2"
148
148
  end
149
149
  end
150
150
  end
@@ -23,7 +23,7 @@ RSpec.describe "Facet missing" do
23
23
  end
24
24
 
25
25
  within "#sortAndPerPage" do
26
- expect(page).to have_text "1 - 10 of 13"
26
+ expect(page).to have_content "1 - 10 of 13"
27
27
  end
28
28
 
29
29
  expect(page).to have_css(".constraint-value", text: "Region")
@@ -44,7 +44,7 @@ RSpec.describe "Facet missing" do
44
44
  end
45
45
 
46
46
  expect(page).to have_no_link "remove"
47
- expect(page).to have_text("Welcome!")
47
+ expect(page).to have_content("Welcome!")
48
48
  end
49
49
  end
50
50
 
@@ -61,7 +61,7 @@ RSpec.describe "Facet missing" do
61
61
  end
62
62
 
63
63
  expect(page).to have_no_link "remove"
64
- expect(page).to have_text("Welcome!")
64
+ expect(page).to have_content("Welcome!")
65
65
  end
66
66
  end
67
67
  end
@@ -99,103 +99,35 @@ RSpec.describe "Facets" do
99
99
  end
100
100
  end
101
101
 
102
- describe 'Facet modal content' do
103
- context 'when facet is configured with suggest: true' do
104
- # BL8: turn on the suggest feature for testing (off by default)
105
- before do
106
- CatalogController.blacklight_config.facet_fields[:subject_ssim].suggest = true
107
- end
108
-
109
- after do
110
- CatalogController.blacklight_config.facet_fields[:subject_ssim].delete(:suggest)
111
- end
112
-
113
- it 'allows the user to filter a long list of facet values', :js do
114
- visit '/catalog/facet/subject_ssim'
115
- expect(page).to have_no_link 'Old age' # This is on the second page of facet values
116
- expect(page).to have_css 'a.facet-select', count: 20
117
-
118
- fill_in 'facet_suggest_subject_ssim', with: "ag"
119
-
120
- expect(page).to have_css '.facet-suggestions'
121
- expect(page).to have_link 'Old age'
122
- expect(page).to have_css 'a.facet-select', count: 2
123
- end
124
-
125
- it 'shows the user facet suggestions that are relevant to their q param', :js do
126
- visit '/catalog/facet/subject_ssim?q=tibet&search_field=all_fields'
127
- fill_in 'facet_suggest_subject_ssim', with: 'la'
128
-
129
- expect(page).to have_css '.facet-suggestions'
130
- expect(page).to have_link 'Tibetan language'
131
- expect(page).to have_no_link 'Law'
132
- expect(page).to have_css 'a.facet-select', count: 1
133
- end
134
-
135
- it 'allows the user to toggle the sort, then filter', :js do
136
- visit '/catalog/facet/subject_ssim'
137
-
138
- fill_in 'facet_suggest_subject_ssim', with: 'po'
139
-
140
- expect(page).to have_css '.facet-suggestions'
141
- expect(page).to have_css('.facet-values li:nth-child(1)', text: 'Political plays, Japanese')
142
- expect(page).to have_css('.facet-values li:nth-child(2)', text: 'Military weapons')
143
- expect(page).to have_css('.facet-values li:nth-child(3)', text: 'Political science')
144
-
145
- first(:link, 'A-Z Sort').click
146
-
147
- expect(page).to have_css('.facet-suggest[data-facet-search-context*="facet.sort=index"]')
102
+ describe 'Facet modal' do
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
148
107
 
149
- fill_in 'facet_suggest_subject_ssim', with: 'po'
108
+ fill_in 'facet_suggest_subject_ssim', with: "ag"
150
109
 
151
- expect(page).to have_css '.facet-suggestions'
152
- expect(page).to have_css('.facet-values li:nth-child(1)', text: 'Military weapons')
153
- expect(page).to have_css('.facet-values li:nth-child(2)', text: 'Political plays, Japanese')
154
- expect(page).to have_css('.facet-values li:nth-child(3)', text: 'Political science')
155
- end
156
-
157
- it 'allows the user to choose a starting letter, then filter', :js do
158
- visit '/catalog/facet/subject_ssim'
159
-
160
- first(:link, 'A-Z Sort').click
161
- expect(page).to have_css('.facet-suggest[data-facet-search-context*="facet.sort=index"]')
162
-
163
- click_on 'M'
164
- expect(page).to have_css('.facet-suggest[data-facet-search-context*="facet.prefix=M"]')
165
-
166
- fill_in 'facet_suggest_subject_ssim', with: 'te'
167
-
168
- expect(page).to have_css '.facet-suggestions'
169
- expect(page).to have_link 'Maternity insurance'
170
- expect(page).to have_no_link 'Teaching'
171
- end
172
-
173
- it 'hides previous/next links when filtering', :js do
174
- visit '/catalog/facet/subject_ssim'
175
- expect(page).to have_link 'Next »'
110
+ expect(page).to have_link 'Old age'
111
+ expect(page).to have_css 'a.facet-select', count: 2
112
+ end
176
113
 
177
- fill_in 'facet_suggest_subject_ssim', with: 'te'
178
- expect(page).to have_css '.facet-suggestions'
179
- expect(page).to have_no_link 'Next »'
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'
180
117
 
181
- fill_in 'facet_suggest_subject_ssim', with: ''
182
- expect(page).to have_no_css '.facet-suggestions'
183
- expect(page).to have_link 'Next »'
184
- end
118
+ expect(page).to have_link 'Tibetan language'
119
+ expect(page).to have_css 'a.facet-select', count: 1
185
120
  end
186
121
 
187
- context 'when facet is NOT configured with suggest: true' do
188
- it 'does not offer the user a way to filter the list of facet values' do
189
- visit '/catalog/facet/subject_ssim'
190
- expect(page).to have_no_field 'facet_suggest_subject_ssim'
191
- end
192
- end
193
- end
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
126
+
127
+ fill_in 'facet_suggest_subject_ssim', with: "ag"
194
128
 
195
- describe 'facebook-style facet parameters' do
196
- it 'can perform a search' do
197
- visit '/?f[subject_ssim][0]=Iran.+Viza%CC%84rat-i+Kishvar'
198
- 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')
199
131
  end
200
132
  end
201
133
  end
@@ -3,7 +3,7 @@
3
3
  RSpec.describe 'Modal' do
4
4
  it 'can open and dismiss the email modal', :js do
5
5
  visit solr_document_path('2007020969')
6
- expect(page).to have_no_css 'dialog#blacklight-modal'
6
+ expect(page).to have_no_selector 'dialog#blacklight-modal'
7
7
  click_on 'Email'
8
8
  expect(page).to have_css 'dialog#blacklight-modal'
9
9
  click_on '×'
@@ -3,16 +3,16 @@
3
3
  RSpec.describe "Record View" do
4
4
  it "displays a normal record" do
5
5
  visit solr_document_path('2007020969')
6
- expect(page).to have_text "Title:"
7
- expect(page).to have_text "Strong Medicine speaks"
8
- expect(page).to have_text "Subtitle:"
9
- expect(page).to have_text "a Native American elder has her say : an oral history"
10
- expect(page).to have_text "Author:"
11
- expect(page).to have_text "Hearth, Amy Hill, 1958-"
12
- expect(page).to have_text "Format:"
13
- expect(page).to have_text "Book"
14
- expect(page).to have_text "Call number:"
15
- expect(page).to have_text "E99.D2 H437 2008"
6
+ expect(page).to have_content "Title:"
7
+ expect(page).to have_content "Strong Medicine speaks"
8
+ expect(page).to have_content "Subtitle:"
9
+ expect(page).to have_content "a Native American elder has her say : an oral history"
10
+ expect(page).to have_content "Author:"
11
+ expect(page).to have_content "Hearth, Amy Hill, 1958-"
12
+ expect(page).to have_content "Format:"
13
+ expect(page).to have_content "Book"
14
+ expect(page).to have_content "Call number:"
15
+ expect(page).to have_content "E99.D2 H437 2008"
16
16
  tmp_value = Capybara.ignore_hidden_elements
17
17
  Capybara.ignore_hidden_elements = false
18
18
  expect(page).to have_css("link[rel=alternate]")
@@ -21,13 +21,13 @@ RSpec.describe "Record View" do
21
21
 
22
22
  it "does not display blank titles" do
23
23
  visit solr_document_path('2008305903')
24
- expect(page).to have_no_text "More Information:"
24
+ expect(page).to have_no_content "More Information:"
25
25
  end
26
26
 
27
27
  it "does not display vernacular records" do
28
28
  visit solr_document_path('2009373513')
29
- expect(page).to have_text "次按驟變"
30
- expect(page).to have_text "林行止"
31
- expect(page).to have_text "臺北縣板橋市"
29
+ expect(page).to have_content "次按驟變"
30
+ expect(page).to have_content "林行止"
31
+ expect(page).to have_content "臺北縣板橋市"
32
32
  end
33
33
  end
@@ -5,12 +5,12 @@ RSpec.describe "Search Results context" do
5
5
  search_for ''
6
6
  click_on 'Pluvial nectar of blessings'
7
7
  search_id = Search.last.id.to_s
8
- expect(page).to have_text "« Previous | 10 of 30 | Next »"
8
+ expect(page).to have_content "« Previous | 10 of 30 | Next »"
9
9
  prev = page.find(".pagination-search-widgets .previous")
10
10
  expect(prev['data-context-href']).to eq "/catalog/2003546302/track?counter=9&document_id=2003546302&search_id=#{search_id}"
11
11
 
12
12
  click_on "« Previous"
13
- expect(page).to have_text "U21.2 .W85 2003"
13
+ expect(page).to have_content "U21.2 .W85 2003"
14
14
 
15
15
  prev = page.find(".pagination-search-widgets .previous")
16
16
  expect(prev['data-context-href']).to eq "/catalog/2004310986/track?counter=8&document_id=2004310986&search_id=#{search_id}"
@@ -19,8 +19,8 @@ RSpec.describe "Search Results context" do
19
19
  it "redirects context urls to the original url", :js do
20
20
  search_for ''
21
21
  first('.index_title a').click
22
- expect(page).to have_text "« Previous | 1 of 30 | Next »"
23
- expect(page.current_url).to have_no_text "/track"
22
+ expect(page).to have_content "« Previous | 1 of 30 | Next »"
23
+ expect(page.current_url).to have_no_content "/track"
24
24
  end
25
25
 
26
26
  it 'shows "Back to Search" and "Start Over links"' do
@@ -39,20 +39,19 @@ RSpec.describe "Search Results context" do
39
39
  # Go to the number 9 result separately
40
40
  visit '/catalog/2003546302'
41
41
  expect(page).to have_no_css '.page-links'
42
- expect(page).to have_no_text "« Previous | 10 of 30 | Next »"
42
+ expect(page).to have_no_content "« Previous | 10 of 30 | Next »"
43
43
  end
44
44
 
45
45
  context "navigating between search results using context pagination" do
46
46
  it "updates the back to search link with the current search pagination context", :js do
47
47
  search_for ''
48
- expect(page).to have_text "1 - 10"
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 have_css "h1", text: "Naqdī barā-yi tamām-i"
52
+ expect(page).to have_content "Naqdī barā-yi tamām-i"
54
53
  click_on "Back to Search"
55
- expect(page).to have_text "11 - 20"
54
+ expect(page).to have_content "11 - 20"
56
55
  end
57
56
  end
58
57
  end
@@ -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 have_text "1 - 6 of 6"
10
+ expect(page).to have_content "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 have_text "1 - 2 of 2"
23
+ expect(page).to have_content "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 have_text "1 - 10 of 11"
40
+ expect(page).to have_content "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 have_text "1 - 2 of 2"
47
+ expect(page).to have_content "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 have_text "You searched for:"
55
- expect(page).to have_text "history"
54
+ expect(page).to have_content "You searched for:"
55
+ expect(page).to have_content "history"
56
56
  end
57
57
 
58
58
  click_on "2004"
59
59
 
60
60
  within ("#sortAndPerPage") do
61
- expect(page).to have_text "1 entry found"
61
+ expect(page).to have_content "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 have_text('Welcome!')
86
+ expect(page).to have_content('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 have_text "You searched for:"
142
- expect(page).to have_text "history"
141
+ expect(page).to have_content "You searched for:"
142
+ expect(page).to have_content "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 have_text "You searched for:"
166
- expect(page).to have_text "history"
165
+ expect(page).to have_content "You searched for:"
166
+ expect(page).to have_content "history"
167
167
  end
168
168
  end
169
169
 
@@ -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(".card-body", visible: true)
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(".card-body", visible: true)
182
+ expect(page).to have_no_css(".accordion-body", visible: true)
183
183
  click_on 'Topic'
184
- expect(page).to have_css(".card-body", visible: true)
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(".card-body", visible: true)
193
- find(".card-header").click
194
- expect(page).to have_css(".card-body", visible: true)
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
 
@@ -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 have_text "Blacklight Search Results"
6
+ expect(page).to have_content "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 have_text "Blacklight Search Results"
12
+ expect(page).to have_content "Blacklight Search Results"
13
13
 
14
14
  expect(page).to have_xpath('//entry', count: 10)
15
15
  end