blacklight-spotlight 0.4.1 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (367) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +22 -8
  3. data/Rakefile +40 -39
  4. data/app/assets/javascripts/spotlight/blacklight_configuration.js +16 -0
  5. data/app/assets/javascripts/spotlight/blocks/resources_block.js +3 -1
  6. data/app/assets/stylesheets/spotlight/_blacklight_configuration.scss +2 -2
  7. data/app/assets/stylesheets/spotlight/_blacklight_overrides.scss +24 -0
  8. data/app/assets/stylesheets/spotlight/_header.scss +150 -47
  9. data/app/assets/stylesheets/spotlight/_pages.scss +62 -11
  10. data/app/assets/stylesheets/spotlight/_report_a_problem.scss +1 -0
  11. data/app/assets/stylesheets/spotlight/_spotlight.scss +1 -0
  12. data/app/builders/spotlight/bootstrap_breadcrumbs_builder.rb +28 -21
  13. data/app/controllers/spotlight/about_pages_controller.rb +25 -14
  14. data/app/controllers/spotlight/appearances_controller.rb +34 -30
  15. data/app/controllers/spotlight/application_controller.rb +2 -1
  16. data/app/controllers/spotlight/attachments_controller.rb +9 -7
  17. data/app/controllers/spotlight/browse_controller.rb +13 -9
  18. data/app/controllers/spotlight/catalog_controller.rb +179 -161
  19. data/app/controllers/spotlight/concerns/application_controller.rb +22 -20
  20. data/app/controllers/spotlight/concerns/catalog_search_context.rb +44 -0
  21. data/app/controllers/spotlight/confirmations_controller.rb +5 -2
  22. data/app/controllers/spotlight/contact_forms_controller.rb +13 -7
  23. data/app/controllers/spotlight/contacts_controller.rb +13 -4
  24. data/app/controllers/spotlight/custom_fields_controller.rb +48 -40
  25. data/app/controllers/spotlight/dashboards_controller.rb +17 -8
  26. data/app/controllers/spotlight/default_controller.rb +3 -1
  27. data/app/controllers/spotlight/exhibits_controller.rb +69 -62
  28. data/app/controllers/spotlight/feature_pages_controller.rb +21 -11
  29. data/app/controllers/spotlight/home_pages_controller.rb +6 -5
  30. data/app/controllers/spotlight/lock_controller.rb +3 -1
  31. data/app/controllers/spotlight/metadata_configurations_controller.rb +49 -0
  32. data/app/controllers/spotlight/pages_controller.rb +28 -18
  33. data/app/controllers/spotlight/resources/upload_controller.rb +53 -46
  34. data/app/controllers/spotlight/resources_controller.rb +9 -5
  35. data/app/controllers/spotlight/roles_controller.rb +26 -22
  36. data/app/controllers/spotlight/search_configurations_controller.rb +66 -0
  37. data/app/controllers/spotlight/searches_controller.rb +91 -82
  38. data/app/controllers/spotlight/solr_controller.rb +20 -13
  39. data/app/controllers/spotlight/tags_controller.rb +5 -3
  40. data/app/controllers/spotlight/versions_controller.rb +15 -12
  41. data/app/controllers/spotlight/view_configurations_controller.rb +17 -0
  42. data/app/helpers/spotlight/application_helper.rb +44 -32
  43. data/app/helpers/spotlight/browse_helper.rb +13 -1
  44. data/app/helpers/spotlight/crud_link_helpers.rb +22 -14
  45. data/app/helpers/spotlight/jcrop_helper.rb +4 -2
  46. data/app/helpers/spotlight/main_app_helpers.rb +45 -41
  47. data/app/helpers/spotlight/navbar_helper.rb +6 -0
  48. data/app/helpers/spotlight/pages_helper.rb +23 -15
  49. data/app/helpers/spotlight/roles_helper.rb +10 -4
  50. data/app/helpers/spotlight/search_configurations_helper.rb +22 -0
  51. data/app/helpers/spotlight/title_helper.rb +16 -13
  52. data/app/jobs/spotlight/add_uploads_from_csv.rb +13 -9
  53. data/app/jobs/spotlight/reindex_job.rb +9 -9
  54. data/app/jobs/spotlight/rename_sidecar_field_job.rb +3 -0
  55. data/app/mailers/spotlight/confirmation_mailer.rb +2 -0
  56. data/app/mailers/spotlight/indexing_complete_mailer.rb +4 -2
  57. data/app/models/ability.rb +3 -0
  58. data/app/models/concerns/spotlight/ar_light.rb +49 -25
  59. data/app/models/concerns/spotlight/blacklight_configuration_defaults.rb +25 -10
  60. data/app/models/concerns/spotlight/exhibit_analytics.rb +28 -0
  61. data/app/models/concerns/spotlight/image_derivatives.rb +25 -26
  62. data/app/models/concerns/spotlight/resources/open_graph.rb +23 -19
  63. data/app/models/concerns/spotlight/resources/web.rb +25 -24
  64. data/app/models/concerns/spotlight/solr_document.rb +40 -34
  65. data/app/models/concerns/spotlight/solr_document/active_model_concern.rb +29 -40
  66. data/app/models/concerns/spotlight/solr_document/atomic_updates.rb +22 -18
  67. data/app/models/concerns/spotlight/solr_document/finder.rb +23 -18
  68. data/app/models/concerns/spotlight/solr_document/spotlight_images.rb +43 -39
  69. data/app/models/concerns/spotlight/solr_document/uploaded_resource.rb +41 -29
  70. data/app/models/concerns/spotlight/user.rb +25 -19
  71. data/app/models/sir_trevor_rails/blocks/browse_block.rb +36 -30
  72. data/app/models/sir_trevor_rails/blocks/featured_pages_block.rb +24 -18
  73. data/app/models/sir_trevor_rails/blocks/oembed_block.rb +8 -4
  74. data/app/models/sir_trevor_rails/blocks/search_results_block.rb +29 -23
  75. data/app/models/sir_trevor_rails/blocks/solr_documents_block.rb +43 -42
  76. data/app/models/sir_trevor_rails/blocks/solr_documents_carousel_block.rb +16 -12
  77. data/app/models/sir_trevor_rails/blocks/solr_documents_embed_block.rb +7 -3
  78. data/app/models/sir_trevor_rails/blocks/solr_documents_features_block.rb +7 -3
  79. data/app/models/sir_trevor_rails/blocks/solr_documents_grid_block.rb +7 -3
  80. data/app/models/sir_trevor_rails/blocks/textable.rb +18 -18
  81. data/app/models/spotlight/ability.rb +32 -33
  82. data/app/models/spotlight/about_page.rb +3 -1
  83. data/app/models/spotlight/analytics/ga.rb +46 -27
  84. data/app/models/spotlight/attachment.rb +3 -1
  85. data/app/models/spotlight/blacklight_configuration.rb +146 -68
  86. data/app/models/spotlight/contact.rb +35 -30
  87. data/app/models/spotlight/contact_email.rb +6 -3
  88. data/app/models/spotlight/contact_form.rb +4 -3
  89. data/app/models/spotlight/custom_field.rb +41 -33
  90. data/app/models/spotlight/exhibit.rb +104 -130
  91. data/app/models/spotlight/feature_page.rb +9 -7
  92. data/app/models/spotlight/featured_image.rb +10 -10
  93. data/app/models/spotlight/field_metadata.rb +46 -0
  94. data/app/models/spotlight/home_page.rb +8 -5
  95. data/app/models/spotlight/lock.rb +4 -3
  96. data/app/models/spotlight/main_navigation.rb +9 -3
  97. data/app/models/spotlight/masthead.rb +17 -16
  98. data/app/models/spotlight/page.rb +16 -16
  99. data/app/models/spotlight/resource.rb +69 -22
  100. data/app/models/spotlight/resources/csv_upload.rb +8 -4
  101. data/app/models/spotlight/resources/upload.rb +68 -57
  102. data/app/models/spotlight/role.rb +30 -34
  103. data/app/models/spotlight/search.rb +74 -63
  104. data/app/models/spotlight/solr_document_sidecar.rb +17 -15
  105. data/app/serializers/spotlight/exhibit_export_serializer.rb +65 -29
  106. data/app/serializers/spotlight/page_representer.rb +10 -6
  107. data/app/uploaders/spotlight/attachment_uploader.rb +4 -6
  108. data/app/uploaders/spotlight/avatar_uploader.rb +4 -3
  109. data/app/uploaders/spotlight/featured_image_uploader.rb +15 -14
  110. data/app/uploaders/spotlight/item_uploader.rb +3 -1
  111. data/app/uploaders/spotlight/masthead_uploader.rb +4 -2
  112. data/app/views/catalog/_search_form.html.erb +24 -0
  113. data/app/views/shared/_browse_navbar.html.erb +1 -1
  114. data/app/views/shared/_exhibit_navbar.html.erb +1 -1
  115. data/app/views/spotlight/appearances/edit.html.erb +13 -45
  116. data/app/views/spotlight/catalog/_edit_default.html.erb +1 -1
  117. data/app/views/spotlight/custom_fields/_form.html.erb +1 -1
  118. data/app/views/spotlight/exhibits/edit.html.erb +4 -4
  119. data/app/views/spotlight/home_pages/_empty.html.erb +1 -3
  120. data/app/views/spotlight/home_pages/_page_options.html.erb +1 -1
  121. data/app/views/spotlight/{blacklight_configurations → metadata_configurations}/_metadata_field.html.erb +0 -0
  122. data/app/views/spotlight/{blacklight_configurations/edit_metadata_fields.html.erb → metadata_configurations/edit.html.erb} +1 -1
  123. data/app/views/spotlight/pages/show.html.erb +2 -2
  124. data/app/views/spotlight/search_configurations/_default_per_page.html.erb +5 -0
  125. data/app/views/spotlight/search_configurations/_document_index_view_types.html.erb +7 -0
  126. data/app/views/spotlight/search_configurations/_facets.html.erb +38 -0
  127. data/app/views/spotlight/search_configurations/_search_fields.html.erb +58 -0
  128. data/app/views/spotlight/search_configurations/_sort.html.erb +53 -0
  129. data/app/views/spotlight/search_configurations/edit.html.erb +46 -0
  130. data/app/views/spotlight/searches/_search.html.erb +1 -1
  131. data/app/views/spotlight/shared/_admin_sidebar.html.erb +0 -2
  132. data/app/views/spotlight/shared/_curation_sidebar.html.erb +2 -3
  133. data/app/views/spotlight/shared/_report_a_problem.html.erb +2 -2
  134. data/app/views/spotlight/sir_trevor/blocks/_oembed_block.html.erb +5 -1
  135. data/app/views/spotlight/sir_trevor/blocks/_solr_documents_block.html.erb +7 -5
  136. data/app/views/spotlight/sir_trevor/blocks/_solr_documents_carousel_block.html.erb +2 -2
  137. data/app/views/spotlight/sir_trevor/blocks/_solr_documents_embed_block.html.erb +7 -5
  138. data/app/views/spotlight/sir_trevor/blocks/_solr_documents_features_block.html.erb +2 -2
  139. data/app/views/spotlight/sir_trevor/blocks/_solr_documents_grid_block.html.erb +14 -9
  140. data/config/locales/spotlight.en.yml +94 -49
  141. data/config/routes.rb +11 -20
  142. data/db/migrate/20150410180014_add_taggings_counter_cache_to_tags.acts_as_taggable_on_engine.rb +15 -0
  143. data/db/migrate/20150410180015_add_missing_taggable_index.acts_as_taggable_on_engine.rb +10 -0
  144. data/db/migrate/20150410180016_change_collation_for_tag_names.acts_as_taggable_on_engine.rb +10 -0
  145. data/db/migrate/20150713160101_change_spotlight_searches_to_published.rb +5 -0
  146. data/db/migrate/20151016092343_remove_searchable_from_exhibit.rb +20 -0
  147. data/lib/blacklight/spotlight.rb +1 -1
  148. data/lib/generators/spotlight/install_generator.rb +27 -25
  149. data/lib/generators/spotlight/templates/catalog_controller.rb +7 -5
  150. data/lib/generators/spotlight/templates/jetty.rake +8 -2
  151. data/lib/generators/spotlight/templates/spotlight_helper.rb +3 -1
  152. data/lib/spotlight.rb +4 -2
  153. data/lib/spotlight/base.rb +21 -14
  154. data/lib/spotlight/catalog.rb +10 -9
  155. data/lib/spotlight/catalog/access_controls_enforcement.rb +30 -15
  156. data/lib/spotlight/config.rb +4 -2
  157. data/lib/spotlight/controller.rb +12 -11
  158. data/lib/spotlight/engine.rb +30 -22
  159. data/lib/spotlight/rails/routes.rb +7 -4
  160. data/lib/spotlight/version.rb +2 -1
  161. data/lib/tasks/spotlight_tasks.rake +56 -50
  162. data/spec/controllers/application_controller_spec.rb +13 -13
  163. data/spec/controllers/spotlight/about_pages_controller_spec.rb +63 -59
  164. data/spec/controllers/spotlight/appearances_controller_spec.rb +29 -24
  165. data/spec/controllers/spotlight/application_controller_spec.rb +3 -3
  166. data/spec/controllers/spotlight/attachments_controller_spec.rb +10 -10
  167. data/spec/controllers/spotlight/browse_controller_spec.rb +23 -25
  168. data/spec/controllers/spotlight/catalog_controller_spec.rb +82 -87
  169. data/spec/controllers/spotlight/confirmations_controller_spec.rb +13 -11
  170. data/spec/controllers/spotlight/contact_forms_controller_spec.rb +17 -12
  171. data/spec/controllers/spotlight/contacts_controller_spec.rb +36 -36
  172. data/spec/controllers/spotlight/custom_fields_controller_spec.rb +26 -26
  173. data/spec/controllers/spotlight/dashboards_controller_spec.rb +14 -14
  174. data/spec/controllers/spotlight/exhibits_controller_spec.rb +59 -54
  175. data/spec/controllers/spotlight/feature_pages_controller_spec.rb +59 -59
  176. data/spec/controllers/spotlight/home_pages_controller_spec.rb +28 -29
  177. data/spec/controllers/spotlight/metadata_configurations_controller_spec.rb +84 -0
  178. data/spec/controllers/spotlight/resources/upload_controller_spec.rb +42 -33
  179. data/spec/controllers/spotlight/resources_controller_spec.rb +25 -29
  180. data/spec/controllers/spotlight/roles_controller_spec.rb +37 -19
  181. data/spec/controllers/spotlight/search_configurations_controller_spec.rb +125 -0
  182. data/spec/controllers/spotlight/searches_controller_spec.rb +84 -63
  183. data/spec/controllers/spotlight/solr_controller_spec.rb +13 -14
  184. data/spec/controllers/spotlight/tags_controller_spec.rb +16 -16
  185. data/spec/controllers/spotlight/versions_controller_spec.rb +15 -18
  186. data/spec/controllers/spotlight/view_configurations_controller_spec.rb +31 -0
  187. data/spec/factories/contacts.rb +1 -3
  188. data/spec/factories/custom_fields.rb +2 -4
  189. data/spec/factories/exhibits.rb +4 -2
  190. data/spec/factories/pages.rb +8 -11
  191. data/spec/factories/resources.rb +4 -4
  192. data/spec/factories/searches.rb +10 -13
  193. data/spec/factories/tags.rb +0 -3
  194. data/spec/factories/users.rb +2 -4
  195. data/spec/features/about_page_spec.rb +19 -19
  196. data/spec/features/add_contacts_spec.rb +34 -34
  197. data/spec/features/add_custom_field_metadata_spec.rb +24 -26
  198. data/spec/features/add_item_bookmarklet_spec.rb +12 -12
  199. data/spec/features/browse_category_admin_spec.rb +39 -39
  200. data/spec/features/catalog_spec.rb +9 -10
  201. data/spec/features/confirm_email_spec.rb +10 -10
  202. data/spec/features/create_exhibit_spec.rb +18 -15
  203. data/spec/features/create_page_spec.rb +8 -8
  204. data/spec/features/curator_items.rb +3 -3
  205. data/spec/features/dashboard_spec.rb +15 -16
  206. data/spec/features/edit_contact_spec.rb +8 -10
  207. data/spec/features/edit_search_fields_spec.rb +79 -0
  208. data/spec/features/exhibits/add_tags_spec.rb +15 -16
  209. data/spec/features/exhibits/administration_spec.rb +25 -25
  210. data/spec/features/exhibits/custom_metadata_fields_spec.rb +41 -43
  211. data/spec/features/exhibits/edit_metadata_fields_spec.rb +19 -19
  212. data/spec/features/feature_page_spec.rb +49 -48
  213. data/spec/features/home_page_spec.rb +38 -38
  214. data/spec/features/import_exhibit_spec.rb +23 -20
  215. data/spec/features/item_admin_spec.rb +28 -29
  216. data/spec/features/javascript/about_page_admin_spec.rb +9 -9
  217. data/spec/features/javascript/block_controls_spec.rb +16 -18
  218. data/spec/features/javascript/blocks/featured_browse_categories_block_spec.rb +11 -12
  219. data/spec/features/javascript/blocks/featured_pages_block_spec.rb +12 -13
  220. data/spec/features/javascript/blocks/search_result_block_spec.rb +17 -17
  221. data/spec/features/javascript/blocks/solr_documents_block_spec.rb +67 -65
  222. data/spec/features/javascript/edit_in_place_spec.rb +30 -56
  223. data/spec/features/javascript/feature_page_admin_spec.rb +73 -59
  224. data/spec/features/javascript/home_page_edit_spec.rb +6 -6
  225. data/spec/features/javascript/metadata_admin_spec.rb +15 -15
  226. data/spec/features/javascript/multi_image_select_spec.rb +17 -18
  227. data/spec/features/javascript/preview_block_spec.rb +11 -12
  228. data/spec/features/javascript/rule_block_spec.rb +7 -7
  229. data/spec/features/javascript/search_config_admin_spec.rb +144 -0
  230. data/spec/features/javascript/search_context_spec.rb +41 -42
  231. data/spec/features/main_navigation_spec.rb +22 -22
  232. data/spec/features/metadata_admin_spec.rb +8 -8
  233. data/spec/features/multiple_exhibits_spec.rb +15 -17
  234. data/spec/features/report_a_problem_spec.rb +23 -17
  235. data/spec/features/site_masthead_spec.rb +46 -46
  236. data/spec/features/slideshow_spec.rb +8 -9
  237. data/spec/features/tags_admin_spec.rb +11 -11
  238. data/spec/features/upload_non_repository_item_spec.rb +32 -32
  239. data/spec/features/user_admin_spec.rb +7 -7
  240. data/spec/helpers/spotlight/application_helper_spec.rb +63 -56
  241. data/spec/helpers/spotlight/browse_helper_spec.rb +6 -6
  242. data/spec/helpers/spotlight/crud_link_helpers_spec.rb +58 -52
  243. data/spec/helpers/spotlight/main_app_helpers_spec.rb +44 -24
  244. data/spec/helpers/spotlight/navbar_helper_spec.rb +4 -4
  245. data/spec/helpers/spotlight/pages_helper_spec.rb +56 -37
  246. data/spec/helpers/spotlight/roles_helper_spec.rb +3 -3
  247. data/spec/helpers/spotlight/search_configurations_helper_spec.rb +24 -0
  248. data/spec/helpers/spotlight/title_helper_spec.rb +33 -35
  249. data/spec/jobs/spotlight/reindex_job_spec.rb +6 -6
  250. data/spec/jobs/spotlight/rename_sidecar_field_job_spec.rb +7 -7
  251. data/spec/lib/spotlight/catalog/access_controls_enforcement_spec.rb +41 -26
  252. data/spec/lib/spotlight/controller_spec.rb +10 -10
  253. data/spec/lib/spotlight/routes_spec.rb +4 -4
  254. data/spec/mailers/spotlight/indexing_complete_mailer_spec.rb +13 -13
  255. data/spec/models/sir_trevor_rails/blocks/solr_documents_block_spec.rb +8 -8
  256. data/spec/models/{spotlight/sir_trevor_blocks → sir_trevor_rails/blocks}/textable_spec.rb +7 -8
  257. data/spec/models/solr_document_spec.rb +49 -50
  258. data/spec/models/spotlight/ability_spec.rb +17 -20
  259. data/spec/models/spotlight/about_page_spec.rb +6 -6
  260. data/spec/models/spotlight/analytics/ga_spec.rb +2 -2
  261. data/spec/models/spotlight/blacklight_configuration_spec.rb +196 -133
  262. data/spec/models/spotlight/contact_email_spec.rb +28 -24
  263. data/spec/models/spotlight/contact_spec.rb +6 -7
  264. data/spec/models/spotlight/custom_field_spec.rb +51 -52
  265. data/spec/models/spotlight/exhibit_spec.rb +102 -60
  266. data/spec/models/spotlight/feature_page_spec.rb +32 -32
  267. data/spec/models/spotlight/featured_image_spec.rb +5 -5
  268. data/spec/models/spotlight/field_metadata_spec.rb +78 -0
  269. data/spec/models/spotlight/home_page_spec.rb +11 -20
  270. data/spec/models/spotlight/{spotlight_image_derivatives_spec.rb → image_derivatives_spec.rb} +2 -2
  271. data/spec/models/spotlight/main_navigation_spec.rb +7 -9
  272. data/spec/models/spotlight/masthead_spec.rb +6 -6
  273. data/spec/models/spotlight/page_spec.rb +26 -29
  274. data/spec/models/spotlight/resource_spec.rb +56 -26
  275. data/spec/models/spotlight/resources/open_graph_spec.rb +16 -18
  276. data/spec/models/spotlight/resources/upload_spec.rb +32 -35
  277. data/spec/models/spotlight/resources/web_spec.rb +9 -11
  278. data/spec/models/spotlight/role_spec.rb +20 -20
  279. data/spec/models/spotlight/search_spec.rb +32 -15
  280. data/spec/models/spotlight/solr_document/atomic_updates_spec.rb +34 -0
  281. data/spec/models/spotlight/{solr_document_images_spec.rb → solr_document/spotlight_images_spec.rb} +18 -10
  282. data/spec/models/spotlight/solr_document/uploaded_resource_spec.rb +52 -0
  283. data/spec/models/spotlight/solr_document_sidecar_spec.rb +3 -4
  284. data/spec/routing/spotlight/exhibit_catalog_spec.rb +5 -5
  285. data/spec/routing/spotlight/pages_routing_spec.rb +24 -25
  286. data/spec/serializers/spotlight/exhibit_export_serializer_spec.rb +88 -68
  287. data/spec/spec_helper.rb +13 -22
  288. data/spec/support/features/test_features_helpers.rb +50 -46
  289. data/spec/support/views/test_view_helpers.rb +1 -1
  290. data/spec/test_app_templates/Gemfile.extra +0 -1
  291. data/spec/test_app_templates/carrierwave.rb +2 -2
  292. data/spec/test_app_templates/catalog_controller.rb +42 -42
  293. data/spec/test_app_templates/lib/generators/test_app_generator.rb +20 -11
  294. data/spec/test_app_templates/spotlight_test.rake +3 -3
  295. data/spec/uploaders/spotlight/item_uploader_spec.rb +68 -0
  296. data/spec/views/_user_util_links.html.erb_spec.rb +14 -14
  297. data/spec/views/shared/_analytics.html.erb_spec.rb +4 -6
  298. data/spec/views/shared/_exhibit_masthead.html.erb_spec.rb +19 -20
  299. data/spec/views/shared/_exhibit_navbar.html.erb_spec.rb +129 -131
  300. data/spec/views/shared/_footer.html.erb_spec.rb +6 -7
  301. data/spec/views/shared/_header_navbar.html.erb_spec.rb +5 -5
  302. data/spec/views/spotlight/about_pages/_empty.html.erb_spec.rb +4 -4
  303. data/spec/views/spotlight/about_pages/_sidebar.html.erb_spec.rb +9 -11
  304. data/spec/views/spotlight/about_pages/index.html.erb_spec.rb +31 -28
  305. data/spec/views/spotlight/browse/_search.html.erb_spec.rb +6 -6
  306. data/spec/views/spotlight/browse/_sort_and_per_page.html.erb_spec.rb +10 -12
  307. data/spec/views/spotlight/browse/index.html.erb_spec.rb +6 -6
  308. data/spec/views/spotlight/browse/show.html.erb_spec.rb +19 -20
  309. data/spec/views/spotlight/catalog/_edit_default.html.erb_spec.rb +7 -7
  310. data/spec/views/spotlight/catalog/admin.html.erb_spec.rb +7 -7
  311. data/spec/views/spotlight/catalog/edit.html.erb_spec.rb +3 -6
  312. data/spec/views/spotlight/catalog/new.html.erb_spec.rb +8 -10
  313. data/spec/views/spotlight/contacts/edit.html.erb_spec.rb +8 -8
  314. data/spec/views/spotlight/dashboards/_analytics.html.erb_spec.rb +22 -22
  315. data/spec/views/spotlight/exhibits/edit.html.erb_spec.rb +7 -8
  316. data/spec/views/spotlight/feature_pages/_empty.html.erb_spec.rb +5 -5
  317. data/spec/views/spotlight/feature_pages/_sidebar.html.erb_spec.rb +24 -26
  318. data/spec/views/spotlight/home_pages/_empty.html.erb_spec.rb +13 -9
  319. data/spec/views/spotlight/home_pages/_sidebar.html.erb_spec.rb +6 -6
  320. data/spec/views/spotlight/metadata_configurations/_metadata_field.html.erb_spec.rb +26 -0
  321. data/spec/views/spotlight/metadata_configurations/edit.html.erb_spec.rb +22 -0
  322. data/spec/views/spotlight/pages/edit.html.erb_spec.rb +16 -16
  323. data/spec/views/spotlight/pages/index.html.erb_spec.rb +19 -17
  324. data/spec/views/spotlight/pages/new.html.erb_spec.rb +6 -6
  325. data/spec/views/spotlight/pages/show.html.erb_spec.rb +27 -28
  326. data/spec/views/spotlight/roles/index.html.erb_spec.rb +6 -6
  327. data/spec/views/spotlight/search_configurations/_search_fields.html.erb_spec.rb +54 -0
  328. data/spec/views/spotlight/search_configurations/_sort.html.erb_spec.rb +28 -0
  329. data/spec/views/spotlight/searches/_search.html.erb_spec.rb +20 -10
  330. data/spec/views/spotlight/searches/edit.html.erb_spec.rb +12 -11
  331. data/spec/views/spotlight/searches/index.html.erb_spec.rb +12 -7
  332. data/spec/views/spotlight/sir_trevor/blocks/_iframe_block.html.erb_spec.rb +7 -8
  333. data/spec/views/spotlight/sir_trevor/blocks/_rule_block.html.erb_spec.rb +4 -4
  334. data/spec/views/spotlight/sir_trevor/blocks/_solr_documents_block.html.erb_spec.rb +38 -0
  335. data/spec/views/spotlight/sir_trevor/blocks/_solr_documents_carousel_block.html.erb_spec.rb +7 -8
  336. data/spec/views/spotlight/sir_trevor/blocks/_solr_documents_embed_block.html.erb_spec.rb +18 -13
  337. data/spec/views/spotlight/sir_trevor/blocks/_solr_documents_features_block.html.erb_spec.rb +14 -12
  338. data/spec/views/spotlight/sir_trevor/blocks/_solr_documents_grid_block.html.erb_spec.rb +11 -12
  339. data/spec/views/spotlight/tags/index.html.erb_spec.rb +9 -9
  340. metadata +167 -83
  341. data/app/controllers/spotlight/blacklight_configurations_controller.rb +0 -101
  342. data/app/controllers/spotlight/resources/csv_controller.rb +0 -23
  343. data/app/forms/spotlight/appearance.rb +0 -86
  344. data/app/helpers/spotlight/attachments_helper.rb +0 -4
  345. data/app/helpers/spotlight/blacklight_configurations_helper.rb +0 -15
  346. data/app/jobs/spotlight/set_default_thumbnail_job.rb +0 -16
  347. data/app/models/spotlight/resources/csv.rb +0 -80
  348. data/app/uploaders/spotlight/csv_uploader.rb +0 -15
  349. data/app/views/spotlight/blacklight_configurations/edit_facet_fields.html.erb +0 -47
  350. data/app/views/spotlight/blacklight_configurations/edit_sort_fields.html.erb +0 -65
  351. data/app/views/spotlight/resources/csv/_form.html.erb +0 -17
  352. data/app/views/spotlight/resources/csv/new.html.erb +0 -3
  353. data/spec/controllers/spotlight/blacklight_configurations_controller_spec.rb +0 -167
  354. data/spec/features/edit_sort_fields_spec.rb +0 -42
  355. data/spec/features/exhibits/edit_facet_fields_spec.rb +0 -37
  356. data/spec/features/javascript/facet_admin_spec.rb +0 -36
  357. data/spec/features/search_facets_admin_spec.rb +0 -19
  358. data/spec/features/update_appearance_spec.rb +0 -58
  359. data/spec/helpers/spotlight/blacklight_configurations_helper_spec.rb +0 -12
  360. data/spec/models/spotlight/appearance_spec.rb +0 -33
  361. data/spec/models/spotlight/resources/csv_spec.rb +0 -101
  362. data/spec/models/spotlight/solr_document_atomic_updates_spec.rb +0 -29
  363. data/spec/models/spotlight/solr_document_uploaded_resource_spec.rb +0 -45
  364. data/spec/uploaders/item_uploader_spec.rb +0 -62
  365. data/spec/views/spotlight/blacklight_configuration/_metadata_field.html.erb_spec.rb +0 -27
  366. data/spec/views/spotlight/blacklight_configuration/edit_metadata_fields.html.erb_spec.rb +0 -23
  367. data/spec/views/spotlight/blacklight_configuration/edit_sort_fields.html.erb_spec.rb +0 -19
@@ -1,27 +1,29 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe Spotlight::ConfirmationsController, :type => :controller do
3
+ describe Spotlight::ConfirmationsController, type: :controller do
4
4
  routes { Spotlight::Engine.routes }
5
- before {
6
- @request.env["devise.mapping"] = Devise.mappings[:contact_email]
7
- }
8
- it "should have new" do
5
+ before do
6
+ # rubocop:disable RSpec/InstanceVariable
7
+ @request.env['devise.mapping'] = Devise.mappings[:contact_email]
8
+ # rubocop:enable RSpec/InstanceVariable
9
+ end
10
+ it 'has new' do
9
11
  get :new
10
12
  expect(response).to be_successful
11
13
  end
12
14
 
13
- describe "#show" do
15
+ describe '#show' do
14
16
  let(:exhibit) { FactoryGirl.create(:exhibit) }
15
- let(:contact_email) { Spotlight::ContactEmail.create!(:email=> 'justin@example.com', exhibit: exhibit ) }
17
+ let(:contact_email) { Spotlight::ContactEmail.create!(email: 'justin@example.com', exhibit: exhibit) }
16
18
  let(:raw_token) { contact_email.instance_variable_get(:@raw_confirmation_token) }
17
- describe "when the token is invalid" do
18
- it "should give reset instructions" do
19
+ describe 'when the token is invalid' do
20
+ it 'gives reset instructions' do
19
21
  get :show
20
22
  expect(response).to be_successful
21
23
  end
22
24
  end
23
- describe "when the token is valid" do
24
- it "should update the user" do
25
+ describe 'when the token is valid' do
26
+ it 'updates the user' do
25
27
  get :show, confirmation_token: raw_token
26
28
  expect(contact_email.reload).to be_confirmed
27
29
  expect(response).to redirect_to main_app.new_user_session_path
@@ -1,23 +1,28 @@
1
- require "spec_helper"
1
+ require 'spec_helper'
2
2
 
3
- describe Spotlight::ContactFormsController, :type => :controller do
3
+ describe Spotlight::ContactFormsController, type: :controller do
4
4
  routes { Spotlight::Engine.routes }
5
5
  let(:exhibit) { FactoryGirl.create(:exhibit) }
6
6
  before do
7
- request.env["HTTP_REFERER"] = "http://example.com"
8
- exhibit.contact_emails_attributes= [ { "email"=>"test@example.com"}, {"email"=>"test2@example.com"}]
7
+ request.env['HTTP_REFERER'] = 'http://example.com'
8
+ exhibit.contact_emails_attributes = [{ 'email' => 'test@example.com' }, { 'email' => 'test2@example.com' }]
9
9
  exhibit.save!
10
- exhibit.contact_emails.first.confirm!
10
+ exhibit.contact_emails.first.tap do |e|
11
+ if e.respond_to? :confirm
12
+ e.confirm
13
+ else
14
+ e.confirm!
15
+ end
16
+ end
11
17
  end
12
- describe "#create" do
13
- it "should redirect back" do
14
- post :create, exhibit_id: exhibit.id, contact_form: { name: "Joe Doe", email: "jdoe@example.com" }
18
+ describe '#create' do
19
+ it 'redirects back' do
20
+ post :create, exhibit_id: exhibit.id, contact_form: { name: 'Joe Doe', email: 'jdoe@example.com' }
15
21
  expect(response).to redirect_to :back
16
22
  end
17
- it "should set a flash message" do
18
- post :create, exhibit_id: exhibit.id, contact_form: { name: "Joe Doe", email: "jdoe@example.com" }
19
- expect(flash[:notice]).to eq "Thanks. Your feedback has been sent."
23
+ it 'sets a flash message' do
24
+ post :create, exhibit_id: exhibit.id, contact_form: { name: 'Joe Doe', email: 'jdoe@example.com' }
25
+ expect(flash[:notice]).to eq 'Thanks. Your feedback has been sent.'
20
26
  end
21
27
  end
22
28
  end
23
-
@@ -1,75 +1,75 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe Spotlight::ContactsController, :type => :controller do
3
+ describe Spotlight::ContactsController, type: :controller do
4
4
  routes { Spotlight::Engine.routes }
5
- describe "when not logged in" do
6
- describe "GET edit" do
5
+ describe 'when not logged in' do
6
+ describe 'GET edit' do
7
7
  let(:contact) { FactoryGirl.create(:contact) }
8
- it "should be successful" do
8
+ it 'is successful' do
9
9
  get :edit, id: contact, exhibit_id: contact.exhibit
10
10
  expect(response).to redirect_to main_app.new_user_session_path
11
11
  end
12
12
  end
13
13
  end
14
14
 
15
- describe "when signed in as a curator" do
15
+ describe 'when signed in as a curator' do
16
16
  let(:user) { FactoryGirl.create(:exhibit_curator) }
17
17
  let(:exhibit) { user.roles.first.exhibit }
18
18
  let(:contact) { FactoryGirl.create(:contact, exhibit: exhibit, name: 'Andrew Carnegie') }
19
- before {sign_in user }
19
+ before { sign_in user }
20
20
 
21
- describe "GET edit" do
22
- it "should be successful" do
23
- expect(controller).to receive(:add_breadcrumb).with("Home", exhibit)
24
- expect(controller).to receive(:add_breadcrumb).with("Curation", exhibit_dashboard_path(exhibit))
25
- expect(controller).to receive(:add_breadcrumb).with("About Pages", exhibit_about_pages_path(exhibit))
21
+ describe 'GET edit' do
22
+ it 'is successful' do
23
+ expect(controller).to receive(:add_breadcrumb).with('Home', exhibit)
24
+ expect(controller).to receive(:add_breadcrumb).with('Curation', exhibit_dashboard_path(exhibit))
25
+ expect(controller).to receive(:add_breadcrumb).with('About Pages', exhibit_about_pages_path(exhibit))
26
26
  expect(controller).to receive(:add_breadcrumb).with(contact.name, edit_exhibit_contact_path(exhibit, contact))
27
27
  get :edit, id: contact, exhibit_id: contact.exhibit
28
28
  expect(response).to be_successful
29
29
  end
30
30
  end
31
- describe "PATCH update" do
32
- it "should be successful" do
33
- patch :update, id: contact, contact: {name: 'Chester'}, exhibit_id: contact.exhibit
34
- expect(response).to redirect_to exhibit_about_pages_path(exhibit)
31
+ describe 'PATCH update' do
32
+ it 'is successful' do
33
+ patch :update, id: contact, contact: { name: 'Chester' }, exhibit_id: contact.exhibit
34
+ expect(response).to redirect_to exhibit_about_pages_path(exhibit)
35
35
  expect(contact.reload.name).to eq 'Chester'
36
36
  end
37
- it "should fail by rendering edit" do
37
+ it 'fails by rendering edit' do
38
38
  expect_any_instance_of(Spotlight::Contact).to receive(:update).and_return(false)
39
- patch :update, id: contact, contact: {name: 'Chester'}, exhibit_id: contact.exhibit
39
+ patch :update, id: contact, contact: { name: 'Chester' }, exhibit_id: contact.exhibit
40
40
  expect(response).to render_template 'edit'
41
41
  end
42
42
  end
43
- describe "DELETE destroy" do
44
- it "should be successful" do
43
+ describe 'DELETE destroy' do
44
+ it 'is successful' do
45
45
  contact # force contact to be created
46
- expect {
46
+ expect do
47
47
  delete :destroy, id: contact, exhibit_id: contact.exhibit
48
- }.to change{ Spotlight::Contact.count}.by(-1)
49
- expect(response).to redirect_to exhibit_about_pages_path(exhibit)
48
+ end.to change { Spotlight::Contact.count }.by(-1)
49
+ expect(response).to redirect_to exhibit_about_pages_path(exhibit)
50
50
  end
51
51
  end
52
- describe "GET new" do
53
- it "should be successful" do
54
- expect(controller).to receive(:add_breadcrumb).with("Home", exhibit)
55
- expect(controller).to receive(:add_breadcrumb).with("Curation", exhibit_dashboard_path(exhibit))
56
- expect(controller).to receive(:add_breadcrumb).with("About Pages", exhibit_about_pages_path(exhibit))
57
- expect(controller).to receive(:add_breadcrumb).with("Add contact", new_exhibit_contact_path(exhibit))
52
+ describe 'GET new' do
53
+ it 'is successful' do
54
+ expect(controller).to receive(:add_breadcrumb).with('Home', exhibit)
55
+ expect(controller).to receive(:add_breadcrumb).with('Curation', exhibit_dashboard_path(exhibit))
56
+ expect(controller).to receive(:add_breadcrumb).with('About Pages', exhibit_about_pages_path(exhibit))
57
+ expect(controller).to receive(:add_breadcrumb).with('Add contact', new_exhibit_contact_path(exhibit))
58
58
  get :new, exhibit_id: exhibit
59
59
  expect(response).to be_successful
60
60
  end
61
61
  end
62
- describe "POST create" do
63
- it "should fail by rendering new" do
62
+ describe 'POST create' do
63
+ it 'fails by rendering new' do
64
64
  expect_any_instance_of(Spotlight::Contact).to receive(:update).and_return(false)
65
- post :create, exhibit_id: exhibit, contact: {name: 'Chester'}
65
+ post :create, exhibit_id: exhibit, contact: { name: 'Chester' }
66
66
  expect(response).to render_template 'new'
67
67
  end
68
- it "should be successful" do
69
- expect {
70
- post :create, exhibit_id: exhibit, contact: {name: 'Chester'}
71
- }.to change{ Spotlight::Contact.count}.by(1)
72
- expect(response).to redirect_to exhibit_about_pages_path(exhibit)
68
+ it 'is successful' do
69
+ expect do
70
+ post :create, exhibit_id: exhibit, contact: { name: 'Chester' }
71
+ end.to change { Spotlight::Contact.count }.by(1)
72
+ expect(response).to redirect_to exhibit_about_pages_path(exhibit)
73
73
  expect(Spotlight::Contact.last.show_in_sidebar).to be_truthy
74
74
  end
75
75
  end
@@ -1,29 +1,29 @@
1
1
  require 'spec_helper'
2
- describe Spotlight::CustomFieldsController, :type => :controller do
2
+ describe Spotlight::CustomFieldsController, type: :controller do
3
3
  routes { Spotlight::Engine.routes }
4
4
  let(:exhibit) { FactoryGirl.create(:exhibit) }
5
5
 
6
- describe "when signed in as a curator" do
6
+ describe 'when signed in as a curator' do
7
7
  let(:user) { FactoryGirl.create(:exhibit_curator, exhibit: exhibit) }
8
- before {sign_in user }
8
+ before { sign_in user }
9
9
 
10
- describe "GET new" do
11
- it "assigns a new custom field" do
12
- expect(controller).to receive(:add_breadcrumb).with("Home", exhibit)
13
- expect(controller).to receive(:add_breadcrumb).with("Curation", exhibit_dashboard_path(exhibit))
14
- expect(controller).to receive(:add_breadcrumb).with("Metadata", exhibit_edit_metadata_path(exhibit))
15
- expect(controller).to receive(:add_breadcrumb).with("Add new field", new_exhibit_custom_field_path(exhibit))
10
+ describe 'GET new' do
11
+ it 'assigns a new custom field' do
12
+ expect(controller).to receive(:add_breadcrumb).with('Home', exhibit)
13
+ expect(controller).to receive(:add_breadcrumb).with('Curation', exhibit_dashboard_path(exhibit))
14
+ expect(controller).to receive(:add_breadcrumb).with('Metadata', edit_exhibit_metadata_configuration_path(exhibit))
15
+ expect(controller).to receive(:add_breadcrumb).with('Add new field', new_exhibit_custom_field_path(exhibit))
16
16
  get :new, exhibit_id: exhibit
17
17
  expect(assigns(:custom_field)).to be_a_new(Spotlight::CustomField)
18
18
  end
19
19
  end
20
20
 
21
- describe "GET edit" do
21
+ describe 'GET edit' do
22
22
  let(:field) { FactoryGirl.create(:custom_field, exhibit: exhibit) }
23
- it "assigns the requested custom_field" do
24
- expect(controller).to receive(:add_breadcrumb).with("Home", exhibit)
25
- expect(controller).to receive(:add_breadcrumb).with("Curation", exhibit_dashboard_path(exhibit))
26
- expect(controller).to receive(:add_breadcrumb).with("Metadata", exhibit_edit_metadata_path(exhibit))
23
+ it 'assigns the requested custom_field' do
24
+ expect(controller).to receive(:add_breadcrumb).with('Home', exhibit)
25
+ expect(controller).to receive(:add_breadcrumb).with('Curation', exhibit_dashboard_path(exhibit))
26
+ expect(controller).to receive(:add_breadcrumb).with('Metadata', edit_exhibit_metadata_configuration_path(exhibit))
27
27
  expect(controller).to receive(:add_breadcrumb).with(field.label, edit_exhibit_custom_field_path(exhibit, field))
28
28
  get :edit, exhibit_id: exhibit, id: field
29
29
  expect(assigns(:custom_field)).to eq field
@@ -31,27 +31,27 @@ describe Spotlight::CustomFieldsController, :type => :controller do
31
31
  end
32
32
  end
33
33
 
34
- describe "POST create" do
35
- describe "with valid params" do
36
- it "creates a new Page" do
37
- expect {
38
- post :create, custom_field: {label: "MyString"} , exhibit_id: exhibit
39
- }.to change(Spotlight::CustomField, :count).by(1)
34
+ describe 'POST create' do
35
+ describe 'with valid params' do
36
+ it 'creates a new Page' do
37
+ expect do
38
+ post :create, custom_field: { label: 'MyString' }, exhibit_id: exhibit
39
+ end.to change(Spotlight::CustomField, :count).by(1)
40
40
  end
41
41
 
42
- it "redirects to the exhibit metadata page" do
43
- post :create, custom_field: {label: "MyString"} , exhibit_id: exhibit
44
- expect(response).to redirect_to(exhibit_edit_metadata_path(exhibit))
42
+ it 'redirects to the exhibit metadata page' do
43
+ post :create, custom_field: { label: 'MyString' }, exhibit_id: exhibit
44
+ expect(response).to redirect_to(edit_exhibit_metadata_configuration_path(exhibit))
45
45
  end
46
46
  end
47
47
 
48
- describe "with invalid params" do
48
+ describe 'with invalid params' do
49
49
  it "re-renders the 'new' template" do
50
50
  # Trigger the behavior that occurs when invalid params are submitted
51
51
  allow_any_instance_of(Spotlight::CustomField).to receive(:save).and_return(false)
52
- post :create, custom_field: {label: "MyString"} , exhibit_id: exhibit
52
+ post :create, custom_field: { label: 'MyString' }, exhibit_id: exhibit
53
53
  expect(assigns(:custom_field)).to be_a_new(Spotlight::CustomField)
54
- expect(response).to render_template("new")
54
+ expect(response).to render_template('new')
55
55
  end
56
56
  end
57
57
  end
@@ -1,6 +1,6 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe Spotlight::DashboardsController, :type => :controller do
3
+ describe Spotlight::DashboardsController, type: :controller do
4
4
  routes { Spotlight::Engine.routes }
5
5
  let(:exhibit) { FactoryGirl.create(:exhibit) }
6
6
  let(:repository) { double }
@@ -9,18 +9,18 @@ describe Spotlight::DashboardsController, :type => :controller do
9
9
  allow(controller).to receive(:repository).and_return(repository)
10
10
  end
11
11
 
12
- describe "when logged in" do
12
+ describe 'when logged in' do
13
13
  let(:curator) { FactoryGirl.create(:exhibit_curator, exhibit: exhibit) }
14
14
  before { sign_in curator }
15
- describe "GET show" do
16
- it "should load the exhibit" do
17
- exhibit.blacklight_configuration.index = {timestamp_field: "timestamp_field"}
15
+ describe 'GET show' do
16
+ it 'loads the exhibit' do
17
+ exhibit.blacklight_configuration.index = { timestamp_field: 'timestamp_field' }
18
18
  exhibit.save!
19
- expect(controller).to receive(:get_search_results).with(sort: "timestamp_field desc").and_return([double(:response), [{id: 1}]])
20
- expect(controller).to receive(:add_breadcrumb).with("Home", exhibit)
21
- expect(controller).to receive(:add_breadcrumb).with("Dashboard", exhibit_dashboard_path(exhibit))
19
+ expect(controller).to receive(:search_results).with({ sort: 'timestamp_field desc' }, kind_of(Array)).and_return([double(:response), [{ id: 1 }]])
20
+ expect(controller).to receive(:add_breadcrumb).with('Home', exhibit)
21
+ expect(controller).to receive(:add_breadcrumb).with('Dashboard', exhibit_dashboard_path(exhibit))
22
22
  get :show, exhibit_id: exhibit.id
23
- expect(response).to render_template "spotlight/dashboards/show"
23
+ expect(response).to render_template 'spotlight/dashboards/show'
24
24
  expect(assigns[:exhibit]).to eq exhibit
25
25
  expect(assigns[:pages].length).to eq exhibit.pages.length
26
26
  expect(assigns[:solr_documents]).to have(1).item
@@ -28,17 +28,17 @@ describe Spotlight::DashboardsController, :type => :controller do
28
28
  end
29
29
  end
30
30
 
31
- describe "when user does not have access" do
31
+ describe 'when user does not have access' do
32
32
  before { sign_in FactoryGirl.create(:exhibit_visitor) }
33
- it "should not allow show" do
33
+ it 'does not allow show' do
34
34
  get :show, exhibit_id: exhibit.id
35
35
  expect(response).to redirect_to main_app.root_path
36
36
  end
37
37
  end
38
38
 
39
- describe "when not logged in" do
40
- describe "GET show" do
41
- it "should redirect to the sign in form" do
39
+ describe 'when not logged in' do
40
+ describe 'GET show' do
41
+ it 'redirects to the sign in form' do
42
42
  get :show, exhibit_id: exhibit.id
43
43
  expect(response).to redirect_to(main_app.new_user_session_path)
44
44
  expect(flash[:alert]).to be_present
@@ -1,91 +1,88 @@
1
1
  require 'spec_helper'
2
2
  require 'rack/test'
3
- describe Spotlight::ExhibitsController, :type => :controller do
3
+ describe Spotlight::ExhibitsController, type: :controller do
4
4
  routes { Spotlight::Engine.routes }
5
5
  let(:exhibit) { FactoryGirl.create(:exhibit) }
6
6
 
7
-
8
- describe "when the user is not authorized" do
7
+ describe 'when the user is not authorized' do
9
8
  before do
10
9
  sign_in FactoryGirl.create(:exhibit_visitor)
11
10
  end
12
11
 
13
- it "should deny access" do
14
- get :edit, id: exhibit
12
+ it 'denies access' do
13
+ get :edit, id: exhibit
15
14
  expect(response).to redirect_to main_app.root_path
16
15
  expect(flash[:alert]).to be_present
17
16
  end
18
17
  end
19
18
 
20
- describe "when not logged in" do
21
-
22
- describe "#new" do
23
- it "should not be allowed" do
24
- get :new, id: exhibit
19
+ describe 'when not logged in' do
20
+ describe '#new' do
21
+ it 'does not be allowed' do
22
+ get :new, id: exhibit
25
23
  expect(response).to redirect_to main_app.new_user_session_path
26
24
  end
27
25
  end
28
26
 
29
- describe "#edit" do
30
- it "should not be allowed" do
31
- get :edit, id: exhibit
27
+ describe '#edit' do
28
+ it 'does not be allowed' do
29
+ get :edit, id: exhibit
32
30
  expect(response).to redirect_to main_app.new_user_session_path
33
31
  end
34
32
  end
35
33
 
36
- describe "#update" do
37
- it "should not be allowed" do
38
- patch :update, id: exhibit
34
+ describe '#update' do
35
+ it 'does not be allowed' do
36
+ patch :update, id: exhibit
39
37
  expect(response).to redirect_to main_app.new_user_session_path
40
38
  end
41
39
  end
42
40
 
43
- describe "#process_import" do
44
- it "should not be allowed" do
45
- patch :process_import, id: exhibit
41
+ describe '#process_import' do
42
+ it 'does not be allowed' do
43
+ patch :process_import, id: exhibit
46
44
  expect(response).to redirect_to main_app.new_user_session_path
47
45
  end
48
46
  end
49
47
 
50
- describe "#destroy" do
51
- it "should not be allowed" do
52
- delete :destroy, id: exhibit
48
+ describe '#destroy' do
49
+ it 'does not be allowed' do
50
+ delete :destroy, id: exhibit
53
51
  expect(response).to redirect_to main_app.new_user_session_path
54
52
  end
55
53
  end
56
54
  end
57
55
 
58
- describe "when signed in as a site admin" do
59
-
56
+ describe 'when signed in as a site admin' do
60
57
  let(:user) { FactoryGirl.create(:site_admin) }
61
- before {sign_in user }
58
+ before { sign_in user }
62
59
 
63
- describe "#new" do
64
- it "should be successful" do
60
+ describe '#new' do
61
+ it 'is successful' do
65
62
  get :new
66
63
  expect(response).to be_successful
67
64
  end
68
65
  end
69
66
  end
70
67
 
71
- describe "when signed in as an exhibit admin" do
68
+ describe 'when signed in as an exhibit admin' do
72
69
  let(:user) { FactoryGirl.create(:exhibit_admin, exhibit: exhibit) }
73
- before {sign_in user }
70
+ before { sign_in user }
74
71
 
75
- describe "#new" do
76
- it "should not be allowed" do
72
+ describe '#new' do
73
+ it 'does not be allowed' do
77
74
  get :new
78
75
  expect(response).to_not be_successful
79
76
  end
80
77
  end
81
78
 
82
- describe "#process_import" do
83
- it "should be successful" do
84
- f = Tempfile.new("foo")
79
+ describe '#process_import' do
80
+ it 'is successful' do
81
+ f = Tempfile.new('foo')
85
82
  begin
86
83
  f.write '{ "title": "Foo", "subtitle": "Bar"}'
87
84
  f.rewind
88
- file = Rack::Test::UploadedFile.new(f.path, "application/json")
85
+ file = Rack::Test::UploadedFile.new(f.path, 'application/json')
89
86
  patch :process_import, id: exhibit, file: file
90
87
  ensure
91
88
  f.close
@@ -99,23 +96,27 @@ describe Spotlight::ExhibitsController, :type => :controller do
99
96
  end
100
97
  end
101
98
 
102
- describe "#edit" do
103
- it "should be successful" do
104
- expect(controller).to receive(:add_breadcrumb).with("Home", exhibit)
105
- expect(controller).to receive(:add_breadcrumb).with("Administration", exhibit_dashboard_path(exhibit))
106
- expect(controller).to receive(:add_breadcrumb).with("Settings", edit_exhibit_path(exhibit))
99
+ describe '#edit' do
100
+ it 'is successful' do
101
+ expect(controller).to receive(:add_breadcrumb).with('Home', exhibit)
102
+ expect(controller).to receive(:add_breadcrumb).with('Administration', exhibit_dashboard_path(exhibit))
103
+ expect(controller).to receive(:add_breadcrumb).with('Settings', edit_exhibit_path(exhibit))
107
104
  get :edit, id: exhibit
108
105
  expect(response).to be_successful
109
106
  end
110
107
  end
111
108
 
112
-
113
- describe "#update" do
114
- it "should be successful" do
115
- patch :update, id: exhibit, exhibit: { title: "Foo", subtitle: "Bar",
116
- description: "Baz", contact_emails_attributes: {'0'=>{email: 'bess@stanford.edu'}, '1'=>{email: 'naomi@stanford.edu'}}}
117
- expect(flash[:notice]).to eq "The exhibit was successfully updated."
118
- expect(response).to redirect_to edit_exhibit_path(exhibit)
109
+ describe '#update' do
110
+ it 'is successful' do
111
+ patch :update, id: exhibit, exhibit: {
112
+ title: 'Foo',
113
+ subtitle: 'Bar',
114
+ description: 'Baz',
115
+ contact_emails_attributes: { '0' => { email: 'bess@stanford.edu' }, '1' => { email: 'naomi@stanford.edu' } }
116
+ }
117
+
118
+ expect(flash[:notice]).to eq 'The exhibit was successfully updated.'
119
+ expect(response).to redirect_to edit_exhibit_path(exhibit)
119
120
  assigns[:exhibit].tap do |saved|
120
121
  expect(saved.title).to eq 'Foo'
121
122
  expect(saved.subtitle).to eq 'Bar'
@@ -124,10 +125,14 @@ describe Spotlight::ExhibitsController, :type => :controller do
124
125
  end
125
126
  end
126
127
 
127
- it "should show errors and ignore blank emails" do
128
-
129
- patch :update, id: exhibit, exhibit: { title: "Foo", subtitle: "Bar",
130
- description: "Baz", contact_emails_attributes: {'0'=>{email: 'bess@stanford.edu'}, '1'=>{email: 'naomi@'}, '2'=>{email: ''}}}
128
+ it 'shows errors and ignore blank emails' do
129
+ patch :update, id: exhibit, exhibit: {
130
+ title: 'Foo',
131
+ subtitle: 'Bar',
132
+ description: 'Baz',
133
+ contact_emails_attributes: { '0' => { email: 'bess@stanford.edu' }, '1' => { email: 'naomi@' }, '2' => { email: '' } }
134
+ }
135
+
131
136
  expect(response).to be_successful
132
137
  assigns[:exhibit].tap do |obj|
133
138
  expect(obj.contact_emails.last.errors[:email]).to eq ['is not valid']
@@ -136,11 +141,11 @@ describe Spotlight::ExhibitsController, :type => :controller do
136
141
  end
137
142
  end
138
143
 
139
- describe "#destroy" do
140
- it "should be successful" do
144
+ describe '#destroy' do
145
+ it 'is successful' do
141
146
  delete :destroy, id: exhibit
142
147
  expect(Spotlight::Exhibit.exists?(exhibit.id)).to be_falsey
143
- expect(flash[:notice]).to eq "The exhibit was deleted."
148
+ expect(flash[:notice]).to eq 'The exhibit was deleted.'
144
149
  expect(response).to redirect_to main_app.root_path
145
150
  end
146
151
  end