blacklight 8.2.2 → 8.4.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.
Files changed (225) hide show
  1. checksums.yaml +4 -4
  2. data/.env +1 -1
  3. data/.github/workflows/ruby.yml +60 -62
  4. data/.rubocop.yml +229 -21
  5. data/.rubocop_todo.yml +22 -55
  6. data/Gemfile +2 -10
  7. data/README.md +2 -2
  8. data/VERSION +1 -1
  9. data/app/assets/javascripts/blacklight/blacklight.esm.js +5 -1
  10. data/app/assets/javascripts/blacklight/blacklight.esm.js.map +1 -1
  11. data/app/assets/javascripts/blacklight/blacklight.js +5 -1
  12. data/app/assets/javascripts/blacklight/blacklight.js.map +1 -1
  13. data/app/assets/stylesheets/blacklight/_balanced_list.scss +1 -1
  14. data/app/assets/stylesheets/blacklight/_bookmark.scss +30 -0
  15. data/app/assets/stylesheets/blacklight/_bootstrap_overrides.scss +0 -4
  16. data/app/assets/stylesheets/blacklight/_constraints.scss +15 -9
  17. data/app/assets/stylesheets/blacklight/_controls.scss +0 -1
  18. data/app/assets/stylesheets/blacklight/_facets.scss +33 -37
  19. data/app/assets/stylesheets/blacklight/_header.scss +2 -35
  20. data/app/assets/stylesheets/blacklight/_icons.scss +3 -2
  21. data/app/assets/stylesheets/blacklight/_layout.scss +3 -0
  22. data/app/assets/stylesheets/blacklight/_mixins.scss +6 -21
  23. data/app/assets/stylesheets/blacklight/_search_form.scss +3 -8
  24. data/app/assets/stylesheets/blacklight/_search_history.scss +5 -5
  25. data/app/assets/stylesheets/blacklight/_search_results.scss +5 -2
  26. data/app/assets/stylesheets/blacklight/blacklight_defaults.scss +16 -10
  27. data/app/components/blacklight/advanced_search_form_component.html.erb +1 -1
  28. data/app/components/blacklight/advanced_search_form_component.rb +6 -0
  29. data/app/components/blacklight/constraint_layout_component.html.erb +2 -9
  30. data/app/components/blacklight/constraint_layout_component.rb +8 -0
  31. data/app/components/blacklight/constraints_component.rb +3 -3
  32. data/app/components/blacklight/document/action_component.rb +2 -1
  33. data/app/components/blacklight/document/bookmark_component.html.erb +2 -1
  34. data/app/components/blacklight/document/bookmark_component.rb +6 -0
  35. data/app/components/blacklight/document/page_header_component.html.erb +7 -0
  36. data/app/components/blacklight/document/page_header_component.rb +85 -0
  37. data/app/components/blacklight/document_component.rb +1 -1
  38. data/app/components/blacklight/facet_component.rb +1 -1
  39. data/app/components/blacklight/facet_field_checkboxes_component.html.erb +1 -1
  40. data/app/components/blacklight/facet_field_checkboxes_component.rb +1 -1
  41. data/app/components/blacklight/facet_field_inclusive_constraint_component.html.erb +1 -1
  42. data/app/components/blacklight/facet_field_list_component.html.erb +1 -1
  43. data/app/components/blacklight/facet_item_component.rb +1 -1
  44. data/app/components/blacklight/facet_item_pivot_component.rb +2 -2
  45. data/app/components/blacklight/icons/bookmark_icon_component.rb +17 -0
  46. data/app/components/blacklight/icons/icon_component.rb +9 -4
  47. data/app/components/blacklight/icons/remove_component.rb +16 -0
  48. data/app/components/blacklight/metadata_field_component.html.erb +1 -1
  49. data/app/components/blacklight/metadata_field_component.rb +5 -0
  50. data/app/components/blacklight/response/facet_group_component.rb +1 -1
  51. data/app/components/blacklight/response/pagination_component.html.erb +1 -1
  52. data/app/components/blacklight/response/sort_component.html.erb +1 -6
  53. data/app/components/blacklight/response/sort_component.rb +15 -0
  54. data/app/components/blacklight/search/per_page_component.html.erb +2 -0
  55. data/app/components/blacklight/search/per_page_component.rb +50 -0
  56. data/app/components/blacklight/search_bar_component.html.erb +1 -1
  57. data/app/components/blacklight/search_context/server_item_pagination_component.html.erb +4 -7
  58. data/app/components/blacklight/skip_link_component.html.erb +7 -0
  59. data/app/components/blacklight/skip_link_component.rb +17 -0
  60. data/app/components/blacklight/system/dropdown_button_component.rb +18 -0
  61. data/app/components/blacklight/system/dropdown_component.rb +4 -7
  62. data/app/components/blacklight/system/flash_message_component.html.erb +1 -1
  63. data/app/components/blacklight/top_navbar_component.html.erb +2 -2
  64. data/app/components/blacklight/top_navbar_component.rb +4 -0
  65. data/app/helpers/blacklight/catalog_helper_behavior.rb +3 -5
  66. data/app/helpers/blacklight/component_helper_behavior.rb +4 -4
  67. data/app/helpers/blacklight/configuration_helper_behavior.rb +2 -0
  68. data/app/helpers/blacklight/layout_helper_behavior.rb +3 -3
  69. data/app/javascript/blacklight/checkbox_submit.js +5 -1
  70. data/app/models/concerns/blacklight/document/semantic_fields.rb +1 -1
  71. data/app/presenters/blacklight/facet_checkbox_item_presenter.rb +11 -0
  72. data/app/presenters/blacklight/facet_field_presenter.rb +9 -1
  73. data/app/services/blacklight/search_service.rb +9 -1
  74. data/app/views/catalog/_per_page_widget.html.erb +1 -10
  75. data/app/views/catalog/_search_results.html.erb +1 -1
  76. data/app/views/catalog/_show_main_content.html.erb +1 -1
  77. data/app/views/catalog/show.html.erb +0 -2
  78. data/app/views/catalog/suggest.html.erb +1 -1
  79. data/app/views/kaminari/blacklight/_page.html.erb +14 -8
  80. data/app/views/layouts/blacklight/base.html.erb +3 -4
  81. data/app/views/shared/_flash_messages.html.erb +1 -1
  82. data/blacklight.gemspec +4 -0
  83. data/{docker-compose.yml → compose.yaml} +1 -1
  84. data/config/locales/blacklight.ar.yml +3 -0
  85. data/config/locales/blacklight.de.yml +3 -0
  86. data/config/locales/blacklight.en.yml +216 -229
  87. data/config/locales/blacklight.es.yml +3 -0
  88. data/config/locales/blacklight.fr.yml +3 -0
  89. data/config/locales/blacklight.hu.yml +3 -0
  90. data/config/locales/blacklight.it.yml +3 -0
  91. data/config/locales/blacklight.nl.yml +3 -0
  92. data/config/locales/blacklight.pt-BR.yml +3 -0
  93. data/config/locales/blacklight.sq.yml +3 -0
  94. data/config/locales/blacklight.zh.yml +3 -0
  95. data/lib/blacklight/abstract_repository.rb +6 -0
  96. data/lib/blacklight/configuration.rb +33 -19
  97. data/lib/blacklight/nested_open_struct_with_hash_access.rb +2 -2
  98. data/lib/blacklight/parameters.rb +1 -1
  99. data/lib/blacklight/solr/repository.rb +11 -4
  100. data/lib/blacklight/solr/request.rb +1 -1
  101. data/lib/blacklight/solr/response/facets.rb +1 -1
  102. data/lib/blacklight/solr/response/params.rb +1 -1
  103. data/lib/blacklight/solr/response.rb +0 -12
  104. data/lib/blacklight/solr/search_builder_behavior.rb +2 -2
  105. data/lib/blacklight/solr.rb +0 -6
  106. data/lib/blacklight.rb +4 -14
  107. data/lib/generators/blacklight/assets/propshaft_generator.rb +2 -2
  108. data/lib/generators/blacklight/models_generator.rb +1 -1
  109. data/package.json +1 -1
  110. data/spec/components/blacklight/advanced_search_form_component_spec.rb +2 -2
  111. data/spec/components/blacklight/constraint_layout_component_spec.rb +11 -11
  112. data/spec/components/blacklight/constraints_component_spec.rb +9 -9
  113. data/spec/components/blacklight/document/action_component_spec.rb +1 -1
  114. data/spec/components/blacklight/document/group_component_spec.rb +3 -3
  115. data/spec/components/blacklight/document/page_header_component_spec.rb +92 -0
  116. data/spec/components/blacklight/document/sidebar_component_spec.rb +3 -4
  117. data/spec/components/blacklight/document_component_spec.rb +41 -25
  118. data/spec/components/blacklight/facet_component_spec.rb +2 -2
  119. data/spec/components/blacklight/facet_field_checkboxes_component_spec.rb +5 -5
  120. data/spec/components/blacklight/facet_field_list_component_spec.rb +13 -13
  121. data/spec/components/blacklight/facet_item_component_spec.rb +5 -5
  122. data/spec/components/blacklight/facet_item_pivot_component_spec.rb +6 -6
  123. data/spec/components/blacklight/header_component_spec.rb +1 -2
  124. data/spec/components/blacklight/hidden_search_state_component_spec.rb +6 -6
  125. data/spec/components/blacklight/icons/icon_component_spec.rb +42 -0
  126. data/spec/components/blacklight/metadata_field_component_spec.rb +3 -3
  127. data/spec/components/blacklight/response/pagination_component_spec.rb +4 -4
  128. data/spec/components/blacklight/search_context/server_applied_params_component_spec.rb +1 -1
  129. data/spec/components/blacklight/search_context/server_item_pagination_component_spec.rb +2 -4
  130. data/spec/components/blacklight/system/flash_message_component_spec.rb +5 -5
  131. data/spec/controllers/blacklight/catalog_spec.rb +2 -2
  132. data/spec/controllers/blacklight/{catalog/component_configuration_spec.rb → configurable_spec.rb} +1 -1
  133. data/spec/controllers/bookmarks_controller_spec.rb +10 -10
  134. data/spec/controllers/catalog_controller_spec.rb +29 -31
  135. data/spec/features/advanced_search_spec.rb +30 -16
  136. data/spec/features/alternate_controller_spec.rb +9 -9
  137. data/spec/features/axe_spec.rb +4 -4
  138. data/spec/features/bookmarks_spec.rb +34 -19
  139. data/spec/features/citation_spec.rb +1 -1
  140. data/spec/features/did_you_mean_spec.rb +23 -23
  141. data/spec/features/facet_missing_spec.rb +9 -9
  142. data/spec/features/facets_spec.rb +21 -20
  143. data/spec/features/modal_spec.rb +4 -4
  144. data/spec/features/record_view_spec.rb +2 -2
  145. data/spec/features/search_context_spec.rb +6 -6
  146. data/spec/features/search_crawler_spec.rb +5 -5
  147. data/spec/features/search_filters_spec.rb +65 -65
  148. data/spec/features/search_history_spec.rb +12 -12
  149. data/spec/features/search_pagination_spec.rb +10 -10
  150. data/spec/features/search_results_spec.rb +1 -1
  151. data/spec/features/search_sort_spec.rb +4 -4
  152. data/spec/features/search_spec.rb +25 -25
  153. data/spec/features/sitelinks_search_box_spec.rb +2 -2
  154. data/spec/features/sms_spec.rb +1 -1
  155. data/spec/helpers/blacklight/facets_helper_behavior_spec.rb +2 -2
  156. data/spec/helpers/blacklight/layout_helper_behavior_spec.rb +20 -3
  157. data/spec/helpers/blacklight/render_partials_helper_behavior_spec.rb +2 -1
  158. data/spec/helpers/blacklight/url_helper_behavior_spec.rb +7 -8
  159. data/spec/helpers/blacklight_helper_spec.rb +13 -15
  160. data/spec/helpers/catalog_helper_spec.rb +3 -6
  161. data/spec/i18n_spec.rb +2 -1
  162. data/spec/lib/blacklight/nested_open_struct_with_hash_access_spec.rb +1 -1
  163. data/spec/lib/blacklight/open_struct_with_hash_access_spec.rb +1 -1
  164. data/spec/lib/blacklight/search_state_spec.rb +4 -4
  165. data/spec/lib/tasks/blacklight_task_spec.rb +2 -1
  166. data/spec/models/blacklight/configurable_spec.rb +1 -1
  167. data/spec/models/blacklight/configuration/context_spec.rb +1 -1
  168. data/spec/models/blacklight/configuration_spec.rb +14 -14
  169. data/spec/models/blacklight/document/active_model_shim_spec.rb +1 -1
  170. data/spec/models/blacklight/document/cache_key_spec.rb +1 -1
  171. data/spec/models/blacklight/document_spec.rb +1 -1
  172. data/spec/models/blacklight/facet_paginator_spec.rb +14 -14
  173. data/spec/models/blacklight/icon_spec.rb +1 -1
  174. data/spec/models/blacklight/search_builder_spec.rb +1 -1
  175. data/spec/models/blacklight/solr/document_spec.rb +3 -3
  176. data/spec/models/blacklight/solr/facet_paginator_spec.rb +1 -1
  177. data/spec/models/blacklight/solr/repository_spec.rb +33 -15
  178. data/spec/models/blacklight/solr/request_spec.rb +1 -1
  179. data/spec/models/blacklight/solr/response/facets_spec.rb +3 -3
  180. data/spec/models/blacklight/solr/response/group_response_spec.rb +1 -1
  181. data/spec/models/blacklight/solr/response/group_spec.rb +2 -2
  182. data/spec/models/blacklight/solr/response_spec.rb +3 -3
  183. data/spec/models/blacklight/solr/{search_builder_spec.rb → search_builder_behavior_spec.rb} +10 -20
  184. data/spec/models/blacklight/suggest/response_spec.rb +1 -1
  185. data/spec/models/blacklight/suggest_search_spec.rb +1 -1
  186. data/spec/models/blacklight/user_spec.rb +1 -1
  187. data/spec/models/bookmark_spec.rb +1 -1
  188. data/spec/models/solr_document_spec.rb +1 -1
  189. data/spec/presenters/blacklight/document_presenter_spec.rb +3 -4
  190. data/spec/presenters/blacklight/facet_checkbox_item_presenter_spec.rb +42 -0
  191. data/spec/presenters/blacklight/facet_field_presenter_spec.rb +14 -0
  192. data/spec/presenters/blacklight/field_presenter_spec.rb +1 -1
  193. data/spec/presenters/blacklight/index_presenter_spec.rb +2 -3
  194. data/spec/presenters/blacklight/json_presenter_spec.rb +1 -1
  195. data/spec/presenters/{pipeline_spec.rb → blacklight/rendering/pipeline_spec.rb} +1 -1
  196. data/spec/presenters/blacklight/show_presenter_spec.rb +5 -6
  197. data/spec/presenters/{thumbnail_presenter_spec.rb → blacklight/thumbnail_presenter_spec.rb} +5 -3
  198. data/spec/requests/load_suggestions_spec.rb +5 -5
  199. data/spec/routing/catalog_routing_spec.rb +1 -1
  200. data/spec/services/blacklight/field_retriever_spec.rb +1 -1
  201. data/spec/services/blacklight/search_service_spec.rb +11 -11
  202. data/spec/spec_helper.rb +2 -2
  203. data/spec/support/features/search_helpers.rb +2 -2
  204. data/spec/support/features/session_helpers.rb +3 -3
  205. data/spec/test_app_templates/lib/generators/test_app_generator.rb +3 -3
  206. data/spec/views/catalog/_document.html.erb_spec.rb +1 -4
  207. data/spec/views/catalog/_document_list.html.erb_spec.rb +2 -2
  208. data/spec/views/catalog/_facet_index_navigation.html.erb_spec.rb +5 -6
  209. data/spec/views/catalog/_facet_layout.html.erb_spec.rb +7 -7
  210. data/spec/views/catalog/_paginate_compact.html.erb_spec.rb +4 -4
  211. data/spec/views/catalog/_show_sidebar.erb_spec.rb +1 -4
  212. data/spec/views/catalog/_show_tools.html.erb_spec.rb +1 -2
  213. data/spec/views/catalog/_view_type_group.html.erb_spec.rb +7 -7
  214. data/spec/views/catalog/email_success.html.erb_spec.rb +1 -1
  215. data/spec/views/catalog/facet.html.erb_spec.rb +1 -1
  216. data/spec/views/catalog/facet.json.jbuilder_spec.rb +1 -1
  217. data/spec/views/catalog/index.atom.builder_spec.rb +18 -19
  218. data/spec/views/catalog/index.html.erb_spec.rb +2 -4
  219. data/spec/views/catalog/index.json.jbuilder_spec.rb +5 -8
  220. data/spec/views/catalog/show.html.erb_spec.rb +3 -5
  221. data/spec/views/catalog/show.json.jbuilder_spec.rb +1 -2
  222. data/spec/views/catalog/sms_success.html.erb_spec.rb +1 -1
  223. data/spec/views/shared/_user_util_links.html.erb_spec.rb +2 -3
  224. data/tasks/blacklight.rake +5 -5
  225. metadata +84 -12
@@ -4,138 +4,138 @@ RSpec.describe "Facets" do
4
4
  it "works without a search term" do
5
5
  visit root_path
6
6
  within "#facet-language_ssim" do
7
- click_link "Tibetan"
7
+ click_on "Tibetan"
8
8
  end
9
9
  within "#sortAndPerPage" do
10
10
  expect(page).to have_content "1 - 6 of 6"
11
11
  end
12
12
 
13
- expect(page).to have_selector(".blacklight-language_ssim")
14
- expect(page).to have_selector(".blacklight-language_ssim.facet-limit-active")
13
+ expect(page).to have_css(".blacklight-language_ssim")
14
+ expect(page).to have_css(".blacklight-language_ssim.facet-limit-active")
15
15
 
16
16
  within "#facet-language_ssim" do
17
- expect(page).to have_selector("span.selected", text: "Tibetan")
18
- expect(page).to have_selector("span.facet-count.selected", text: "6")
17
+ expect(page).to have_css("span.selected", text: "Tibetan")
18
+ expect(page).to have_css("span.facet-count.selected", text: "6")
19
19
  end
20
20
 
21
- click_link "India"
21
+ click_on "India"
22
22
  within ("#sortAndPerPage") do
23
23
  expect(page).to have_content "1 - 2 of 2"
24
24
  end
25
25
  within "#facet-language_ssim" do
26
- expect(page).to have_selector("span.selected", text: "Tibetan")
27
- expect(page).to have_selector("span.facet-count.selected", text: "2")
26
+ expect(page).to have_css("span.selected", text: "Tibetan")
27
+ expect(page).to have_css("span.facet-count.selected", text: "2")
28
28
  end
29
29
  within "#facet-subject_geo_ssim" do
30
- expect(page).to have_selector("span.selected", text: "India")
31
- expect(page).to have_selector("span.facet-count.selected", text: "2")
30
+ expect(page).to have_css("span.selected", text: "India")
31
+ expect(page).to have_css("span.facet-count.selected", text: "2")
32
32
  end
33
33
  end
34
34
 
35
35
  it "works in conjunction with a search term" do
36
36
  visit root_path
37
37
  fill_in "q", with: 'history'
38
- click_button 'search'
38
+ click_on 'search'
39
39
  within ("#sortAndPerPage") do
40
40
  expect(page).to have_content "1 - 10 of 11"
41
41
  end
42
42
 
43
43
  within "#facet-language_ssim" do
44
- click_link "Tibetan"
44
+ click_on "Tibetan"
45
45
  end
46
46
  within ("#sortAndPerPage") do
47
47
  expect(page).to have_content "1 - 2 of 2"
48
48
  end
49
49
  within "#facet-language_ssim" do
50
- expect(page).to have_selector("span.selected", text: "Tibetan")
51
- expect(page).to have_selector("span.facet-count.selected", text: "2")
50
+ expect(page).to have_css("span.selected", text: "Tibetan")
51
+ expect(page).to have_css("span.facet-count.selected", text: "2")
52
52
  end
53
53
  within "#appliedParams" do
54
54
  expect(page).to have_content "You searched for:"
55
55
  expect(page).to have_content "history"
56
56
  end
57
57
 
58
- click_link "2004"
58
+ click_on "2004"
59
59
 
60
60
  within ("#sortAndPerPage") do
61
61
  expect(page).to have_content "1 entry found"
62
62
  end
63
63
  within "#facet-language_ssim" do
64
- expect(page).to have_selector("span.selected", text: "Tibetan")
65
- expect(page).to have_selector("span.facet-count.selected", text: "1")
64
+ expect(page).to have_css("span.selected", text: "Tibetan")
65
+ expect(page).to have_css("span.facet-count.selected", text: "1")
66
66
  end
67
67
  within(".blacklight-pub_date_ssim") do
68
- expect(page).to have_selector("span.selected", text: "2004")
69
- expect(page).to have_selector("span.facet-count.selected", text: "1")
68
+ expect(page).to have_css("span.selected", text: "2004")
69
+ expect(page).to have_css("span.facet-count.selected", text: "1")
70
70
  end
71
71
  end
72
72
 
73
73
  it "allows removing filters" do
74
74
  visit root_path
75
75
  within "#facet-language_ssim" do
76
- click_link "Tibetan"
76
+ click_on "Tibetan"
77
77
  end
78
78
  within "#facet-language_ssim" do
79
- expect(page).to have_selector("span.selected", text: "Tibetan")
80
- expect(page).to have_selector("span.facet-count.selected", text: "6")
79
+ expect(page).to have_css("span.selected", text: "Tibetan")
80
+ expect(page).to have_css("span.facet-count.selected", text: "6")
81
81
  end
82
82
  within "#facet-language_ssim" do
83
- click_link 'remove'
83
+ click_on 'remove'
84
84
  end
85
- expect(page).not_to have_link 'remove'
85
+ expect(page).to have_no_link 'remove'
86
86
  expect(page).to have_content('Welcome!')
87
87
  end
88
88
 
89
89
  it "retains filters when you change the search term" do
90
90
  visit root_path
91
91
  fill_in "q", with: 'history'
92
- click_button 'search'
92
+ click_on 'search'
93
93
  within "#facet-language_ssim" do
94
- click_link 'Tibetan'
94
+ click_on 'Tibetan'
95
95
  end
96
96
  within "#facet-language_ssim" do
97
- expect(page).to have_selector("span.selected", text: "Tibetan")
98
- expect(page).to have_selector("span.facet-count.selected", text: "2")
97
+ expect(page).to have_css("span.selected", text: "Tibetan")
98
+ expect(page).to have_css("span.facet-count.selected", text: "2")
99
99
  end
100
100
 
101
- click_link '2004'
101
+ click_on '2004'
102
102
 
103
103
  within "#facet-language_ssim" do
104
- expect(page).to have_selector("span.selected", text: "Tibetan")
105
- expect(page).to have_selector("span.facet-count.selected", text: "1")
104
+ expect(page).to have_css("span.selected", text: "Tibetan")
105
+ expect(page).to have_css("span.facet-count.selected", text: "1")
106
106
  end
107
107
  within(".blacklight-pub_date_ssim") do
108
- expect(page).to have_selector("span.selected", text: "2004")
109
- expect(page).to have_selector("span.facet-count.selected", text: "1")
108
+ expect(page).to have_css("span.selected", text: "2004")
109
+ expect(page).to have_css("span.facet-count.selected", text: "1")
110
110
  end
111
111
  fill_in "q", with: 'china'
112
- click_button 'search'
112
+ click_on 'search'
113
113
 
114
114
  within "#facet-language_ssim" do
115
- expect(page).to have_selector("span.selected", text: "Tibetan")
116
- expect(page).to have_selector("span.facet-count.selected", text: "1")
115
+ expect(page).to have_css("span.selected", text: "Tibetan")
116
+ expect(page).to have_css("span.facet-count.selected", text: "1")
117
117
  end
118
118
  within(".blacklight-pub_date_ssim") do
119
- expect(page).to have_selector("span.selected", text: "2004")
120
- expect(page).to have_selector("span.facet-count.selected", text: "1")
119
+ expect(page).to have_css("span.selected", text: "2004")
120
+ expect(page).to have_css("span.facet-count.selected", text: "1")
121
121
  end
122
122
  end
123
123
 
124
124
  it "retains the filters when we change sort" do
125
125
  visit root_path
126
126
  fill_in "q", with: 'history'
127
- click_button 'search'
127
+ click_on 'search'
128
128
  within "#facet-language_ssim" do
129
- click_link 'Tibetan'
129
+ click_on 'Tibetan'
130
130
  end
131
131
  within "#facet-language_ssim" do
132
- expect(page).to have_selector("span.selected", text: "Tibetan")
133
- expect(page).to have_selector("span.facet-count.selected", text: "2")
132
+ expect(page).to have_css("span.selected", text: "Tibetan")
133
+ expect(page).to have_css("span.facet-count.selected", text: "2")
134
134
  end
135
- click_link 'title'
135
+ click_on 'title'
136
136
  within "#facet-language_ssim" do
137
- expect(page).to have_selector("span.selected", text: "Tibetan")
138
- expect(page).to have_selector("span.facet-count.selected", text: "2")
137
+ expect(page).to have_css("span.selected", text: "Tibetan")
138
+ expect(page).to have_css("span.facet-count.selected", text: "2")
139
139
  end
140
140
  within "#appliedParams" do
141
141
  expect(page).to have_content "You searched for:"
@@ -146,20 +146,20 @@ RSpec.describe "Facets" do
146
146
  it "retains the filters when we change per page number" do
147
147
  visit root_path
148
148
  fill_in "q", with: 'history'
149
- click_button 'search'
149
+ click_on 'search'
150
150
  within "#facet-language_ssim" do
151
- click_link 'Tibetan'
151
+ click_on 'Tibetan'
152
152
  end
153
153
  within "#facet-language_ssim" do
154
- expect(page).to have_selector("span.selected", text: "Tibetan")
155
- expect(page).to have_selector("span.facet-count.selected", text: "2")
154
+ expect(page).to have_css("span.selected", text: "Tibetan")
155
+ expect(page).to have_css("span.facet-count.selected", text: "2")
156
156
  end
157
157
  within '#per_page-dropdown' do
158
- click_link '20'
158
+ click_on '20'
159
159
  end
160
160
  within "#facet-language_ssim" do
161
- expect(page).to have_selector("span.selected", text: "Tibetan")
162
- expect(page).to have_selector("span.facet-count.selected", text: "2")
161
+ expect(page).to have_css("span.selected", text: "Tibetan")
162
+ expect(page).to have_css("span.facet-count.selected", text: "2")
163
163
  end
164
164
  within "#appliedParams" do
165
165
  expect(page).to have_content "You searched for:"
@@ -167,46 +167,46 @@ RSpec.describe "Facets" do
167
167
  end
168
168
  end
169
169
 
170
- it "is collapsed when not selected", js: true do
170
+ it "is collapsed when not selected", :js do
171
171
  visit root_path
172
172
 
173
173
  within(".blacklight-subject_ssim") do
174
- expect(page).not_to have_selector(".card-body", visible: true)
174
+ expect(page).to have_no_css(".card-body", visible: true)
175
175
  end
176
176
  end
177
177
 
178
- it "expands when the heading button is clicked", js: true do
178
+ it "expands when the heading button is clicked", :js do
179
179
  visit root_path
180
180
 
181
181
  within(".blacklight-subject_ssim") do
182
- expect(page).not_to have_selector(".card-body", visible: true)
183
- find(".card-header button").click
184
- expect(page).to have_selector(".card-body", visible: true)
182
+ expect(page).to have_no_css(".card-body", visible: true)
183
+ click_on 'Topic'
184
+ expect(page).to have_css(".card-body", visible: true)
185
185
  end
186
186
  end
187
187
 
188
- it "expands when the button is clicked", js: true do
188
+ it "expands when the button is clicked", :js do
189
189
  visit root_path
190
190
 
191
191
  within(".blacklight-subject_ssim") do
192
- expect(page).not_to have_selector(".card-body", visible: true)
192
+ expect(page).to have_no_css(".card-body", visible: true)
193
193
  find(".card-header").click
194
- expect(page).to have_selector(".card-body", visible: true)
194
+ expect(page).to have_css(".card-body", visible: true)
195
195
  end
196
196
  end
197
197
 
198
- it "keeps selected facets expanded on page load", js: true do
198
+ it "keeps selected facets expanded on page load", :js do
199
199
  visit root_path
200
200
 
201
201
  within(".blacklight-subject_ssim") do
202
202
  page.find('h3.facet-field-heading', text: 'Topic').click
203
- expect(page).to have_selector(".panel-collapse", visible: true)
203
+ expect(page).to have_css(".panel-collapse", visible: true)
204
204
  end
205
205
  within(".blacklight-subject_ssim") do
206
- click_link "Japanese drama"
206
+ click_on "Japanese drama"
207
207
  end
208
208
  within(".blacklight-subject_ssim") do
209
- expect(page).to have_selector(".panel-collapse", visible: true)
209
+ expect(page).to have_css(".panel-collapse", visible: true)
210
210
  end
211
211
  end
212
212
  end
@@ -4,7 +4,7 @@ RSpec.describe "Search History Page" do
4
4
  describe "navigating from the homepage" do
5
5
  it "has a link to the history page" do
6
6
  visit root_path
7
- click_link 'History'
7
+ click_on 'History'
8
8
  expect(page).to have_content 'Search History'
9
9
  expect(page).to have_content 'You have no search history'
10
10
  end
@@ -14,18 +14,18 @@ RSpec.describe "Search History Page" do
14
14
  before do
15
15
  visit root_path
16
16
  fill_in "q", with: 'book'
17
- click_button 'search'
18
- click_link 'History'
17
+ click_on 'search'
18
+ click_on 'History'
19
19
  end
20
20
 
21
21
  it "shows searches" do
22
22
  expect(page).to have_content 'Your recent searches'
23
23
  expect(page).to have_content 'book'
24
- expect(page).not_to have_content 'dang'
24
+ expect(page).to have_no_content 'dang'
25
25
  visit root_path
26
26
  fill_in "q", with: 'dang'
27
- click_button 'search'
28
- click_link 'History'
27
+ click_on 'search'
28
+ click_on 'History'
29
29
  expect(page).to have_content 'book'
30
30
  expect(page).to have_content 'dang'
31
31
  end
@@ -35,18 +35,18 @@ RSpec.describe "Search History Page" do
35
35
  before do
36
36
  visit root_path
37
37
  fill_in "q", with: 'book'
38
- click_button 'search'
38
+ click_on 'search'
39
39
  fill_in "q", with: 'dang'
40
- click_button 'search'
41
- click_link 'History'
40
+ click_on 'search'
41
+ click_on 'History'
42
42
  end
43
43
 
44
44
  it "is able to clear the history" do
45
- click_link "Clear Search History"
45
+ click_on "Clear Search History"
46
46
  expect(page).to have_content 'Cleared your search history.'
47
47
  expect(page).to have_content 'You have no search history'
48
- expect(page).not_to have_content 'book'
49
- expect(page).not_to have_content 'dang'
48
+ expect(page).to have_no_content 'book'
49
+ expect(page).to have_no_content 'dang'
50
50
  end
51
51
  end
52
52
  end
@@ -4,7 +4,7 @@ RSpec.describe "Search Pagination" do
4
4
  it "has results with pagination" do
5
5
  visit root_path
6
6
  fill_in "q", with: ''
7
- click_button 'search'
7
+ click_on 'search'
8
8
  within ("#sortAndPerPage") do
9
9
  expect(page).to have_content "1 - 10 of "
10
10
  within '#per_page-dropdown' do
@@ -15,11 +15,11 @@ RSpec.describe "Search Pagination" do
15
15
  end
16
16
  end
17
17
  within '#sortAndPerPage' do
18
- click_link "Next »"
18
+ click_on "Next »"
19
19
  end
20
20
  within "#sortAndPerPage" do
21
21
  expect(page).to have_content "11 - 20 of "
22
- click_link "« Previous"
22
+ click_on "« Previous"
23
23
  end
24
24
  within "#sortAndPerPage" do
25
25
  expect(page).to have_content "1 - 10 of "
@@ -29,13 +29,13 @@ RSpec.describe "Search Pagination" do
29
29
  it "is able to change the number of items per page" do
30
30
  visit root_path
31
31
  fill_in "q", with: ''
32
- click_button 'search'
32
+ click_on 'search'
33
33
  within ("#sortAndPerPage") do
34
34
  expect(page).to have_content "1 - 10 of "
35
35
  end
36
36
 
37
37
  within ("#per_page-dropdown") do
38
- click_link '20'
38
+ click_on '20'
39
39
  end
40
40
  within ("#sortAndPerPage") do
41
41
  expect(page).to have_content "1 - 20 of "
@@ -59,7 +59,7 @@ RSpec.describe "Search Pagination" do
59
59
  it "uses the configured values" do
60
60
  visit root_path
61
61
  fill_in "q", with: ''
62
- click_button 'search'
62
+ click_on 'search'
63
63
  within ("#sortAndPerPage") do
64
64
  expect(page).to have_content "1 - 15 of "
65
65
  within '#per_page-dropdown' do
@@ -68,7 +68,7 @@ RSpec.describe "Search Pagination" do
68
68
  end
69
69
  end
70
70
  within ("#per_page-dropdown") do
71
- click_link '30'
71
+ click_on '30'
72
72
  end
73
73
  within ("#sortAndPerPage") do
74
74
  expect(page).to have_content "1 - 30 of "
@@ -79,15 +79,15 @@ RSpec.describe "Search Pagination" do
79
79
  it "resets the page offset to 1 when changing per page" do
80
80
  visit root_path
81
81
  fill_in "q", with: ''
82
- click_button 'search'
82
+ click_on 'search'
83
83
  within "#sortAndPerPage" do
84
- click_link "Next »"
84
+ click_on "Next »"
85
85
  end
86
86
  within "#sortAndPerPage" do
87
87
  expect(page).to have_content "11 - 20 of "
88
88
  end
89
89
  within ("#per_page-dropdown") do
90
- click_link '20'
90
+ click_on '20'
91
91
  end
92
92
  within "#sortAndPerPage" do
93
93
  expect(page).to have_content "1 - 20 of "
@@ -51,7 +51,7 @@ RSpec.describe "Search Results" do
51
51
  visit root_path
52
52
  fill_in "q", with: "inmul"
53
53
  select "Author", from: "search_field"
54
- click_button 'search'
54
+ click_on 'search'
55
55
  expect(page).to have_content "No results found for your search"
56
56
  expect(page).to have_content "you searched by Author"
57
57
  click_on "try searching everything"
@@ -4,19 +4,19 @@ RSpec.describe "Search Sort" do
4
4
  it "sorts on facet results with no search terms" do
5
5
  visit root_path
6
6
  within "#facet-language_ssim" do
7
- click_link 'English'
7
+ click_on 'English'
8
8
  end
9
9
  expect(page).to have_content 'Sort by relevance'
10
- click_link 'title'
10
+ click_on 'title'
11
11
  expect(page).to have_content '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
- click_button 'search'
17
+ click_on 'search'
18
18
  expect(page).to have_content 'Sort by relevance'
19
- click_link 'title'
19
+ click_on 'title'
20
20
  expect(page).to have_content 'Sort by title'
21
21
  end
22
22
  end
@@ -3,25 +3,25 @@
3
3
  RSpec.describe "Search Page" do
4
4
  it 'declares the page language in the html lang attribute' do
5
5
  visit root_path
6
- expect(page).to have_selector('html[lang=en]')
6
+ expect(page).to have_css('html[lang=en]')
7
7
  end
8
8
 
9
9
  it "shows welcome" do
10
10
  visit root_path
11
- expect(page).to have_selector("input#q")
11
+ expect(page).to have_field("search for")
12
12
  within ("select#search_field") do
13
- expect(page).to have_selector('option', text: 'All Fields')
14
- expect(page).to have_selector('option', text: 'Title')
15
- expect(page).to have_selector('option', text: 'Author')
16
- expect(page).to have_selector('option', text: 'Subject')
13
+ expect(page).to have_css('option', text: 'All Fields')
14
+ expect(page).to have_css('option', text: 'Title')
15
+ expect(page).to have_css('option', text: 'Author')
16
+ expect(page).to have_css('option', text: 'Subject')
17
17
  end
18
- expect(page).to have_selector("button[type='submit'] .submit-search-text")
19
- expect(page).not_to have_link "Start Over"
18
+ expect(page).to have_css("button[type='submit'] .submit-search-text")
19
+ expect(page).to have_no_link "Start Over"
20
20
 
21
21
  expect(page).to have_content "Welcome!"
22
22
  tmp_value = Capybara.ignore_hidden_elements
23
23
  Capybara.ignore_hidden_elements = false
24
- expect(page).to have_selector("link[rel=stylesheet]")
24
+ expect(page).to have_css("link[rel=stylesheet]")
25
25
  Capybara.ignore_hidden_elements = tmp_value
26
26
  end
27
27
 
@@ -29,18 +29,18 @@ RSpec.describe "Search Page" do
29
29
  visit root_path
30
30
  fill_in "q", with: 'history'
31
31
  select 'All Fields', from: 'search_field'
32
- click_button 'search'
32
+ click_on 'search'
33
33
 
34
34
  tmp_value = Capybara.ignore_hidden_elements
35
35
  Capybara.ignore_hidden_elements = false
36
- expect(page).to have_selector("link[rel=alternate][type='application/rss+xml']")
37
- expect(page).to have_selector("link[rel=alternate][type='application/atom+xml']")
38
- expect(page).to have_selector("link[rel=alternate][type='application/json']")
36
+ expect(page).to have_css("link[rel=alternate][type='application/rss+xml']")
37
+ expect(page).to have_css("link[rel=alternate][type='application/atom+xml']")
38
+ expect(page).to have_css("link[rel=alternate][type='application/json']")
39
39
 
40
40
  # opensearch
41
- expect(page).to have_selector("meta[name=totalResults]")
42
- expect(page).to have_selector("meta[name=startIndex]")
43
- expect(page).to have_selector("meta[name=itemsPerPage]")
41
+ expect(page).to have_css("meta[name=totalResults]")
42
+ expect(page).to have_css("meta[name=startIndex]")
43
+ expect(page).to have_css("meta[name=itemsPerPage]")
44
44
  Capybara.ignore_hidden_elements = tmp_value
45
45
 
46
46
  within "#appliedParams" do
@@ -49,7 +49,7 @@ RSpec.describe "Search Page" do
49
49
  end
50
50
 
51
51
  within ("select#search_field") do
52
- expect(page).to have_selector("option[selected]", text: "All Fields")
52
+ expect(page).to have_css("option[selected]", text: "All Fields")
53
53
  end
54
54
 
55
55
  within ("#sortAndPerPage") do
@@ -63,7 +63,7 @@ RSpec.describe "Search Page" do
63
63
  end
64
64
  end
65
65
  within "#documents" do
66
- expect(page).to have_selector(".document", count: 10)
66
+ expect(page).to have_css(".document", count: 10)
67
67
  end
68
68
  end
69
69
 
@@ -71,7 +71,7 @@ RSpec.describe "Search Page" do
71
71
  visit root_path
72
72
  fill_in "q", with: 'inmul'
73
73
  select 'Title', from: 'search_field'
74
- click_button 'search'
74
+ click_on 'search'
75
75
 
76
76
  within "#appliedParams" do
77
77
  expect(page).to have_content "You searched for:"
@@ -79,7 +79,7 @@ RSpec.describe "Search Page" do
79
79
  expect(page).to have_content "inmul"
80
80
  end
81
81
  within ("select#search_field") do
82
- expect(page).to have_selector("option[selected]", text: "Title")
82
+ expect(page).to have_css("option[selected]", text: "Title")
83
83
  end
84
84
  within(".index_title") do
85
85
  expect(page).to have_content "1."
@@ -92,7 +92,7 @@ RSpec.describe "Search Page" do
92
92
  it "shows vernacular (Linked 880) and call number" do
93
93
  visit root_path
94
94
  fill_in "q", with: 'history'
95
- click_button 'search'
95
+ click_on 'search'
96
96
  within "#documents" do
97
97
  expect(page).to have_content "次按驟變"
98
98
  expect(page).to have_content "DK861.K3 V5"
@@ -102,17 +102,17 @@ RSpec.describe "Search Page" do
102
102
  it "allows you to clear the search" do
103
103
  visit root_path
104
104
  fill_in "q", with: 'history'
105
- click_button 'search'
105
+ click_on 'search'
106
106
  within "#appliedParams" do
107
107
  expect(page).to have_content "You searched for:"
108
108
  expect(page).to have_content "history"
109
109
  end
110
110
 
111
- expect(page).to have_selector "#q[value='history']"
111
+ expect(page).to have_css "#q[value='history']"
112
112
 
113
- click_link "Start Over"
113
+ click_on "Start Over"
114
114
 
115
115
  expect(page).to have_content "Welcome!"
116
- expect(page).not_to have_selector "#q[value='history']"
116
+ expect(page).to have_no_css "#q[value='history']"
117
117
  end
118
118
  end
@@ -3,11 +3,11 @@
3
3
  RSpec.describe 'Sitelinks search box' do
4
4
  it 'is home page' do
5
5
  visit root_path
6
- expect(page).to have_selector 'script[type="application/ld+json"]', visible: :hidden
6
+ expect(page).to have_css 'script[type="application/ld+json"]', visible: :hidden
7
7
  end
8
8
 
9
9
  it 'on search page' do
10
10
  visit search_catalog_path q: 'book'
11
- expect(page).not_to have_selector 'script[type="application/ld+json"]', visible: :hidden
11
+ expect(page).to have_no_css 'script[type="application/ld+json"]', visible: :hidden
12
12
  end
13
13
  end
@@ -4,7 +4,7 @@ RSpec.describe 'SMS functionality' do
4
4
  before { visit solr_document_path('2007020969') }
5
5
 
6
6
  it 'displays SMS modal with form' do
7
- click_link 'SMS'
7
+ click_on 'SMS'
8
8
  expect(find('div.modal-header')).to have_text 'SMS This'
9
9
  fill_in 'Phone Number:', with: '555-555-5555'
10
10
  select 'Verizon', from: 'Carrier'
@@ -13,7 +13,7 @@ RSpec.describe Blacklight::FacetsHelperBehavior do
13
13
 
14
14
  it 'wraps the facet data in a presenter' do
15
15
  presenter = helper.facet_field_presenter(facet_config, display_facet)
16
- expect(presenter).to be_a_kind_of Blacklight::FacetFieldPresenter
16
+ expect(presenter).to be_a Blacklight::FacetFieldPresenter
17
17
  expect(presenter.facet_field).to eq facet_config
18
18
  expect(presenter.display_facet).to eq display_facet
19
19
  expect(presenter.view_context).to eq helper
@@ -23,7 +23,7 @@ RSpec.describe Blacklight::FacetsHelperBehavior do
23
23
  stub_const('SomePresenter', Class.new(Blacklight::FacetFieldPresenter))
24
24
  facet_config.presenter = SomePresenter
25
25
  presenter = helper.facet_field_presenter(facet_config, display_facet)
26
- expect(presenter).to be_a_kind_of SomePresenter
26
+ expect(presenter).to be_a SomePresenter
27
27
  end
28
28
  end
29
29
  end
@@ -30,9 +30,26 @@ RSpec.describe Blacklight::LayoutHelperBehavior do
30
30
  end
31
31
 
32
32
  describe '#container_classes' do
33
- it 'returns a string of classe(s)' do
34
- expect(helper.container_classes).to be_an String
35
- expect(helper.container_classes).to eq 'container'
33
+ before do
34
+ allow(view).to receive(:blacklight_config).and_return(config)
35
+ end
36
+
37
+ context 'when not full-width' do
38
+ let(:config) { Blacklight::Configuration.new }
39
+
40
+ it 'returns a string of classe(s)' do
41
+ expect(helper.container_classes).to be_an String
42
+ expect(helper.container_classes).to eq 'container'
43
+ end
44
+ end
45
+
46
+ context 'when full-width' do
47
+ let(:config) { Blacklight::Configuration.new(full_width_layout: true) }
48
+
49
+ it 'returns a string of classe(s)' do
50
+ expect(helper.container_classes).to be_an String
51
+ expect(helper.container_classes).to eq 'container-fluid'
52
+ end
36
53
  end
37
54
  end
38
55
 
@@ -40,8 +40,9 @@ RSpec.describe Blacklight::RenderPartialsHelperBehavior do
40
40
  end
41
41
 
42
42
  it "gets the document format from document_partial_name" do
43
- allow(helper).to receive(:document_partial_name).with(doc, :xyz)
43
+ allow(helper).to receive(:document_partial_name)
44
44
  helper.render_document_partial(doc, :xyz)
45
+ expect(helper).to have_received(:document_partial_name).with(doc, :xyz)
45
46
  end
46
47
  end
47
48