hyrax 3.0.0.pre.beta2 → 3.0.0.pre.beta3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (441) hide show
  1. checksums.yaml +4 -4
  2. data/.circleci/config.yml +118 -181
  3. data/.gitignore +3 -0
  4. data/.regen +1 -0
  5. data/.rubocop_fixme.yml +1 -1
  6. data/README.md +11 -15
  7. data/app/actors/hyrax/actors/active_fedora_to_valkyrie.rb +59 -0
  8. data/app/actors/hyrax/actors/add_to_work_actor.rb +28 -5
  9. data/app/actors/hyrax/actors/apply_order_actor.rb +2 -2
  10. data/app/actors/hyrax/actors/attach_members_actor.rb +50 -28
  11. data/app/actors/hyrax/actors/base_actor.rb +17 -2
  12. data/app/actors/hyrax/actors/cleanup_file_sets_actor.rb +1 -1
  13. data/app/actors/hyrax/actors/collections_membership_actor.rb +2 -8
  14. data/app/actors/hyrax/actors/create_with_files_actor.rb +16 -6
  15. data/app/actors/hyrax/actors/create_with_files_ordered_members_actor.rb +2 -2
  16. data/app/actors/hyrax/actors/create_with_remote_files_actor.rb +2 -1
  17. data/app/actors/hyrax/actors/create_with_remote_files_ordered_members_actor.rb +8 -6
  18. data/app/actors/hyrax/actors/environment.rb +8 -16
  19. data/app/actors/hyrax/actors/file_actor.rb +75 -13
  20. data/app/actors/hyrax/actors/interpret_visibility_actor.rb +6 -8
  21. data/app/actors/hyrax/actors/valkyrie_to_active_fedora.rb +60 -0
  22. data/app/assets/javascripts/hyrax/collections.js +5 -4
  23. data/app/assets/javascripts/hyrax/nav_safety.js +4 -2
  24. data/app/assets/javascripts/hyrax/proxy_rights.js +8 -0
  25. data/app/assets/stylesheets/fileupload/jquery.fileupload-ui.scss +1 -15
  26. data/app/assets/stylesheets/hyrax/_collections.scss +1 -1
  27. data/app/assets/stylesheets/hyrax/_home-page.scss +6 -0
  28. data/app/assets/stylesheets/hyrax/_users.scss +11 -0
  29. data/app/assets/stylesheets/hyrax/_viewer.scss +14 -3
  30. data/app/controllers/concerns/hyrax/breadcrumbs.rb +2 -0
  31. data/app/controllers/concerns/hyrax/collections_controller_behavior.rb +1 -1
  32. data/app/controllers/concerns/hyrax/embargoes_controller_behavior.rb +2 -1
  33. data/app/controllers/concerns/hyrax/leases_controller_behavior.rb +2 -1
  34. data/app/controllers/concerns/hyrax/local_file_downloads_controller_behavior.rb +2 -1
  35. data/app/controllers/hyrax/batch_edits_controller.rb +3 -3
  36. data/app/controllers/hyrax/dashboard/collections_controller.rb +16 -5
  37. data/app/controllers/hyrax/dashboard_controller.rb +9 -0
  38. data/app/controllers/hyrax/depositors_controller.rb +4 -6
  39. data/app/controllers/hyrax/downloads_controller.rb +1 -1
  40. data/app/controllers/hyrax/file_sets_controller.rb +3 -2
  41. data/app/controllers/hyrax/homepage_controller.rb +1 -1
  42. data/app/controllers/hyrax/my/works_controller.rb +2 -2
  43. data/app/controllers/hyrax/my_controller.rb +2 -2
  44. data/app/controllers/hyrax/permissions_controller.rb +1 -1
  45. data/app/controllers/hyrax/single_use_links_viewer_controller.rb +1 -1
  46. data/app/controllers/hyrax/workflow_actions_controller.rb +1 -1
  47. data/app/forms/hyrax/forms/admin_set_form.rb +8 -0
  48. data/app/forms/hyrax/forms/batch_edit_form.rb +1 -1
  49. data/app/forms/hyrax/forms/collection_form.rb +34 -3
  50. data/app/forms/hyrax/forms/file_set_edit_form.rb +1 -1
  51. data/app/forms/hyrax/forms/work_form.rb +34 -7
  52. data/app/forms/hyrax/forms/workflow_responsibility_form.rb +0 -4
  53. data/app/helpers/hyrax/hyrax_helper_behavior.rb +3 -4
  54. data/app/helpers/hyrax/iiif_helper.rb +8 -0
  55. data/app/indexers/hyrax/admin_set_indexer.rb +1 -1
  56. data/app/indexers/hyrax/basic_metadata_indexer.rb +1 -1
  57. data/app/indexers/hyrax/collection_indexer.rb +2 -2
  58. data/app/indexers/hyrax/file_set_indexer.rb +7 -0
  59. data/app/indexers/hyrax/indexes_workflow.rb +3 -5
  60. data/app/indexers/hyrax/valkyrie_indexers/base_indexer.rb +19 -0
  61. data/app/indexers/hyrax/work_indexer.rb +1 -1
  62. data/app/jobs/attach_files_to_work_job.rb +9 -1
  63. data/app/jobs/characterize_job.rb +20 -5
  64. data/app/jobs/import_url_job.rb +9 -16
  65. data/app/jobs/ingest_local_file_job.rb +4 -0
  66. data/app/jobs/visibility_copy_job.rb +3 -17
  67. data/app/models/admin_set.rb +5 -0
  68. data/app/models/concerns/hyrax/ability.rb +3 -3
  69. data/app/models/concerns/hyrax/basic_metadata.rb +6 -2
  70. data/app/models/concerns/hyrax/collection_behavior.rb +22 -12
  71. data/app/models/concerns/hyrax/collection_nesting.rb +1 -1
  72. data/app/models/concerns/hyrax/file_set/characterization.rb +8 -1
  73. data/app/models/concerns/hyrax/file_set/querying.rb +1 -1
  74. data/app/models/concerns/hyrax/file_set_behavior.rb +1 -1
  75. data/app/models/concerns/hyrax/human_readable_type.rb +2 -2
  76. data/app/models/concerns/hyrax/solr_document/characterization.rb +27 -23
  77. data/app/models/concerns/hyrax/solr_document/metadata.rb +37 -39
  78. data/app/models/concerns/hyrax/solr_document_behavior.rb +4 -8
  79. data/app/models/concerns/hyrax/virus_check.rb +20 -0
  80. data/app/models/concerns/hyrax/work_behavior.rb +3 -1
  81. data/app/models/file_download_stat.rb +2 -1
  82. data/app/models/hyrax/active_job_proxy.rb +43 -0
  83. data/app/models/hyrax/embargo.rb +21 -0
  84. data/app/models/hyrax/file_metadata.rb +109 -0
  85. data/app/models/hyrax/lease.rb +21 -0
  86. data/app/models/hyrax/permission_template.rb +8 -8
  87. data/app/models/hyrax/resource.rb +31 -0
  88. data/app/models/hyrax/statistic.rb +5 -1
  89. data/app/models/hyrax/uploaded_file.rb +0 -2
  90. data/app/models/hyrax/virus_scanner.rb +56 -0
  91. data/app/models/job_io_wrapper.rb +24 -9
  92. data/app/models/proxy_deposit_request.rb +1 -1
  93. data/app/models/solr_hit.rb +23 -0
  94. data/app/presenters/hyrax/admin_set_presenter.rb +1 -1
  95. data/app/presenters/hyrax/characterization_behavior.rb +2 -2
  96. data/app/presenters/hyrax/displays_image.rb +25 -7
  97. data/app/presenters/hyrax/file_set_presenter.rb +3 -3
  98. data/app/presenters/hyrax/member_presenter_factory.rb +9 -9
  99. data/app/presenters/hyrax/presenter_factory.rb +1 -4
  100. data/app/presenters/hyrax/trophy_presenter.rb +1 -1
  101. data/app/presenters/hyrax/work_show_presenter.rb +3 -3
  102. data/app/renderers/hyrax/renderers/faceted_attribute_renderer.rb +1 -1
  103. data/app/search_builders/hyrax/catalog_search_builder.rb +1 -1
  104. data/app/search_builders/hyrax/collection_search_builder.rb +1 -1
  105. data/app/search_builders/hyrax/dashboard/nested_collections_search_builder.rb +2 -2
  106. data/app/search_builders/hyrax/deposit_search_builder.rb +1 -1
  107. data/app/search_builders/hyrax/my/find_works_search_builder.rb +5 -9
  108. data/app/search_builders/hyrax/my/highlights_search_builder.rb +1 -3
  109. data/app/search_builders/hyrax/nested_collections_parent_search_builder.rb +1 -1
  110. data/app/search_builders/hyrax/parent_collection_search_builder.rb +1 -1
  111. data/app/services/hyrax/adapters/nesting_index_adapter.rb +6 -6
  112. data/app/services/hyrax/admin_set_service.rb +3 -11
  113. data/app/services/hyrax/analytics.rb +6 -6
  114. data/app/services/hyrax/collection_types/permissions_service.rb +5 -5
  115. data/app/services/hyrax/collections/permissions_service.rb +2 -2
  116. data/app/services/hyrax/custom_queries/navigators/child_collections_navigator.rb +39 -0
  117. data/app/services/hyrax/custom_queries/navigators/child_filesets_navigator.rb +39 -0
  118. data/app/services/hyrax/custom_queries/navigators/child_works_navigator.rb +39 -0
  119. data/app/services/hyrax/custom_queries/wings.rb +34 -0
  120. data/app/services/hyrax/database_migrator.rb +1 -0
  121. data/app/services/hyrax/derivative_path.rb +1 -1
  122. data/app/services/hyrax/embargo_manager.rb +100 -0
  123. data/app/services/hyrax/file_set_csv_service.rb +2 -0
  124. data/app/services/hyrax/file_set_visibility_propagator.rb +41 -0
  125. data/app/services/hyrax/graph_exporter.rb +1 -1
  126. data/app/services/hyrax/lease_manager.rb +71 -0
  127. data/app/services/hyrax/persist_directly_contained_output_file_service.rb +1 -1
  128. data/app/services/hyrax/query_service.rb +0 -0
  129. data/app/services/hyrax/resource_visibility_propagator.rb +50 -0
  130. data/app/services/hyrax/solr_query_builder_service.rb +71 -0
  131. data/app/services/hyrax/solr_service.rb +144 -0
  132. data/app/services/hyrax/statistics/file_sets/by_format.rb +1 -1
  133. data/app/services/hyrax/statistics/term_query.rb +7 -12
  134. data/app/services/hyrax/statistics/works/by_resource_type.rb +1 -1
  135. data/app/services/hyrax/thumbnail_path_service.rb +4 -3
  136. data/app/services/hyrax/versioning_service.rb +74 -19
  137. data/app/services/hyrax/virus_checker_service.rb +52 -0
  138. data/app/services/hyrax/visibility_intention_applicator.rb +43 -0
  139. data/app/services/hyrax/visibility_map.rb +65 -0
  140. data/app/services/hyrax/visibility_propagator.rb +19 -0
  141. data/app/services/hyrax/visibility_reader.rb +43 -0
  142. data/app/services/hyrax/visibility_writer.rb +43 -0
  143. data/app/services/hyrax/work_query_service.rb +3 -3
  144. data/app/services/hyrax/workflow/deposited_notification.rb +1 -1
  145. data/app/services/hyrax/works/migration_service.rb +33 -0
  146. data/app/views/hyrax/admin/admin_sets/_form.html.erb +6 -5
  147. data/app/views/hyrax/admin/admin_sets/_form_visibility.html.erb +2 -1
  148. data/app/views/hyrax/admin/admin_sets/_form_workflow.erb +1 -1
  149. data/app/views/hyrax/base/_attribute_rows.html.erb +2 -0
  150. data/app/views/hyrax/base/_attributes.html.erb +3 -3
  151. data/app/views/hyrax/base/_citations.html.erb +4 -4
  152. data/app/views/hyrax/base/_file_manager_actions.html.erb +2 -2
  153. data/app/views/hyrax/base/_file_manager_member_resource_options.html.erb +2 -2
  154. data/app/views/hyrax/base/_form_child_work_relationships.html.erb +1 -1
  155. data/app/views/hyrax/base/_form_files.html.erb +11 -9
  156. data/app/views/hyrax/base/_form_member_of_collections.html.erb +1 -1
  157. data/app/views/hyrax/base/_form_permission.html.erb +1 -2
  158. data/app/views/hyrax/base/_form_progress.html.erb +2 -2
  159. data/app/views/hyrax/base/_form_share.html.erb +8 -11
  160. data/app/views/hyrax/base/_show_actions.html.erb +3 -3
  161. data/app/views/hyrax/base/_social_media.html.erb +0 -13
  162. data/app/views/hyrax/base/_work_button_row.html.erb +7 -7
  163. data/app/views/hyrax/base/_workflow_actions.html.erb +4 -4
  164. data/app/views/hyrax/base/file_manager.html.erb +2 -2
  165. data/app/views/hyrax/base/iiif_viewers/_universal_viewer.html.erb +5 -2
  166. data/app/views/hyrax/base/inspect_work.html.erb +13 -13
  167. data/app/views/hyrax/base/unauthorized.html.erb +4 -4
  168. data/app/views/hyrax/batch_edits/_check_all.html.erb +1 -1
  169. data/app/views/hyrax/batch_edits/_delete_selected.html.erb +1 -1
  170. data/app/views/hyrax/batch_edits/edit.html.erb +11 -11
  171. data/app/views/hyrax/citations/work.html.erb +1 -1
  172. data/app/views/hyrax/collections/_show_document_list.html.erb +1 -1
  173. data/app/views/hyrax/collections/_sort_and_per_page.html.erb +4 -4
  174. data/app/views/hyrax/dashboard/collections/_form.html.erb +6 -5
  175. data/app/views/hyrax/dashboard/collections/_form_branding.html.erb +10 -10
  176. data/app/views/hyrax/dashboard/collections/_form_share.html.erb +5 -5
  177. data/app/views/hyrax/dashboard/collections/_show_descriptions.html.erb +1 -1
  178. data/app/views/hyrax/dashboard/collections/_show_document_list.html.erb +6 -6
  179. data/app/views/hyrax/dashboard/collections/_show_document_list_menu.html.erb +1 -1
  180. data/app/views/hyrax/dashboard/collections/_show_document_list_row.html.erb +3 -3
  181. data/app/views/hyrax/dashboard/collections/_sort_and_per_page.html.erb +2 -3
  182. data/app/views/hyrax/dashboard/collections/_work_action_menu.html.erb +8 -8
  183. data/app/views/hyrax/dashboard/collections/edit.html.erb +2 -2
  184. data/app/views/hyrax/dashboard/profiles/_edit_primary.html.erb +8 -8
  185. data/app/views/hyrax/dashboard/sidebar/_activity.html.erb +2 -0
  186. data/app/views/hyrax/dashboard/sidebar/_configuration.html.erb +4 -1
  187. data/app/views/hyrax/dashboard/sidebar/_menu_partials.html.erb +3 -0
  188. data/app/views/hyrax/dashboard/sidebar/_repository_content.html.erb +2 -0
  189. data/app/views/hyrax/dashboard/sidebar/_tasks.html.erb +2 -0
  190. data/app/views/hyrax/dashboard/works/_default_group.html.erb +4 -4
  191. data/app/views/hyrax/dashboard/works/_list_works.html.erb +1 -1
  192. data/app/views/hyrax/depositors/_modal_proxy_deny.html.erb +14 -0
  193. data/app/views/hyrax/depositors/index.html.erb +3 -0
  194. data/app/views/hyrax/embargoes/_list_expired_active_embargoes.html.erb +1 -1
  195. data/app/views/hyrax/file_sets/_actions.html.erb +1 -1
  196. data/app/views/hyrax/file_sets/_asset_deleted_flash.html.erb +1 -1
  197. data/app/views/hyrax/file_sets/_asset_saved_flash.html.erb +5 -6
  198. data/app/views/hyrax/file_sets/_asset_updated_flash.html.erb +2 -1
  199. data/app/views/hyrax/file_sets/_descriptions.html.erb +2 -2
  200. data/app/views/hyrax/file_sets/_extra_fields_modal.html.erb +3 -3
  201. data/app/views/hyrax/file_sets/_form.html.erb +1 -1
  202. data/app/views/hyrax/file_sets/_permission.html.erb +2 -1
  203. data/app/views/hyrax/file_sets/_permission_form.html.erb +9 -9
  204. data/app/views/hyrax/file_sets/_show_actions.html.erb +4 -4
  205. data/app/views/hyrax/file_sets/_show_details.html.erb +7 -7
  206. data/app/views/hyrax/file_sets/_versioning.html.erb +3 -3
  207. data/app/views/hyrax/file_sets/edit.html.erb +4 -3
  208. data/app/views/hyrax/file_sets/media_display/_audio.html.erb +2 -2
  209. data/app/views/hyrax/file_sets/media_display/_video.html.erb +2 -2
  210. data/app/views/hyrax/file_sets/proxy.html.erb +2 -2
  211. data/app/views/hyrax/my/_sort_and_per_page.html.erb +1 -1
  212. data/app/views/hyrax/my/collections/_modal_delete_selected_collections.html.erb +4 -1
  213. data/app/views/hyrax/my/collections/index.html.erb +1 -1
  214. data/app/views/hyrax/my/index.html.erb +1 -1
  215. data/app/views/hyrax/my/works/_default_group.html.erb +4 -4
  216. data/app/views/hyrax/my/works/_list_works.html.erb +3 -3
  217. data/app/views/hyrax/my/works/index.html.erb +1 -1
  218. data/app/views/hyrax/notifications/index.html.erb +1 -1
  219. data/app/views/hyrax/operations/index.html.erb +4 -4
  220. data/app/views/hyrax/pages/_form.html.erb +61 -60
  221. data/app/views/hyrax/permissions/confirm_access.html.erb +1 -1
  222. data/app/views/hyrax/single_use_links_viewer/single_use_error.html.erb +3 -7
  223. data/app/views/hyrax/static/mendeley.html.erb +2 -4
  224. data/app/views/hyrax/static/zotero.html.erb +2 -4
  225. data/app/views/hyrax/transfers/_received.html.erb +10 -10
  226. data/app/views/hyrax/transfers/_sent.html.erb +6 -6
  227. data/app/views/hyrax/uploads/_js_templates.html.erb +7 -7
  228. data/app/views/hyrax/uploads/_js_templates_branding.html.erb +8 -8
  229. data/app/views/hyrax/users/_activity_log.html.erb +25 -22
  230. data/app/views/hyrax/users/_left_sidebar.html.erb +1 -1
  231. data/app/views/hyrax/users/_proxies.html.erb +1 -1
  232. data/app/views/hyrax/users/_search_form.html.erb +3 -3
  233. data/app/views/hyrax/users/_vitals.html.erb +1 -1
  234. data/app/views/hyrax/users/index.html.erb +6 -6
  235. data/app/views/records/edit_fields/_abstract.html.erb +5 -0
  236. data/app/views/records/edit_fields/_access_right.html.erb +5 -0
  237. data/app/views/records/edit_fields/_alt_title.html.erb +3 -0
  238. data/app/views/records/edit_fields/_title.html.erb +1 -0
  239. data/app/views/records/show_fields/_based_near.html.erb +1 -1
  240. data/app/views/records/show_fields/_creator.html.erb +1 -1
  241. data/app/views/records/show_fields/_keyword.html.erb +1 -1
  242. data/app/views/records/show_fields/_language.html.erb +1 -1
  243. data/app/views/records/show_fields/_publisher.html.erb +1 -1
  244. data/app/views/records/show_fields/_resource_type.html.erb +1 -1
  245. data/app/views/records/show_fields/_subject.html.erb +1 -1
  246. data/config/initializers/indexing_adapter_initializer.rb +16 -0
  247. data/config/initializers/samvera-nesting_indexer_initializer.rb +3 -3
  248. data/config/locales/hyrax.de.yml +303 -24
  249. data/config/locales/hyrax.en.yml +279 -0
  250. data/config/locales/hyrax.es.yml +284 -5
  251. data/config/locales/hyrax.fr.yml +280 -1
  252. data/config/locales/hyrax.it.yml +279 -0
  253. data/config/locales/hyrax.pt-BR.yml +279 -0
  254. data/config/locales/hyrax.zh.yml +279 -0
  255. data/hyrax.gemspec +10 -11
  256. data/lib/generators/hyrax/config_generator.rb +6 -0
  257. data/lib/generators/hyrax/install_generator.rb +5 -0
  258. data/lib/generators/hyrax/riiif_generator.rb +2 -2
  259. data/lib/generators/hyrax/templates/catalog_controller.rb +71 -71
  260. data/lib/generators/hyrax/templates/config/analytics.yml +5 -5
  261. data/lib/generators/hyrax/templates/config/initializers/hyrax.rb +11 -1
  262. data/lib/generators/hyrax/templates/config/initializers/riiif.rb +3 -3
  263. data/lib/generators/hyrax/templates/config/solr_wrapper_valkyrie_test.yml +7 -0
  264. data/lib/generators/hyrax/templates/config/valkyrie_index.yml +12 -0
  265. data/lib/generators/hyrax/templates/package.json +17 -0
  266. data/lib/generators/hyrax/templates/uv-config.json +3 -0
  267. data/lib/generators/hyrax/templates/uv.html +87 -0
  268. data/lib/generators/hyrax/work/templates/feature_spec.rb.erb +0 -1
  269. data/lib/hyrax.rb +17 -1
  270. data/lib/hyrax/configuration.rb +34 -20
  271. data/lib/hyrax/engine.rb +12 -10
  272. data/lib/hyrax/errors.rb +4 -0
  273. data/lib/hyrax/transactions/container.rb +13 -0
  274. data/lib/hyrax/transactions/create_work.rb +11 -0
  275. data/lib/hyrax/transactions/steps/apply_collection_permission_template.rb +32 -0
  276. data/lib/hyrax/transactions/steps/apply_permission_template.rb +2 -1
  277. data/lib/hyrax/transactions/steps/apply_visibility.rb +39 -0
  278. data/lib/hyrax/version.rb +1 -1
  279. data/lib/tasks/migrate.rake +6 -0
  280. data/lib/tasks/universal_viewer.rake +15 -0
  281. data/lib/valkyrie/indexing/solr/indexing_adapter.rb +102 -0
  282. data/lib/valkyrie/indexing_adapter.rb +29 -0
  283. data/lib/wings.rb +13 -4
  284. data/lib/wings/active_fedora_converter.rb +129 -15
  285. data/lib/wings/converter_value_mapper.rb +111 -0
  286. data/lib/wings/hydra/pcdm/models/concerns/collection_valkyrie_behavior.rb +27 -0
  287. data/lib/wings/hydra/pcdm/models/concerns/object_valkyrie_behavior.rb +27 -0
  288. data/lib/wings/hydra/pcdm/models/concerns/pcdm_valkyrie_behavior.rb +172 -0
  289. data/lib/wings/hydra/works/models/concerns/collection_valkyrie_behavior.rb +30 -0
  290. data/lib/wings/hydra/works/models/concerns/file_set_valkyrie_behavior.rb +30 -0
  291. data/lib/wings/hydra/works/models/concerns/work_valkyrie_behavior.rb +59 -0
  292. data/lib/wings/hydra/works/services/add_file_metadata_to_file_set.rb +113 -0
  293. data/lib/wings/model_transformer.rb +172 -47
  294. data/lib/wings/models/concerns/collection_behavior.rb +38 -0
  295. data/lib/wings/models/multi_checksum.rb +18 -0
  296. data/lib/wings/services/file_metadata_builder.rb +81 -0
  297. data/lib/wings/services/id_converter_service.rb +14 -0
  298. data/lib/wings/{value_mapper.rb → transformer_value_mapper.rb} +24 -5
  299. data/lib/wings/valkyrie/persister.rb +47 -24
  300. data/lib/wings/valkyrie/query_service.rb +141 -6
  301. data/lib/wings/valkyrie/storage/active_fedora.rb +27 -0
  302. data/spec/abilities/proxies_and_transfer_abilities_spec.rb +50 -10
  303. data/spec/actors/hyrax/actors/active_fedora_to_valkyrie_spec.rb +70 -0
  304. data/spec/actors/hyrax/actors/attach_members_actor_spec.rb +55 -10
  305. data/spec/actors/hyrax/actors/create_with_remote_files_actor_spec.rb +14 -0
  306. data/spec/actors/hyrax/actors/create_with_remote_files_ordered_members_actor_spec.rb +22 -30
  307. data/spec/actors/hyrax/actors/file_actor_spec.rb +200 -84
  308. data/spec/actors/hyrax/actors/file_set_actor_spec.rb +1 -1
  309. data/spec/actors/hyrax/actors/generic_work_actor_spec.rb +2 -6
  310. data/spec/actors/hyrax/actors/interpret_visibility_actor_spec.rb +1 -1
  311. data/spec/actors/hyrax/actors/ordered_members_actor_spec.rb +1 -1
  312. data/spec/actors/hyrax/actors/valkyrie_to_active_fedora_spec.rb +70 -0
  313. data/spec/controllers/catalog_controller_spec.rb +2 -2
  314. data/spec/controllers/hyrax/api/items_controller_spec.rb +9 -15
  315. data/spec/controllers/hyrax/collections_controller_spec.rb +6 -2
  316. data/spec/controllers/hyrax/dashboard/collections_controller_spec.rb +53 -4
  317. data/spec/controllers/hyrax/depositors_controller_spec.rb +3 -3
  318. data/spec/controllers/hyrax/downloads_controller_spec.rb +11 -2
  319. data/spec/controllers/hyrax/file_sets_controller_spec.rb +40 -2
  320. data/spec/controllers/hyrax/generic_works_controller_spec.rb +13 -3
  321. data/spec/controllers/hyrax/homepage_controller_spec.rb +3 -3
  322. data/spec/controllers/hyrax/single_use_links_viewer_controller_spec.rb +1 -2
  323. data/spec/factories/admin_sets_lw.rb +1 -1
  324. data/spec/factories/collections.rb +1 -1
  325. data/spec/factories/hyrax_embargo.rb +16 -0
  326. data/spec/factories/hyrax_lease.rb +16 -0
  327. data/spec/factories/hyrax_resource.rb +16 -0
  328. data/spec/factory_tests/adminsets_factory_spec.rb +4 -4
  329. data/spec/factory_tests/collections_factory_spec.rb +3 -3
  330. data/spec/features/actor_stack_spec.rb +64 -0
  331. data/spec/features/batch_create_spec.rb +1 -2
  332. data/spec/features/collection_multi_membership_spec.rb +1 -0
  333. data/spec/features/collection_spec.rb +2 -2
  334. data/spec/features/collection_type_spec.rb +1 -0
  335. data/spec/features/create_work_spec.rb +15 -6
  336. data/spec/features/dashboard/collection_spec.rb +103 -14
  337. data/spec/features/edit_content_block_admin_spec.rb +3 -3
  338. data/spec/features/edit_pages_admin.spec.rb +62 -0
  339. data/spec/features/proxy_spec.rb +21 -0
  340. data/spec/features/static_pages_spec.rb +1 -1
  341. data/spec/features/work_show_spec.rb +7 -3
  342. data/spec/fixtures/sample-file.pdf +0 -0
  343. data/spec/fixtures/updated-file.txt +1 -0
  344. data/spec/forms/hyrax/forms/batch_upload_form_spec.rb +5 -2
  345. data/spec/forms/hyrax/forms/collection_form_spec.rb +5 -2
  346. data/spec/forms/hyrax/forms/work_form_spec.rb +18 -5
  347. data/spec/forms/hyrax/generic_work_form_spec.rb +4 -4
  348. data/spec/helpers/hyrax/collections_helper_spec.rb +8 -8
  349. data/spec/helpers/hyrax/dashboard_helper_behavior_spec.rb +7 -8
  350. data/spec/helpers/hyrax/iiif_helper_spec.rb +16 -0
  351. data/spec/helpers/hyrax_helper_spec.rb +4 -4
  352. data/spec/hyrax/transactions/create_work_spec.rb +68 -0
  353. data/spec/hyrax/transactions/steps/apply_collection_permission_template_spec.rb +59 -0
  354. data/spec/hyrax/transactions/steps/apply_visibility_spec.rb +82 -0
  355. data/spec/indexers/hyrax/admin_set_indexer_spec.rb +15 -0
  356. data/spec/indexers/hyrax/file_set_indexer_spec.rb +26 -1
  357. data/spec/indexers/hyrax/valkyrie_indexers/base_indexer_spec.rb +16 -0
  358. data/spec/jobs/import_url_job_spec.rb +49 -2
  359. data/spec/jobs/ingest_local_file_job_spec.rb +25 -1
  360. data/spec/jobs/visibility_copy_job_spec.rb +46 -0
  361. data/spec/lib/hyrax/configuration_spec.rb +17 -11
  362. data/spec/lib/hyrax/redis_event_store_spec.rb +1 -1
  363. data/spec/matcher_tests/match_valkyrie_ids_with_af_ids_spec.rb +40 -0
  364. data/spec/models/file_set_spec.rb +4 -3
  365. data/spec/models/hyrax/embargo_spec.rb +27 -0
  366. data/spec/models/hyrax/file_metadata_spec.rb +110 -0
  367. data/spec/models/hyrax/lease_spec.rb +25 -0
  368. data/spec/models/hyrax/permission_template_spec.rb +2 -2
  369. data/spec/models/hyrax/resource_spec.rb +60 -0
  370. data/spec/models/hyrax/virus_scanner_spec.rb +50 -0
  371. data/spec/models/job_io_wrapper_spec.rb +63 -0
  372. data/spec/models/solr_hit_spec.rb +9 -0
  373. data/spec/models/user_spec.rb +1 -1
  374. data/spec/presenters/hyrax/file_set_presenter_spec.rb +11 -7
  375. data/spec/presenters/hyrax/presenter_factory_spec.rb +2 -2
  376. data/spec/presenters/hyrax/work_show_presenter_spec.rb +1 -1
  377. data/spec/requests/riiif_spec.rb +2 -2
  378. data/spec/search_builders/hyrax/my/find_works_search_builder_spec.rb +3 -3
  379. data/spec/services/hyrax/adapters/nesting_index_adapter_spec.rb +5 -6
  380. data/spec/services/hyrax/admin_set_service_spec.rb +2 -2
  381. data/spec/services/hyrax/custom_queries/navigators/child_collections_navigator_spec.rb +41 -0
  382. data/spec/services/hyrax/custom_queries/navigators/child_filesets_navigator_spec.rb +41 -0
  383. data/spec/services/hyrax/custom_queries/navigators/child_works_navigator_spec.rb +79 -0
  384. data/spec/services/hyrax/custom_queries/wings.rb +52 -0
  385. data/spec/services/hyrax/embargo_manager_spec.rb +123 -0
  386. data/spec/services/hyrax/embargo_service_spec.rb +2 -2
  387. data/spec/services/hyrax/file_set_visibility_propagator_spec.rb +59 -0
  388. data/spec/services/hyrax/resource_visibility_propagator_spec.rb +71 -0
  389. data/spec/services/hyrax/solr_query_builder_service_spec.rb +17 -0
  390. data/spec/services/hyrax/solr_service_spec.rb +218 -0
  391. data/spec/services/hyrax/thumbnail_path_service_spec.rb +6 -0
  392. data/spec/services/hyrax/versioning_service_spec.rb +35 -15
  393. data/spec/services/hyrax/visibility_intention_applicator_spec.rb +69 -0
  394. data/spec/services/hyrax/visibility_reader_spec.rb +38 -0
  395. data/spec/services/hyrax/visibility_writer_spec.rb +47 -0
  396. data/spec/services/hyrax/workflow/status_list_service_spec.rb +1 -13
  397. data/spec/services/hyrax/works/migration_service_spec.rb +29 -0
  398. data/spec/spec_helper.rb +24 -23
  399. data/spec/support/clean_solr.rb +7 -0
  400. data/spec/support/create_for_repository.rb +25 -0
  401. data/spec/support/factory_helpers.rb +3 -1
  402. data/spec/support/fakes/fake_actor.rb +21 -0
  403. data/spec/support/matchers/embargo.rb +9 -0
  404. data/spec/support/matchers/lease.rb +9 -0
  405. data/spec/support/matchers/match_valkyrie_ids_with_af_ids.rb +11 -0
  406. data/spec/support/matchers/permission.rb +22 -0
  407. data/spec/support/valkyrie_indexing.rb +1 -0
  408. data/spec/test_app_templates/Gemfile.extra +0 -2
  409. data/spec/test_app_templates/lib/generators/test_app_generator.rb +5 -6
  410. data/spec/valkyrie/indexing/solr/indexing_adapter_spec.rb +41 -0
  411. data/spec/valkyrie/indexing_adapter_spec.rb +25 -0
  412. data/spec/views/hyrax/base/_attributes.html.erb_spec.rb +1 -1
  413. data/spec/views/hyrax/base/_social_media.html.erb_spec.rb +0 -1
  414. data/spec/views/hyrax/base/show.html.erb_spec.rb +2 -2
  415. data/spec/views/hyrax/collections/_sort_and_per_page.html.erb_spec.rb +1 -1
  416. data/spec/views/hyrax/dashboard/_sidebar.html.erb_spec.rb +39 -0
  417. data/spec/views/hyrax/dashboard/collections/_sort_and_per_page.html.erb_spec.rb +1 -1
  418. data/spec/views/hyrax/file_sets/_versioning.html.erb_spec.rb +1 -0
  419. data/spec/views/hyrax/my/collections/_list_collections.html.erb_spec.rb +2 -2
  420. data/spec/views/records/edit_fields/_alt_title.html.erb_spec.rb +26 -0
  421. data/spec/views/records/edit_fields/_title.html.erb_spec.rb +24 -0
  422. data/spec/wings/active_fedora_converter_spec.rb +136 -1
  423. data/spec/wings/converter_value_mapper_spec.rb +23 -0
  424. data/spec/wings/hydra/pcdm/models/concerns/collection_valkyrie_behavior_spec.rb +41 -0
  425. data/spec/wings/hydra/pcdm/models/concerns/object_valkyrie_behavior_spec.rb +19 -0
  426. data/spec/wings/hydra/pcdm/models/concerns/pcdm_valkyrie_behavior_spec.rb +442 -0
  427. data/spec/wings/hydra/works/models/concerns/collection_valkyrie_behavior_spec.rb +22 -0
  428. data/spec/wings/hydra/works/models/concerns/file_set_valkyrie_behavior_spec.rb +90 -0
  429. data/spec/wings/hydra/works/models/concerns/work_valkyrie_behavior_spec.rb +218 -0
  430. data/spec/wings/model_transformer_spec.rb +167 -112
  431. data/spec/wings/models/concerns/collection_behavior_spec.rb +120 -0
  432. data/spec/wings/services/file_metadata_builder_spec.rb +39 -0
  433. data/spec/wings/services/id_converter_service_spec.rb +24 -0
  434. data/spec/wings/{value_mapper_spec.rb → transformer_value_mapper_spec.rb} +2 -2
  435. data/spec/wings/valkyrie/persister_spec.rb +544 -53
  436. data/spec/wings/valkyrie/query_service_spec.rb +381 -4
  437. data/spec/wings_helper.rb +4 -0
  438. data/template.rb +1 -1
  439. metadata +205 -49
  440. data/.travis.yml +0 -36
  441. data/lib/wings/resource_factory.rb +0 -8
@@ -6,27 +6,51 @@ require 'wings'
6
6
  RSpec.describe Wings::Valkyrie::QueryService do
7
7
  before do
8
8
  class Book < ActiveFedora::Base
9
+ include Hyrax::WorkBehavior
10
+ include Hydra::AccessControls::Permissions
11
+ property :title, predicate: ::RDF::Vocab::DC.title, multiple: true
12
+ property :a_member_of, predicate: ::RDF::URI.new('http://www.example.com/a_member_of'), multiple: true do |index|
13
+ index.as :symbol
14
+ end
15
+ property :an_ordered_member_of, predicate: ::RDF::URI.new('http://www.example.com/an_ordered_member_of'), multiple: true
16
+ end
17
+ class Image < ActiveFedora::Base
18
+ include Hydra::AccessControls::Permissions
9
19
  property :title, predicate: ::RDF::Vocab::DC.title, multiple: true
10
20
  end
11
21
  end
12
22
 
13
23
  after do
14
24
  Object.send(:remove_const, :Book)
25
+ Object.send(:remove_const, :Image)
15
26
  end
16
27
 
17
28
  subject(:query_service) { described_class.new(adapter: adapter) }
18
29
  let(:adapter) { Wings::Valkyrie::MetadataAdapter.new }
19
30
  let(:persister) { Wings::Valkyrie::Persister.new(adapter: adapter) }
20
31
  let(:af_resource_class) { Book }
32
+ let(:af_image_resource_class) { Image }
21
33
  let(:resource_class) { Wings::ModelTransformer.to_valkyrie_resource_class(klass: af_resource_class) }
34
+ let(:image_resource_class) { Wings::ModelTransformer.to_valkyrie_resource_class(klass: af_image_resource_class) }
22
35
  let(:resource) { resource_class.new(title: ['Foo']) }
23
36
 
24
37
  # it_behaves_like "a Valkyrie query provider"
25
38
 
39
+ # rubocop:disable RSpec/ExampleLength
26
40
  it 'responds to expected methods' do
27
41
  expect(subject).to respond_to(:find_by).with_keywords(:id)
28
42
  expect(subject).to respond_to(:resource_factory)
43
+ expect(subject).to respond_to(:find_all).with(0).arguments
44
+ expect(subject).to respond_to(:find_all_of_model).with_keywords(:model)
45
+ expect(subject).to respond_to(:find_many_by_ids).with_keywords(:ids)
46
+ expect(subject).to respond_to(:find_by_alternate_identifier).with_keywords(:alternate_identifier)
47
+ expect(subject).to respond_to(:find_members).with_keywords(:resource)
48
+ expect(subject).to respond_to(:find_references_by).with_keywords(:resource, :property)
49
+ expect(subject).to respond_to(:find_inverse_references_by).with_keywords(:resource, :property)
50
+ expect(subject).to respond_to(:find_inverse_references_by).with_keywords(:id, :property)
51
+ expect(subject).to respond_to(:find_parents).with_keywords(:resource)
29
52
  end
53
+ # rubocop:enable RSpec/ExampleLength
30
54
 
31
55
  describe ".find_by" do
32
56
  it "returns a resource by id or string representation of an id" do
@@ -34,15 +58,15 @@ RSpec.describe Wings::Valkyrie::QueryService do
34
58
 
35
59
  found = query_service.find_by(id: book.id)
36
60
  expect(found.id).to eq book.id
37
- # expect(found).to be_persisted
61
+ expect(found).to be_persisted
38
62
 
39
63
  found = query_service.find_by(id: book.id.to_s)
40
64
  expect(found.id).to eq book.id
41
- # expect(found).to be_persisted
65
+ expect(found).to be_persisted
42
66
  end
43
67
 
44
- it "returns a Valkyrie::Persistence::ObjectNotFoundError for a non-found ID" do
45
- expect { query_service.find_by(id: ::Valkyrie::ID.new("123123123")) }.to raise_error ::Valkyrie::Persistence::ObjectNotFoundError
68
+ it "returns a Hyrax::ObjectNotFoundError for a non-found ID" do
69
+ expect { query_service.find_by(id: ::Valkyrie::ID.new("123123123")) }.to raise_error Hyrax::ObjectNotFoundError
46
70
  end
47
71
 
48
72
  it 'raises an error if the id is not a Valkyrie::ID or a string' do
@@ -50,6 +74,359 @@ RSpec.describe Wings::Valkyrie::QueryService do
50
74
  end
51
75
  end
52
76
 
77
+ describe ".find_all", clean_repo: true do
78
+ before do
79
+ allow(Hyrax.config).to receive(:curation_concerns).and_return(Hyrax.config.curation_concerns.append(::Collection).append(af_resource_class))
80
+ end
81
+
82
+ it "returns all created resources and no access control objects" do
83
+ work = create(:generic_work)
84
+ resource1 = persister.save(resource: resource_class.new)
85
+ resource2 = persister.save(resource: resource_class.new)
86
+
87
+ expect(query_service.find_all.map(&:id)).to contain_exactly resource1.id, resource2.id, Valkyrie::ID.new(work.id)
88
+ end
89
+
90
+ it "returns an empty array if there are none" do
91
+ expect(query_service.find_all.to_a).to eq []
92
+ end
93
+ end
94
+
95
+ describe ".find_all_of_model", clean_repo: true do
96
+ it "returns all of that model" do
97
+ persister.save(resource: resource_class.new)
98
+ resource2 = persister.save(resource: image_resource_class.new)
99
+
100
+ expect(query_service.find_all_of_model(model: image_resource_class).map(&:id)).to contain_exactly resource2.id
101
+ end
102
+
103
+ it "returns an empty array if there are none" do
104
+ persister.save(resource: resource_class.new)
105
+ persister.save(resource: resource_class.new)
106
+
107
+ expect(query_service.find_all_of_model(model: image_resource_class).to_a).to eq []
108
+ end
109
+ end
110
+
111
+ describe ".find_by_alternate_identifier" do
112
+ it "returns a resource by alternate identifier or string representation of an alternate identifier" do
113
+ resource = resource_class.new
114
+ resource.alternate_ids = [Valkyrie::ID.new('p9s0xfj')]
115
+ resource = persister.save(resource: resource)
116
+
117
+ found = query_service.find_by_alternate_identifier(alternate_identifier: resource.alternate_ids.first)
118
+ expect(found.id).to eq resource.id
119
+ expect(found).to be_persisted
120
+
121
+ found = query_service.find_by_alternate_identifier(alternate_identifier: resource.alternate_ids.first.to_s)
122
+ expect(found.id).to eq resource.id
123
+ expect(found).to be_persisted
124
+ end
125
+
126
+ # Not a use case that Hyrax has; everything has to have an alternate_id
127
+ # We can't make this test pass because we can't persist an object without
128
+ # an alternate_id
129
+ xit 'raises a Hyrax::ObjectNotFoundError when persisted objects do not have alternate_ids' do
130
+ persister.save(resource: SecondResource.new)
131
+ expect { query_service.find_by_alternate_identifier(alternate_identifier: Valkyrie::ID.new("123123123")) }.to raise_error Hyrax::ObjectNotFoundError
132
+ end
133
+
134
+ it "raises a Hyrax::ObjectNotFoundError for a non-found alternate identifier" do
135
+ expect { query_service.find_by_alternate_identifier(alternate_identifier: Valkyrie::ID.new("123123123")) }.to raise_error Hyrax::ObjectNotFoundError
136
+ end
137
+
138
+ it 'raises an error if the alternate identifier is not a Valkyrie::ID or a string' do
139
+ expect { query_service.find_by_alternate_identifier(alternate_identifier: 123) }.to raise_error ArgumentError
140
+ end
141
+
142
+ it 'can have multiple alternate identifiers' do
143
+ resource = resource_class.new
144
+ resource.alternate_ids = [Valkyrie::ID.new('p9s0xfj'), Valkyrie::ID.new('jks0xfj')]
145
+ resource = persister.save(resource: resource)
146
+
147
+ found = query_service.find_by_alternate_identifier(alternate_identifier: resource.alternate_ids.first)
148
+ expect(found.id).to eq resource.id
149
+ expect(found).to be_persisted
150
+
151
+ found = query_service.find_by_alternate_identifier(alternate_identifier: resource.alternate_ids.last)
152
+ expect(found.id).to eq resource.id
153
+ expect(found).to be_persisted
154
+ end
155
+
156
+ context 'when use_valkyrie: false' do
157
+ it 'returns an ActiveFedora object' do
158
+ resource = resource_class.new
159
+ resource.alternate_ids = [Valkyrie::ID.new('p9s0xfj')]
160
+ resource = persister.save(resource: resource)
161
+ id = resource.alternate_ids.first
162
+
163
+ found = query_service.find_by_alternate_identifier(alternate_identifier: id, use_valkyrie: false)
164
+ expect(found.id).to eq resource.id.id
165
+ expect(found).to be_persisted
166
+ expect(found).to be_a(ActiveFedora::Base)
167
+ end
168
+
169
+ it 'returns an ActiveFedora error' do
170
+ expect { query_service.find_by_alternate_identifier(alternate_identifier: Valkyrie::ID.new("123123123"), use_valkyrie: false) }.to raise_error ActiveFedora::ObjectNotFoundError
171
+ end
172
+ end
173
+ end
174
+
175
+ describe ".find_many_by_ids" do
176
+ let!(:resource) { persister.save(resource: resource_class.new) }
177
+ let!(:resource2) { persister.save(resource: resource_class.new) }
178
+ let!(:resource3) { persister.save(resource: resource_class.new) }
179
+
180
+ it "returns an array of resources by ids or string representation ids" do
181
+ found = query_service.find_many_by_ids(ids: [resource.id, resource2.id])
182
+ expect(found.map(&:id)).to contain_exactly resource.id, resource2.id
183
+
184
+ found = query_service.find_many_by_ids(ids: [resource.id.to_s, resource2.id.to_s])
185
+ expect(found.map(&:id)).to contain_exactly resource.id, resource2.id
186
+ end
187
+
188
+ it "returns a partial list for a non-found ID" do
189
+ found = query_service.find_many_by_ids(ids: [resource.id, Valkyrie::ID.new("123123123")])
190
+ expect(found.map(&:id)).to contain_exactly resource.id
191
+ end
192
+
193
+ it "returns an empty list if no ids were found" do
194
+ found = query_service.find_many_by_ids(ids: [Valkyrie::ID.new("you-cannot-find-me"), Valkyrie::ID.new("123123123")])
195
+ expect(found.map(&:id)).to eq []
196
+ end
197
+
198
+ it 'raises an error if any id is not a Valkyrie::ID or a string' do
199
+ expect { query_service.find_many_by_ids(ids: [resource.id, 123]) }.to raise_error ArgumentError
200
+ end
201
+
202
+ it "removes duplicates" do
203
+ found = query_service.find_many_by_ids(ids: [resource.id, resource2.id, resource.id])
204
+ expect(found.map(&:id)).to contain_exactly resource.id, resource2.id
205
+ end
206
+ end
207
+
208
+ describe ".find_members" do
209
+ context "without filtering by model" do
210
+ let(:af_resource_class) { GenericWork }
211
+ subject { query_service.find_members(resource: parent) }
212
+
213
+ context "when the object has members" do
214
+ let!(:child1) { persister.save(resource: resource_class.new(title: ['Child 1'])) }
215
+ let!(:child2) { persister.save(resource: resource_class.new(title: ['Child 2'])) }
216
+ let(:parent) { persister.save(resource: resource_class.new(title: ['Parent'], member_ids: [child2.id, child1.id])) }
217
+
218
+ it "returns all a resource's members in order" do
219
+ expect(subject.map(&:id).to_a).to eq [child2.id, child1.id]
220
+ end
221
+
222
+ context "when something is member more than once" do
223
+ let(:parent) { persister.save(resource: resource_class.new(title: ['Parent'], member_ids: [child1.id, child2.id, child1.id])) }
224
+ xit "includes duplicates" do
225
+ expect(subject.map(&:id).to_a).to eq [child1.id, child2.id, child1.id]
226
+ end
227
+ end
228
+ end
229
+
230
+ context "when there's no resource ID" do
231
+ let(:parent) { resource_class.new(title: ['Parent']) }
232
+
233
+ it "doesn't error" do
234
+ expect(subject).not_to eq nil
235
+ expect(subject.to_a).to eq []
236
+ end
237
+ end
238
+
239
+ context "when there are no members" do
240
+ let(:parent) { persister.save(resource: resource_class.new(title: ['Parent'])) }
241
+
242
+ it "returns an empty array" do
243
+ expect(subject.to_a).to eq []
244
+ end
245
+ end
246
+
247
+ context "when the model doesn't have member_ids" do
248
+ let(:parent) { persister.save(resource: image_resource_class.new) }
249
+
250
+ it "returns an empty array" do
251
+ expect(subject.to_a).to eq []
252
+ end
253
+ end
254
+ end
255
+
256
+ context "filtering by model" do
257
+ subject { query_service.find_members(resource: parent, model: resource_class) }
258
+ let(:gw_resource_class) { GenericWork }
259
+ let(:parent_resource_class) { Wings::ModelTransformer.to_valkyrie_resource_class(klass: gw_resource_class) }
260
+
261
+ context "when the object has members" do
262
+ let(:child1) { persister.save(resource: resource_class.new(title: ['Child 1'])) }
263
+ let(:child2) { persister.save(resource: parent_resource_class.new(title: ['Child 2'])) }
264
+ let(:child3) { persister.save(resource: resource_class.new(title: ['Child 3'])) }
265
+ let(:parent) { persister.save(resource: parent_resource_class.new(title: ['Parent'], member_ids: [child3.id, child2.id, child1.id])) }
266
+
267
+ it "returns all a resource's members in order" do
268
+ expect(subject.map(&:id).to_a).to eq [child3.id, child1.id]
269
+ end
270
+ end
271
+
272
+ context "when there are no members that match the filter" do
273
+ let(:child2) { persister.save(resource: parent_resource_class.new(title: ['Child 2'])) }
274
+ let(:parent) { persister.save(resource: parent_resource_class.new(title: ['Parent'], member_ids: [child2.id])) }
275
+
276
+ it "returns an empty array" do
277
+ expect(subject.to_a).to eq []
278
+ end
279
+ end
280
+ end
281
+ end
282
+
283
+ describe ".find_references_by" do
284
+ context "when the property is unordered" do
285
+ it "returns all references given in a property" do
286
+ parent = persister.save(resource: resource_class.new(title: ['Parent']))
287
+ parent2 = persister.save(resource: resource_class.new(title: ['Parent 2']))
288
+ child = persister.save(resource: resource_class.new(title: ['Child'], a_member_of: [parent.id, parent2.id]))
289
+ persister.save(resource: resource_class.new(title: ['Another Resource']))
290
+
291
+ expect(query_service.find_references_by(resource: child, property: :a_member_of).map(&:id).to_a).to contain_exactly parent.id, parent2.id
292
+ end
293
+
294
+ it "returns an empty array if there are none" do
295
+ child = persister.save(resource: resource_class.new(title: ['Child']))
296
+ expect(query_service.find_references_by(resource: child, property: :a_member_of).to_a).to eq []
297
+ end
298
+
299
+ it "removes duplicates" do
300
+ parent = persister.save(resource: resource_class.new)
301
+ child = persister.save(resource: resource_class.new(a_member_of: [parent.id, parent.id]))
302
+ persister.save(resource: resource_class.new)
303
+
304
+ expect(query_service.find_references_by(resource: child, property: :a_member_of).map(&:id).to_a).to contain_exactly parent.id
305
+ end
306
+
307
+ it "returns nothing if reference not found" do
308
+ child = persister.save(resource: resource_class.new(a_member_of: ["123123123"]))
309
+ persister.save(resource: resource_class.new)
310
+
311
+ expect(query_service.find_references_by(resource: child, property: :a_member_of).map(&:id).to_a).to eq []
312
+ end
313
+ end
314
+
315
+ context "when the property is ordered" do
316
+ xit "returns all references in order including duplicates" do
317
+ parent = persister.save(resource: resource_class.new)
318
+ parent2 = persister.save(resource: resource_class.new)
319
+ child = persister.save(resource: resource_class.new(an_ordered_member_of: [parent.id, parent2.id, parent.id]))
320
+ persister.save(resource: resource_class.new)
321
+
322
+ expect(query_service.find_references_by(resource: child, property: :an_ordered_member_of).map(&:id).to_a).to eq [parent.id, parent2.id, parent.id]
323
+ end
324
+
325
+ it "returns nothing if reference not found" do
326
+ child = persister.save(resource: resource_class.new(an_ordered_member_of: ["123123123"]))
327
+ persister.save(resource: resource_class.new)
328
+
329
+ expect(query_service.find_references_by(resource: child, property: :an_ordered_member_of).map(&:id).to_a).to eq []
330
+ end
331
+ end
332
+ end
333
+
334
+ describe ".find_inverse_references_by" do
335
+ context "when the resource is saved" do
336
+ context "when the property is unordered" do
337
+ it "returns everything which references the given resource by the given property" do
338
+ parent = persister.save(resource: resource_class.new(title: ['parent']))
339
+ parent2 = persister.save(resource: resource_class.new(title: ['parent2']))
340
+ child = persister.save(resource: resource_class.new(title: ['child'], a_member_of: [parent.id]))
341
+ child2 = persister.save(resource: resource_class.new(title: ['child2'], a_member_of: [parent.id, parent2.id, parent.id]))
342
+ persister.save(resource: resource_class.new(title: ['resource']))
343
+ persister.save(resource: image_resource_class.new(title: ['resource 2']))
344
+
345
+ expect(query_service.find_inverse_references_by(resource: parent, property: :a_member_of).map(&:id).to_a).to contain_exactly child.id, child2.id
346
+ end
347
+
348
+ it "returns an empty array if there are none" do
349
+ parent = persister.save(resource: resource_class.new(title: ['parent']))
350
+
351
+ expect(query_service.find_inverse_references_by(resource: parent, property: :a_member_of).to_a).to eq []
352
+ end
353
+ end
354
+
355
+ # not yet supported by the wings persister
356
+ context "when the property is ordered" do
357
+ xit "returns everything which references the given resource by the given property" do
358
+ parent = persister.save(resource: resource_class.new)
359
+ child = persister.save(resource: resource_class.new(an_ordered_member_of: [parent.id]))
360
+ child2 = persister.save(resource: resource_class.new(an_ordered_member_of: [parent.id, parent.id]))
361
+ persister.save(resource: resource_class.new)
362
+ persister.save(resource: Valkyrie::Specs::SecondResource.new)
363
+
364
+ expect(query_service.find_inverse_references_by(resource: parent, property: :an_ordered_member_of).map(&:id).to_a).to contain_exactly child.id, child2.id
365
+ end
366
+ end
367
+ end
368
+
369
+ context "when id is passed instead of resource" do
370
+ it "returns everything which references the given resource by the given property" do
371
+ parent = persister.save(resource: resource_class.new(title: ['parent']))
372
+ parent2 = persister.save(resource: resource_class.new(title: ['parent2']))
373
+ child = persister.save(resource: resource_class.new(title: ['child'], a_member_of: [parent.id]))
374
+ child2 = persister.save(resource: resource_class.new(title: ['child2'], a_member_of: [parent.id, parent2.id, parent.id]))
375
+ persister.save(resource: resource_class.new(title: ['resource']))
376
+ persister.save(resource: image_resource_class.new(title: ['resource 2']))
377
+
378
+ expect(query_service.find_inverse_references_by(id: parent.alternate_ids.first, property: :a_member_of).map(&:id).to_a).to contain_exactly child.id, child2.id
379
+ end
380
+ end
381
+
382
+ context "when neither id nor resource is passed" do
383
+ it "raises an error" do
384
+ expect { query_service.find_inverse_references_by(property: :a_member_of) }.to raise_error ArgumentError
385
+ end
386
+ end
387
+
388
+ context "when the resource is not saved" do
389
+ it "raises an error" do
390
+ parent = resource_class.new(title: ['parent'])
391
+
392
+ expect { query_service.find_inverse_references_by(resource: parent, property: :a_member_of).to_a }.to raise_error(ArgumentError, "Resource has no id; is it persisted?")
393
+ end
394
+ end
395
+ end
396
+
397
+ describe ".find_parents" do
398
+ it "returns all parent resources" do
399
+ child1 = persister.save(resource: resource_class.new(title: ['child 1']))
400
+ child2 = persister.save(resource: resource_class.new(title: ['child 2']))
401
+ parent = persister.save(resource: resource_class.new(title: ['parent'], member_ids: [child1.id, child2.id]))
402
+ parent2 = persister.save(resource: resource_class.new(title: ['parent 2'], member_ids: [child1.id]))
403
+
404
+ expect(query_service.find_parents(resource: child1).map(&:id).to_a).to contain_exactly parent.id, parent2.id
405
+ end
406
+
407
+ it "returns an empty array if there are none" do
408
+ child1 = persister.save(resource: resource_class.new(title: ['child 1']))
409
+
410
+ expect(query_service.find_parents(resource: child1).to_a).to eq []
411
+ end
412
+
413
+ it "doesn't return same parent twice" do
414
+ child1 = persister.save(resource: resource_class.new(title: ['child 1']))
415
+ parent = persister.save(resource: resource_class.new(title: ['parent'], member_ids: [child1.id, child1.id]))
416
+ parent2 = persister.save(resource: resource_class.new(title: ['parent 2'], member_ids: [child1.id]))
417
+
418
+ expect(query_service.find_parents(resource: child1).map(&:id).to_a).to contain_exactly parent.id, parent2.id
419
+ end
420
+
421
+ context "when the model doesn't have member_ids" do
422
+ let(:child1) { persister.save(resource: image_resource_class.new) }
423
+
424
+ it "returns an empty array if there are none" do
425
+ expect(query_service.find_parents(resource: child1).to_a).to eq []
426
+ end
427
+ end
428
+ end
429
+
53
430
  describe ".register_query_handler" do
54
431
  before do
55
432
  class QueryHandler
@@ -0,0 +1,4 @@
1
+ require 'spec_helper'
2
+ require 'wings'
3
+
4
+ Dir[File.expand_path(File.join(File.dirname(__FILE__), 'wings', 'support', 'matchers', '**', '*.rb'))].each { |f| require f }
data/template.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  # Hack for https://github.com/rails/rails/issues/35153
2
2
  gsub_file 'Gemfile', /^gem ["']sqlite3["']$/, 'gem "sqlite3", "~> 1.3.0"'
3
- gem 'hyrax', '3.0.0-beta2'
3
+ gem 'hyrax', '3.0.0-beta3'
4
4
  run 'bundle install'
5
5
  generate 'hyrax:install', '-f'
6
6
  rails_command 'db:migrate'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hyrax
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.0.0.pre.beta2
4
+ version: 3.0.0.pre.beta3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Justin Coyne
@@ -14,7 +14,7 @@ authors:
14
14
  autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
- date: 2019-03-11 00:00:00.000000000 Z
17
+ date: 2019-09-10 00:00:00.000000000 Z
18
18
  dependencies:
19
19
  - !ruby/object:Gem::Dependency
20
20
  name: rails
@@ -36,14 +36,14 @@ dependencies:
36
36
  requirements:
37
37
  - - "~>"
38
38
  - !ruby/object:Gem::Version
39
- version: '12.0'
39
+ version: '13.0'
40
40
  type: :runtime
41
41
  prerelease: false
42
42
  version_requirements: !ruby/object:Gem::Requirement
43
43
  requirements:
44
44
  - - "~>"
45
45
  - !ruby/object:Gem::Version
46
- version: '12.0'
46
+ version: '13.0'
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: almond-rails
49
49
  requirement: !ruby/object:Gem::Requirement
@@ -118,14 +118,14 @@ dependencies:
118
118
  name: browse-everything
119
119
  requirement: !ruby/object:Gem::Requirement
120
120
  requirements:
121
- - - "<"
121
+ - - ">="
122
122
  - !ruby/object:Gem::Version
123
123
  version: '0.16'
124
124
  type: :runtime
125
125
  prerelease: false
126
126
  version_requirements: !ruby/object:Gem::Requirement
127
127
  requirements:
128
- - - "<"
128
+ - - ">="
129
129
  - !ruby/object:Gem::Version
130
130
  version: '0.16'
131
131
  - !ruby/object:Gem::Dependency
@@ -272,20 +272,14 @@ dependencies:
272
272
  name: hydra-editor
273
273
  requirement: !ruby/object:Gem::Requirement
274
274
  requirements:
275
- - - ">="
276
- - !ruby/object:Gem::Version
277
- version: '3.3'
278
- - - "<"
275
+ - - "~>"
279
276
  - !ruby/object:Gem::Version
280
277
  version: '5.0'
281
278
  type: :runtime
282
279
  prerelease: false
283
280
  version_requirements: !ruby/object:Gem::Requirement
284
281
  requirements:
285
- - - ">="
286
- - !ruby/object:Gem::Version
287
- version: '3.3'
288
- - - "<"
282
+ - - "~>"
289
283
  - !ruby/object:Gem::Version
290
284
  version: '5.0'
291
285
  - !ruby/object:Gem::Dependency
@@ -294,14 +288,14 @@ dependencies:
294
288
  requirements:
295
289
  - - ">="
296
290
  - !ruby/object:Gem::Version
297
- version: 10.6.1
291
+ version: 10.7.0
298
292
  type: :runtime
299
293
  prerelease: false
300
294
  version_requirements: !ruby/object:Gem::Requirement
301
295
  requirements:
302
296
  - - ">="
303
297
  - !ruby/object:Gem::Version
304
- version: 10.6.1
298
+ version: 10.7.0
305
299
  - !ruby/object:Gem::Dependency
306
300
  name: hydra-works
307
301
  requirement: !ruby/object:Gem::Requirement
@@ -331,7 +325,7 @@ dependencies:
331
325
  version: '0.3'
332
326
  - - "<"
333
327
  - !ruby/object:Gem::Version
334
- version: '0.6'
328
+ version: '0.7'
335
329
  type: :runtime
336
330
  prerelease: false
337
331
  version_requirements: !ruby/object:Gem::Requirement
@@ -341,7 +335,7 @@ dependencies:
341
335
  version: '0.3'
342
336
  - - "<"
343
337
  - !ruby/object:Gem::Version
344
- version: '0.6'
338
+ version: '0.7'
345
339
  - !ruby/object:Gem::Dependency
346
340
  name: jquery-datatables-rails
347
341
  requirement: !ruby/object:Gem::Requirement
@@ -530,20 +524,6 @@ dependencies:
530
524
  - - ">="
531
525
  - !ruby/object:Gem::Version
532
526
  version: 0.1.2
533
- - !ruby/object:Gem::Dependency
534
- name: pul_uv_rails
535
- requirement: !ruby/object:Gem::Requirement
536
- requirements:
537
- - - "~>"
538
- - !ruby/object:Gem::Version
539
- version: '2.0'
540
- type: :runtime
541
- prerelease: false
542
- version_requirements: !ruby/object:Gem::Requirement
543
- requirements:
544
- - - "~>"
545
- - !ruby/object:Gem::Version
546
- version: '2.0'
547
527
  - !ruby/object:Gem::Dependency
548
528
  name: qa
549
529
  requirement: !ruby/object:Gem::Requirement
@@ -702,14 +682,14 @@ dependencies:
702
682
  requirements:
703
683
  - - "~>"
704
684
  - !ruby/object:Gem::Version
705
- version: 2.0.0.pre.rc3
685
+ version: '1.6'
706
686
  type: :runtime
707
687
  prerelease: false
708
688
  version_requirements: !ruby/object:Gem::Requirement
709
689
  requirements:
710
690
  - - "~>"
711
691
  - !ruby/object:Gem::Version
712
- version: 2.0.0.pre.rc3
692
+ version: '1.6'
713
693
  - !ruby/object:Gem::Dependency
714
694
  name: capybara
715
695
  requirement: !ruby/object:Gem::Requirement
@@ -1048,6 +1028,20 @@ dependencies:
1048
1028
  - - "~>"
1049
1029
  - !ruby/object:Gem::Version
1050
1030
  version: '3.1'
1031
+ - !ruby/object:Gem::Dependency
1032
+ name: webdrivers
1033
+ requirement: !ruby/object:Gem::Requirement
1034
+ requirements:
1035
+ - - "~>"
1036
+ - !ruby/object:Gem::Version
1037
+ version: '3.0'
1038
+ type: :development
1039
+ prerelease: false
1040
+ version_requirements: !ruby/object:Gem::Requirement
1041
+ requirements:
1042
+ - - "~>"
1043
+ - !ruby/object:Gem::Version
1044
+ version: '3.0'
1051
1045
  - !ruby/object:Gem::Dependency
1052
1046
  name: webmock
1053
1047
  requirement: !ruby/object:Gem::Requirement
@@ -1063,25 +1057,19 @@ dependencies:
1063
1057
  - !ruby/object:Gem::Version
1064
1058
  version: '0'
1065
1059
  - !ruby/object:Gem::Dependency
1066
- name: simple_form
1060
+ name: sass-rails
1067
1061
  requirement: !ruby/object:Gem::Requirement
1068
1062
  requirements:
1069
1063
  - - "~>"
1070
1064
  - !ruby/object:Gem::Version
1071
- version: '3.2'
1072
- - - "<="
1073
- - !ruby/object:Gem::Version
1074
- version: 3.5.0
1065
+ version: '5.0'
1075
1066
  type: :runtime
1076
1067
  prerelease: false
1077
1068
  version_requirements: !ruby/object:Gem::Requirement
1078
1069
  requirements:
1079
1070
  - - "~>"
1080
1071
  - !ruby/object:Gem::Version
1081
- version: '3.2'
1082
- - - "<="
1083
- - !ruby/object:Gem::Version
1084
- version: 3.5.0
1072
+ version: '5.0'
1085
1073
  description: Hyrax is a featureful Samvera front-end based on the latest and greatest
1086
1074
  Samvera software components.
1087
1075
  email:
@@ -1110,17 +1098,18 @@ files:
1110
1098
  - ".github/stale.yml"
1111
1099
  - ".gitignore"
1112
1100
  - ".hound.yml"
1101
+ - ".regen"
1113
1102
  - ".rspec"
1114
1103
  - ".rubocop.yml"
1115
1104
  - ".rubocop_fixme.yml"
1116
1105
  - ".scss-lint.yml"
1117
- - ".travis.yml"
1118
1106
  - CODE_OF_CONDUCT.md
1119
1107
  - Gemfile
1120
1108
  - LICENSE
1121
1109
  - README.md
1122
1110
  - Rakefile
1123
1111
  - app/actors/hyrax/actors/abstract_actor.rb
1112
+ - app/actors/hyrax/actors/active_fedora_to_valkyrie.rb
1124
1113
  - app/actors/hyrax/actors/add_to_work_actor.rb
1125
1114
  - app/actors/hyrax/actors/apply_order_actor.rb
1126
1115
  - app/actors/hyrax/actors/apply_permission_template_actor.rb
@@ -1149,6 +1138,7 @@ files:
1149
1138
  - app/actors/hyrax/actors/terminator.rb
1150
1139
  - app/actors/hyrax/actors/transactional_request.rb
1151
1140
  - app/actors/hyrax/actors/transfer_request_actor.rb
1141
+ - app/actors/hyrax/actors/valkyrie_to_active_fedora.rb
1152
1142
  - app/assets/images/audio.png
1153
1143
  - app/assets/images/collection.png
1154
1144
  - app/assets/images/default.png
@@ -1431,6 +1421,7 @@ files:
1431
1421
  - app/indexers/hyrax/file_set_indexer.rb
1432
1422
  - app/indexers/hyrax/indexes_workflow.rb
1433
1423
  - app/indexers/hyrax/repository_reindexer.rb
1424
+ - app/indexers/hyrax/valkyrie_indexers/base_indexer.rb
1434
1425
  - app/indexers/hyrax/work_indexer.rb
1435
1426
  - app/inputs/controlled_vocabulary_input.rb
1436
1427
  - app/inputs/multi_value_select_input.rb
@@ -1506,6 +1497,7 @@ files:
1506
1497
  - app/models/concerns/hyrax/suppressible.rb
1507
1498
  - app/models/concerns/hyrax/user.rb
1508
1499
  - app/models/concerns/hyrax/user_usage_stats.rb
1500
+ - app/models/concerns/hyrax/virus_check.rb
1509
1501
  - app/models/concerns/hyrax/with_events.rb
1510
1502
  - app/models/concerns/hyrax/with_file_sets.rb
1511
1503
  - app/models/concerns/hyrax/work_behavior.rb
@@ -1515,23 +1507,29 @@ files:
1515
1507
  - app/models/featured_work_list.rb
1516
1508
  - app/models/file_download_stat.rb
1517
1509
  - app/models/file_view_stat.rb
1510
+ - app/models/hyrax/active_job_proxy.rb
1518
1511
  - app/models/hyrax/avatar_validator.rb
1519
1512
  - app/models/hyrax/batch_create_operation.rb
1520
1513
  - app/models/hyrax/collection_type.rb
1521
1514
  - app/models/hyrax/collection_type_participant.rb
1522
1515
  - app/models/hyrax/contact_form.rb
1523
1516
  - app/models/hyrax/download.rb
1517
+ - app/models/hyrax/embargo.rb
1524
1518
  - app/models/hyrax/event.rb
1525
1519
  - app/models/hyrax/feature.rb
1520
+ - app/models/hyrax/file_metadata.rb
1526
1521
  - app/models/hyrax/group.rb
1522
+ - app/models/hyrax/lease.rb
1527
1523
  - app/models/hyrax/operation.rb
1528
1524
  - app/models/hyrax/orcid_validator.rb
1529
1525
  - app/models/hyrax/pageview.rb
1530
1526
  - app/models/hyrax/permission_template.rb
1531
1527
  - app/models/hyrax/permission_template_access.rb
1528
+ - app/models/hyrax/resource.rb
1532
1529
  - app/models/hyrax/statistic.rb
1533
1530
  - app/models/hyrax/uploaded_file.rb
1534
1531
  - app/models/hyrax/version_committer.rb
1532
+ - app/models/hyrax/virus_scanner.rb
1535
1533
  - app/models/hyrax/workflow_action_info.rb
1536
1534
  - app/models/job_io_wrapper.rb
1537
1535
  - app/models/proxy_deposit_request.rb
@@ -1553,6 +1551,7 @@ files:
1553
1551
  - app/models/sipity/workflow_state.rb
1554
1552
  - app/models/sipity/workflow_state_action.rb
1555
1553
  - app/models/sipity/workflow_state_action_permission.rb
1554
+ - app/models/solr_hit.rb
1556
1555
  - app/models/trophy.rb
1557
1556
  - app/models/user_mailbox.rb
1558
1557
  - app/models/user_stat.rb
@@ -1682,14 +1681,20 @@ files:
1682
1681
  - app/services/hyrax/collections_service.rb
1683
1682
  - app/services/hyrax/contextual_path.rb
1684
1683
  - app/services/hyrax/curation_concern.rb
1684
+ - app/services/hyrax/custom_queries/navigators/child_collections_navigator.rb
1685
+ - app/services/hyrax/custom_queries/navigators/child_filesets_navigator.rb
1686
+ - app/services/hyrax/custom_queries/navigators/child_works_navigator.rb
1687
+ - app/services/hyrax/custom_queries/wings.rb
1685
1688
  - app/services/hyrax/database_migrator.rb
1686
1689
  - app/services/hyrax/default_middleware_stack.rb
1687
1690
  - app/services/hyrax/derivative_path.rb
1688
1691
  - app/services/hyrax/derivative_service.rb
1692
+ - app/services/hyrax/embargo_manager.rb
1689
1693
  - app/services/hyrax/embargo_service.rb
1690
1694
  - app/services/hyrax/file_set_csv_service.rb
1691
1695
  - app/services/hyrax/file_set_derivatives_service.rb
1692
1696
  - app/services/hyrax/file_set_fixity_check_service.rb
1697
+ - app/services/hyrax/file_set_visibility_propagator.rb
1693
1698
  - app/services/hyrax/fixity_check_failure_service.rb
1694
1699
  - app/services/hyrax/form_metadata_service.rb
1695
1700
  - app/services/hyrax/graph_exporter.rb
@@ -1697,6 +1702,7 @@ files:
1697
1702
  - app/services/hyrax/import_url_failure_service.rb
1698
1703
  - app/services/hyrax/indexes_thumbnails.rb
1699
1704
  - app/services/hyrax/institution.rb
1705
+ - app/services/hyrax/lease_manager.rb
1700
1706
  - app/services/hyrax/lease_service.rb
1701
1707
  - app/services/hyrax/license_service.rb
1702
1708
  - app/services/hyrax/list_source_exporter.rb
@@ -1711,11 +1717,15 @@ files:
1711
1717
  - app/services/hyrax/persist_derivatives.rb
1712
1718
  - app/services/hyrax/persist_directly_contained_output_file_service.rb
1713
1719
  - app/services/hyrax/qa_select_service.rb
1720
+ - app/services/hyrax/query_service.rb
1714
1721
  - app/services/hyrax/quick_classification_query.rb
1715
1722
  - app/services/hyrax/repository_fixity_check_service.rb
1716
1723
  - app/services/hyrax/resource_types_service.rb
1724
+ - app/services/hyrax/resource_visibility_propagator.rb
1717
1725
  - app/services/hyrax/restriction_service.rb
1718
1726
  - app/services/hyrax/rights_statement_service.rb
1727
+ - app/services/hyrax/solr_query_builder_service.rb
1728
+ - app/services/hyrax/solr_service.rb
1719
1729
  - app/services/hyrax/statistics/collections/over_time.rb
1720
1730
  - app/services/hyrax/statistics/depositors/summary.rb
1721
1731
  - app/services/hyrax/statistics/file_sets/by_format.rb
@@ -1733,7 +1743,13 @@ files:
1733
1743
  - app/services/hyrax/tolerant_select_service.rb
1734
1744
  - app/services/hyrax/user_stat_importer.rb
1735
1745
  - app/services/hyrax/versioning_service.rb
1746
+ - app/services/hyrax/virus_checker_service.rb
1736
1747
  - app/services/hyrax/visibility_intention.rb
1748
+ - app/services/hyrax/visibility_intention_applicator.rb
1749
+ - app/services/hyrax/visibility_map.rb
1750
+ - app/services/hyrax/visibility_propagator.rb
1751
+ - app/services/hyrax/visibility_reader.rb
1752
+ - app/services/hyrax/visibility_writer.rb
1737
1753
  - app/services/hyrax/work_form_service.rb
1738
1754
  - app/services/hyrax/work_query_service.rb
1739
1755
  - app/services/hyrax/work_thumbnail_path_service.rb
@@ -1764,6 +1780,7 @@ files:
1764
1780
  - app/services/hyrax/workflow/workflow_schema.rb
1765
1781
  - app/services/hyrax/working_directory.rb
1766
1782
  - app/services/hyrax/works/managed_works_service.rb
1783
+ - app/services/hyrax/works/migration_service.rb
1767
1784
  - app/strategies/hyrax/strategies/yaml_strategy.rb
1768
1785
  - app/uploaders/hyrax/avatar_uploader.rb
1769
1786
  - app/uploaders/hyrax/uploaded_file_uploader.rb
@@ -1984,10 +2001,12 @@ files:
1984
2001
  - app/views/hyrax/dashboard/show_user.html.erb
1985
2002
  - app/views/hyrax/dashboard/sidebar/_activity.html.erb
1986
2003
  - app/views/hyrax/dashboard/sidebar/_configuration.html.erb
2004
+ - app/views/hyrax/dashboard/sidebar/_menu_partials.html.erb
1987
2005
  - app/views/hyrax/dashboard/sidebar/_repository_content.html.erb
1988
2006
  - app/views/hyrax/dashboard/sidebar/_tasks.html.erb
1989
2007
  - app/views/hyrax/dashboard/works/_default_group.html.erb
1990
2008
  - app/views/hyrax/dashboard/works/_list_works.html.erb
2009
+ - app/views/hyrax/depositors/_modal_proxy_deny.html.erb
1991
2010
  - app/views/hyrax/depositors/index.html.erb
1992
2011
  - app/views/hyrax/embargoes/_embargo_history.html.erb
1993
2012
  - app/views/hyrax/embargoes/_list_active_embargoes.html.erb
@@ -2131,6 +2150,9 @@ files:
2131
2150
  - app/views/layouts/hyrax.html.erb
2132
2151
  - app/views/layouts/hyrax/1_column.html.erb
2133
2152
  - app/views/layouts/hyrax/dashboard.html.erb
2153
+ - app/views/records/edit_fields/_abstract.html.erb
2154
+ - app/views/records/edit_fields/_access_right.html.erb
2155
+ - app/views/records/edit_fields/_alt_title.html.erb
2134
2156
  - app/views/records/edit_fields/_based_near.html.erb
2135
2157
  - app/views/records/edit_fields/_description.html.erb
2136
2158
  - app/views/records/edit_fields/_language.html.erb
@@ -2138,6 +2160,7 @@ files:
2138
2160
  - app/views/records/edit_fields/_resource_type.html.erb
2139
2161
  - app/views/records/edit_fields/_rights_statement.html.erb
2140
2162
  - app/views/records/edit_fields/_subject.html.erb
2163
+ - app/views/records/edit_fields/_title.html.erb
2141
2164
  - app/views/records/show_fields/_based_near.html.erb
2142
2165
  - app/views/records/show_fields/_contributor.html.erb
2143
2166
  - app/views/records/show_fields/_creator.html.erb
@@ -2165,6 +2188,7 @@ files:
2165
2188
  - config/features.rb
2166
2189
  - config/i18n-tasks.yml
2167
2190
  - config/initializers/hyrax_callbacks.rb
2191
+ - config/initializers/indexing_adapter_initializer.rb
2168
2192
  - config/initializers/samvera-nesting_indexer_initializer.rb
2169
2193
  - config/initializers/simple_form.rb
2170
2194
  - config/locales/hyrax.de.yml
@@ -2221,7 +2245,9 @@ files:
2221
2245
  - lib/generators/hyrax/templates/config/locales/hyrax.zh.yml
2222
2246
  - lib/generators/hyrax/templates/config/mime_types.rb
2223
2247
  - lib/generators/hyrax/templates/config/redis.yml
2248
+ - lib/generators/hyrax/templates/config/solr_wrapper_valkyrie_test.yml
2224
2249
  - lib/generators/hyrax/templates/config/tinymce.yml
2250
+ - lib/generators/hyrax/templates/config/valkyrie_index.yml
2225
2251
  - lib/generators/hyrax/templates/config/zotero.yml
2226
2252
  - lib/generators/hyrax/templates/db/migrate/20160328222152_create_version_committers.rb.erb
2227
2253
  - lib/generators/hyrax/templates/db/migrate/20160328222153_create_checksum_audit_logs.rb.erb
@@ -2278,8 +2304,11 @@ files:
2278
2304
  - lib/generators/hyrax/templates/hyrax.scss
2279
2305
  - lib/generators/hyrax/templates/hyrax_helper.rb
2280
2306
  - lib/generators/hyrax/templates/mediated_deposit_workflow.json.erb
2307
+ - lib/generators/hyrax/templates/package.json
2281
2308
  - lib/generators/hyrax/templates/spec/models/collection_spec.rb
2282
2309
  - lib/generators/hyrax/templates/spec/models/file_set_spec.rb
2310
+ - lib/generators/hyrax/templates/uv-config.json
2311
+ - lib/generators/hyrax/templates/uv.html
2283
2312
  - lib/generators/hyrax/templates/workflow.json.erb
2284
2313
  - lib/generators/hyrax/work/USAGE
2285
2314
  - lib/generators/hyrax/work/templates/README
@@ -2339,7 +2368,9 @@ files:
2339
2368
  - lib/hyrax/transactions/container.rb
2340
2369
  - lib/hyrax/transactions/create_work.rb
2341
2370
  - lib/hyrax/transactions/destroy_work.rb
2371
+ - lib/hyrax/transactions/steps/apply_collection_permission_template.rb
2342
2372
  - lib/hyrax/transactions/steps/apply_permission_template.rb
2373
+ - lib/hyrax/transactions/steps/apply_visibility.rb
2343
2374
  - lib/hyrax/transactions/steps/destroy_work.rb
2344
2375
  - lib/hyrax/transactions/steps/ensure_admin_set.rb
2345
2376
  - lib/hyrax/transactions/steps/ensure_permission_template.rb
@@ -2359,17 +2390,32 @@ files:
2359
2390
  - lib/tasks/migrate.rake
2360
2391
  - lib/tasks/reindex.rake
2361
2392
  - lib/tasks/stats_tasks.rake
2393
+ - lib/tasks/universal_viewer.rake
2362
2394
  - lib/tasks/workflow.rake
2395
+ - lib/valkyrie/indexing/solr/indexing_adapter.rb
2396
+ - lib/valkyrie/indexing_adapter.rb
2363
2397
  - lib/wings.rb
2364
2398
  - lib/wings/active_fedora_converter.rb
2399
+ - lib/wings/converter_value_mapper.rb
2400
+ - lib/wings/hydra/pcdm/models/concerns/collection_valkyrie_behavior.rb
2401
+ - lib/wings/hydra/pcdm/models/concerns/object_valkyrie_behavior.rb
2402
+ - lib/wings/hydra/pcdm/models/concerns/pcdm_valkyrie_behavior.rb
2403
+ - lib/wings/hydra/works/models/concerns/collection_valkyrie_behavior.rb
2404
+ - lib/wings/hydra/works/models/concerns/file_set_valkyrie_behavior.rb
2405
+ - lib/wings/hydra/works/models/concerns/work_valkyrie_behavior.rb
2406
+ - lib/wings/hydra/works/services/add_file_metadata_to_file_set.rb
2365
2407
  - lib/wings/model_transformer.rb
2366
- - lib/wings/resource_factory.rb
2408
+ - lib/wings/models/concerns/collection_behavior.rb
2409
+ - lib/wings/models/multi_checksum.rb
2410
+ - lib/wings/services/file_metadata_builder.rb
2411
+ - lib/wings/services/id_converter_service.rb
2412
+ - lib/wings/transformer_value_mapper.rb
2367
2413
  - lib/wings/valkyrie/metadata_adapter.rb
2368
2414
  - lib/wings/valkyrie/persister.rb
2369
2415
  - lib/wings/valkyrie/query_service.rb
2370
2416
  - lib/wings/valkyrie/resource_factory.rb
2417
+ - lib/wings/valkyrie/storage/active_fedora.rb
2371
2418
  - lib/wings/valkyrizable.rb
2372
- - lib/wings/value_mapper.rb
2373
2419
  - spec/.gitignore
2374
2420
  - spec/abilities/ability_spec.rb
2375
2421
  - spec/abilities/admin_ability_spec.rb
@@ -2383,6 +2429,7 @@ files:
2383
2429
  - spec/abilities/permission_template_ability_spec.rb
2384
2430
  - spec/abilities/proxies_and_transfer_abilities_spec.rb
2385
2431
  - spec/abilities/solr_document_ability_spec.rb
2432
+ - spec/actors/hyrax/actors/active_fedora_to_valkyrie_spec.rb
2386
2433
  - spec/actors/hyrax/actors/apply_order_actor_spec.rb
2387
2434
  - spec/actors/hyrax/actors/apply_permission_template_actor_spec.rb
2388
2435
  - spec/actors/hyrax/actors/attach_members_actor_spec.rb
@@ -2408,6 +2455,7 @@ files:
2408
2455
  - spec/actors/hyrax/actors/ordered_members_actor_spec.rb
2409
2456
  - spec/actors/hyrax/actors/transactional_request_spec.rb
2410
2457
  - spec/actors/hyrax/actors/transfer_request_actor_spec.rb
2458
+ - spec/actors/hyrax/actors/valkyrie_to_active_fedora_spec.rb
2411
2459
  - spec/authorities/qa/authorities/collections_spec.rb
2412
2460
  - spec/authorities/qa/authorities/find_works_spec.rb
2413
2461
  - spec/channels/hyrax/application_cable/channel_spec.rb
@@ -2491,6 +2539,9 @@ files:
2491
2539
  - spec/factories/featured_works.rb
2492
2540
  - spec/factories/file_sets.rb
2493
2541
  - spec/factories/generic_works.rb
2542
+ - spec/factories/hyrax_embargo.rb
2543
+ - spec/factories/hyrax_lease.rb
2544
+ - spec/factories/hyrax_resource.rb
2494
2545
  - spec/factories/object_id.rb
2495
2546
  - spec/factories/operations.rb
2496
2547
  - spec/factories/permission_template_accesses.rb
@@ -2526,6 +2577,7 @@ files:
2526
2577
  - spec/features/delete_work_spec.rb
2527
2578
  - spec/features/edit_content_block_admin_spec.rb
2528
2579
  - spec/features/edit_file_spec.rb
2580
+ - spec/features/edit_pages_admin.spec.rb
2529
2581
  - spec/features/edit_work_spec.rb
2530
2582
  - spec/features/embargo_spec.rb
2531
2583
  - spec/features/homepage_spec.rb
@@ -2564,10 +2616,12 @@ files:
2564
2616
  - spec/fixtures/pdf_fits.xml
2565
2617
  - spec/fixtures/piano_note.wav
2566
2618
  - spec/fixtures/png_fits.xml
2619
+ - spec/fixtures/sample-file.pdf
2567
2620
  - spec/fixtures/sample_mpeg4.mp4
2568
2621
  - spec/fixtures/small_file.txt
2569
2622
  - spec/fixtures/spoken-text.m4a
2570
2623
  - spec/fixtures/txt_fits.xml
2624
+ - spec/fixtures/updated-file.txt
2571
2625
  - spec/fixtures/world.png
2572
2626
  - spec/fixtures/xls_fits.xml
2573
2627
  - spec/fixtures/xml_fits.xml
@@ -2600,7 +2654,9 @@ files:
2600
2654
  - spec/helpers/hyrax_helper_spec.rb
2601
2655
  - spec/hyrax/transactions/create_work_spec.rb
2602
2656
  - spec/hyrax/transactions/destroy_work_spec.rb
2657
+ - spec/hyrax/transactions/steps/apply_collection_permission_template_spec.rb
2603
2658
  - spec/hyrax/transactions/steps/apply_permission_template_spec.rb
2659
+ - spec/hyrax/transactions/steps/apply_visibility_spec.rb
2604
2660
  - spec/hyrax/transactions/steps/destroy_work_spec.rb
2605
2661
  - spec/hyrax/transactions/steps/ensure_admin_set_spec.rb
2606
2662
  - spec/hyrax/transactions/steps/ensure_permission_template_spec.rb
@@ -2608,10 +2664,12 @@ files:
2608
2664
  - spec/hyrax/transactions/steps/set_default_admin_set_spec.rb
2609
2665
  - spec/hyrax/transactions/steps/set_modified_date_spec.rb
2610
2666
  - spec/hyrax/transactions/steps/set_uploaded_date_spec.rb
2667
+ - spec/indexers/hyrax/admin_set_indexer_spec.rb
2611
2668
  - spec/indexers/hyrax/collection_indexer_spec.rb
2612
2669
  - spec/indexers/hyrax/file_set_indexer_spec.rb
2613
2670
  - spec/indexers/hyrax/generic_work_indexer_spec.rb
2614
2671
  - spec/indexers/hyrax/repository_reindexer_spec.rb
2672
+ - spec/indexers/hyrax/valkyrie_indexers/base_indexer_spec.rb
2615
2673
  - spec/inputs/controlled_vocabulary_input_spec.rb
2616
2674
  - spec/inputs/multifile_input_spec.rb
2617
2675
  - spec/javascripts/authority_select_spec.js
@@ -2694,6 +2752,7 @@ files:
2694
2752
  - spec/lib/hyrax/zotero/config_spec.rb
2695
2753
  - spec/lib/hyrax/zotero_spec.rb
2696
2754
  - spec/lib/hyrax_spec.rb
2755
+ - spec/matcher_tests/match_valkyrie_ids_with_af_ids_spec.rb
2697
2756
  - spec/models/admin_set_spec.rb
2698
2757
  - spec/models/batch_upload_item_spec.rb
2699
2758
  - spec/models/checksum_audit_log_spec.rb
@@ -2712,14 +2771,19 @@ files:
2712
2771
  - spec/models/hyrax/collection_type_participant_spec.rb
2713
2772
  - spec/models/hyrax/collection_type_spec.rb
2714
2773
  - spec/models/hyrax/download_spec.rb
2774
+ - spec/models/hyrax/embargo_spec.rb
2775
+ - spec/models/hyrax/file_metadata_spec.rb
2776
+ - spec/models/hyrax/lease_spec.rb
2715
2777
  - spec/models/hyrax/operation_spec.rb
2716
2778
  - spec/models/hyrax/pageview_spec.rb
2717
2779
  - spec/models/hyrax/permission_template_access_spec.rb
2718
2780
  - spec/models/hyrax/permission_template_spec.rb
2719
2781
  - spec/models/hyrax/permissions/readable_permissions_spec.rb
2720
2782
  - spec/models/hyrax/permissions/writable_permissions_spec.rb
2783
+ - spec/models/hyrax/resource_spec.rb
2721
2784
  - spec/models/hyrax/uploaded_file_spec.rb
2722
2785
  - spec/models/hyrax/user_usage_stats_spec.rb
2786
+ - spec/models/hyrax/virus_scanner_spec.rb
2723
2787
  - spec/models/hyrax/work_behavior_spec.rb
2724
2788
  - spec/models/job_io_wrapper_spec.rb
2725
2789
  - spec/models/proxy_deposit_request_spec.rb
@@ -2740,6 +2804,7 @@ files:
2740
2804
  - spec/models/sipity/workflow_state_action_spec.rb
2741
2805
  - spec/models/sipity/workflow_state_spec.rb
2742
2806
  - spec/models/solr_document_spec.rb
2807
+ - spec/models/solr_hit_spec.rb
2743
2808
  - spec/models/trophy_spec.rb
2744
2809
  - spec/models/user_mailbox_spec.rb
2745
2810
  - spec/models/user_spec.rb
@@ -2848,14 +2913,20 @@ files:
2848
2913
  - spec/services/hyrax/collections/permissions_service_spec.rb
2849
2914
  - spec/services/hyrax/collections_service_spec.rb
2850
2915
  - spec/services/hyrax/curation_concern_spec.rb
2916
+ - spec/services/hyrax/custom_queries/navigators/child_collections_navigator_spec.rb
2917
+ - spec/services/hyrax/custom_queries/navigators/child_filesets_navigator_spec.rb
2918
+ - spec/services/hyrax/custom_queries/navigators/child_works_navigator_spec.rb
2919
+ - spec/services/hyrax/custom_queries/wings.rb
2851
2920
  - spec/services/hyrax/database_migrator_spec.rb
2852
2921
  - spec/services/hyrax/default_middleware_stack_spec.rb
2853
2922
  - spec/services/hyrax/derivative_path_spec.rb
2854
2923
  - spec/services/hyrax/derivative_service_spec.rb
2924
+ - spec/services/hyrax/embargo_manager_spec.rb
2855
2925
  - spec/services/hyrax/embargo_service_spec.rb
2856
2926
  - spec/services/hyrax/file_set_csv_service_spec.rb
2857
2927
  - spec/services/hyrax/file_set_derivatives_service_spec.rb
2858
2928
  - spec/services/hyrax/file_set_fixity_check_service_spec.rb
2929
+ - spec/services/hyrax/file_set_visibility_propagator_spec.rb
2859
2930
  - spec/services/hyrax/fixity_check_failure_service_spec.rb
2860
2931
  - spec/services/hyrax/graph_exporter_spec.rb
2861
2932
  - spec/services/hyrax/iiif_authorization_service_spec.rb
@@ -2874,7 +2945,10 @@ files:
2874
2945
  - spec/services/hyrax/quick_classification_query_spec.rb
2875
2946
  - spec/services/hyrax/repository_fixity_check_service_spec.rb
2876
2947
  - spec/services/hyrax/resource_types_service_spec.rb
2948
+ - spec/services/hyrax/resource_visibility_propagator_spec.rb
2877
2949
  - spec/services/hyrax/rights_statement_service_spec.rb
2950
+ - spec/services/hyrax/solr_query_builder_service_spec.rb
2951
+ - spec/services/hyrax/solr_service_spec.rb
2878
2952
  - spec/services/hyrax/statistics/collections/over_time_spec.rb
2879
2953
  - spec/services/hyrax/statistics/depositors/summary_spec.rb
2880
2954
  - spec/services/hyrax/statistics/file_sets/by_format_spec.rb
@@ -2889,7 +2963,10 @@ files:
2889
2963
  - spec/services/hyrax/tolerant_select_service_spec.rb
2890
2964
  - spec/services/hyrax/user_stat_importer_spec.rb
2891
2965
  - spec/services/hyrax/versioning_service_spec.rb
2966
+ - spec/services/hyrax/visibility_intention_applicator_spec.rb
2892
2967
  - spec/services/hyrax/visibility_intention_spec.rb
2968
+ - spec/services/hyrax/visibility_reader_spec.rb
2969
+ - spec/services/hyrax/visibility_writer_spec.rb
2893
2970
  - spec/services/hyrax/work_query_service_spec.rb
2894
2971
  - spec/services/hyrax/workflow/action_taken_service_spec.rb
2895
2972
  - spec/services/hyrax/workflow/activate_object_spec.rb
@@ -2915,10 +2992,14 @@ files:
2915
2992
  - spec/services/hyrax/workflow/workflow_schema_spec.rb
2916
2993
  - spec/services/hyrax/working_directory_spec.rb
2917
2994
  - spec/services/hyrax/works/managed_works_service_spec.rb
2995
+ - spec/services/hyrax/works/migration_service_spec.rb
2918
2996
  - spec/spec_helper.rb
2919
2997
  - spec/strategies/hyrax/strategies/yaml_strategy_spec.rb
2998
+ - spec/support/clean_solr.rb
2920
2999
  - spec/support/controller_level_helpers.rb
3000
+ - spec/support/create_for_repository.rb
2921
3001
  - spec/support/factory_helpers.rb
3002
+ - spec/support/fakes/fake_actor.rb
2922
3003
  - spec/support/fakes/fake_authority.rb
2923
3004
  - spec/support/features.rb
2924
3005
  - spec/support/features/batch_edit_actions.rb
@@ -2928,6 +3009,10 @@ files:
2928
3009
  - spec/support/logging_formatter.rb
2929
3010
  - spec/support/matchers/api_responses.rb
2930
3011
  - spec/support/matchers/collection_type_property_matchers.rb
3012
+ - spec/support/matchers/embargo.rb
3013
+ - spec/support/matchers/lease.rb
3014
+ - spec/support/matchers/match_valkyrie_ids_with_af_ids.rb
3015
+ - spec/support/matchers/permission.rb
2931
3016
  - spec/support/matchers/response_matchers.rb
2932
3017
  - spec/support/optional_example.rb
2933
3018
  - spec/support/rake.rb
@@ -2935,10 +3020,13 @@ files:
2935
3020
  - spec/support/spec_statistic.rb
2936
3021
  - spec/support/speedup.rb
2937
3022
  - spec/support/statistic_helper.rb
3023
+ - spec/support/valkyrie_indexing.rb
2938
3024
  - spec/tasks/rake_spec.rb
2939
3025
  - spec/test_app_templates/Gemfile.extra
2940
3026
  - spec/test_app_templates/disable_animations_in_test_environment.rb
2941
3027
  - spec/test_app_templates/lib/generators/test_app_generator.rb
3028
+ - spec/valkyrie/indexing/solr/indexing_adapter_spec.rb
3029
+ - spec/valkyrie/indexing_adapter_spec.rb
2942
3030
  - spec/views/_flash_msg.html.erb_spec.rb
2943
3031
  - spec/views/_user_util_links.html.erb_spec.rb
2944
3032
  - spec/views/catalog/_index_list_default.html.erb_spec.rb
@@ -3066,18 +3154,31 @@ files:
3066
3154
  - spec/views/layouts/error.html.erb_spec.rb
3067
3155
  - spec/views/pages/edit.html.erb_spec.rb
3068
3156
  - spec/views/pages/show.html.erb_spec.rb
3157
+ - spec/views/records/edit_fields/_alt_title.html.erb_spec.rb
3069
3158
  - spec/views/records/edit_fields/_based_near.html.erb_spec.rb
3070
3159
  - spec/views/records/edit_fields/_description.html.erb_spec.rb
3071
3160
  - spec/views/records/edit_fields/_language.html.erb_spec.rb
3072
3161
  - spec/views/records/edit_fields/_subject.html.erb_spec.rb
3162
+ - spec/views/records/edit_fields/_title.html.erb_spec.rb
3073
3163
  - spec/views/shared/select_work_type_modal.html.erb_spec.rb
3074
3164
  - spec/wings/active_fedora_converter_spec.rb
3165
+ - spec/wings/converter_value_mapper_spec.rb
3166
+ - spec/wings/hydra/pcdm/models/concerns/collection_valkyrie_behavior_spec.rb
3167
+ - spec/wings/hydra/pcdm/models/concerns/object_valkyrie_behavior_spec.rb
3168
+ - spec/wings/hydra/pcdm/models/concerns/pcdm_valkyrie_behavior_spec.rb
3169
+ - spec/wings/hydra/works/models/concerns/collection_valkyrie_behavior_spec.rb
3170
+ - spec/wings/hydra/works/models/concerns/file_set_valkyrie_behavior_spec.rb
3171
+ - spec/wings/hydra/works/models/concerns/work_valkyrie_behavior_spec.rb
3075
3172
  - spec/wings/model_transformer_spec.rb
3173
+ - spec/wings/models/concerns/collection_behavior_spec.rb
3174
+ - spec/wings/services/file_metadata_builder_spec.rb
3175
+ - spec/wings/services/id_converter_service_spec.rb
3176
+ - spec/wings/transformer_value_mapper_spec.rb
3076
3177
  - spec/wings/valkyrie/metadata_adapter_spec.rb
3077
3178
  - spec/wings/valkyrie/persister_spec.rb
3078
3179
  - spec/wings/valkyrie/query_service_spec.rb
3079
3180
  - spec/wings/valkyrie/resource_factory_spec.rb
3080
- - spec/wings/value_mapper_spec.rb
3181
+ - spec/wings_helper.rb
3081
3182
  - spec/wings_spec.rb
3082
3183
  - tasks/hyrax_dev.rake
3083
3184
  - template.rb
@@ -3118,7 +3219,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
3118
3219
  - !ruby/object:Gem::Version
3119
3220
  version: 1.3.1
3120
3221
  requirements: []
3121
- rubygems_version: 3.0.1
3222
+ rubygems_version: 3.0.3
3122
3223
  signing_key:
3123
3224
  specification_version: 4
3124
3225
  summary: Hyrax is a front-end based on the robust Samvera framework, providing a user
@@ -3140,6 +3241,7 @@ test_files:
3140
3241
  - spec/abilities/permission_template_ability_spec.rb
3141
3242
  - spec/abilities/proxies_and_transfer_abilities_spec.rb
3142
3243
  - spec/abilities/solr_document_ability_spec.rb
3244
+ - spec/actors/hyrax/actors/active_fedora_to_valkyrie_spec.rb
3143
3245
  - spec/actors/hyrax/actors/apply_order_actor_spec.rb
3144
3246
  - spec/actors/hyrax/actors/apply_permission_template_actor_spec.rb
3145
3247
  - spec/actors/hyrax/actors/attach_members_actor_spec.rb
@@ -3165,6 +3267,7 @@ test_files:
3165
3267
  - spec/actors/hyrax/actors/ordered_members_actor_spec.rb
3166
3268
  - spec/actors/hyrax/actors/transactional_request_spec.rb
3167
3269
  - spec/actors/hyrax/actors/transfer_request_actor_spec.rb
3270
+ - spec/actors/hyrax/actors/valkyrie_to_active_fedora_spec.rb
3168
3271
  - spec/authorities/qa/authorities/collections_spec.rb
3169
3272
  - spec/authorities/qa/authorities/find_works_spec.rb
3170
3273
  - spec/channels/hyrax/application_cable/channel_spec.rb
@@ -3248,6 +3351,9 @@ test_files:
3248
3351
  - spec/factories/featured_works.rb
3249
3352
  - spec/factories/file_sets.rb
3250
3353
  - spec/factories/generic_works.rb
3354
+ - spec/factories/hyrax_embargo.rb
3355
+ - spec/factories/hyrax_lease.rb
3356
+ - spec/factories/hyrax_resource.rb
3251
3357
  - spec/factories/object_id.rb
3252
3358
  - spec/factories/operations.rb
3253
3359
  - spec/factories/permission_template_accesses.rb
@@ -3283,6 +3389,7 @@ test_files:
3283
3389
  - spec/features/delete_work_spec.rb
3284
3390
  - spec/features/edit_content_block_admin_spec.rb
3285
3391
  - spec/features/edit_file_spec.rb
3392
+ - spec/features/edit_pages_admin.spec.rb
3286
3393
  - spec/features/edit_work_spec.rb
3287
3394
  - spec/features/embargo_spec.rb
3288
3395
  - spec/features/homepage_spec.rb
@@ -3321,10 +3428,12 @@ test_files:
3321
3428
  - spec/fixtures/pdf_fits.xml
3322
3429
  - spec/fixtures/piano_note.wav
3323
3430
  - spec/fixtures/png_fits.xml
3431
+ - spec/fixtures/sample-file.pdf
3324
3432
  - spec/fixtures/sample_mpeg4.mp4
3325
3433
  - spec/fixtures/small_file.txt
3326
3434
  - spec/fixtures/spoken-text.m4a
3327
3435
  - spec/fixtures/txt_fits.xml
3436
+ - spec/fixtures/updated-file.txt
3328
3437
  - spec/fixtures/world.png
3329
3438
  - spec/fixtures/xls_fits.xml
3330
3439
  - spec/fixtures/xml_fits.xml
@@ -3357,7 +3466,9 @@ test_files:
3357
3466
  - spec/helpers/hyrax_helper_spec.rb
3358
3467
  - spec/hyrax/transactions/create_work_spec.rb
3359
3468
  - spec/hyrax/transactions/destroy_work_spec.rb
3469
+ - spec/hyrax/transactions/steps/apply_collection_permission_template_spec.rb
3360
3470
  - spec/hyrax/transactions/steps/apply_permission_template_spec.rb
3471
+ - spec/hyrax/transactions/steps/apply_visibility_spec.rb
3361
3472
  - spec/hyrax/transactions/steps/destroy_work_spec.rb
3362
3473
  - spec/hyrax/transactions/steps/ensure_admin_set_spec.rb
3363
3474
  - spec/hyrax/transactions/steps/ensure_permission_template_spec.rb
@@ -3365,10 +3476,12 @@ test_files:
3365
3476
  - spec/hyrax/transactions/steps/set_default_admin_set_spec.rb
3366
3477
  - spec/hyrax/transactions/steps/set_modified_date_spec.rb
3367
3478
  - spec/hyrax/transactions/steps/set_uploaded_date_spec.rb
3479
+ - spec/indexers/hyrax/admin_set_indexer_spec.rb
3368
3480
  - spec/indexers/hyrax/collection_indexer_spec.rb
3369
3481
  - spec/indexers/hyrax/file_set_indexer_spec.rb
3370
3482
  - spec/indexers/hyrax/generic_work_indexer_spec.rb
3371
3483
  - spec/indexers/hyrax/repository_reindexer_spec.rb
3484
+ - spec/indexers/hyrax/valkyrie_indexers/base_indexer_spec.rb
3372
3485
  - spec/inputs/controlled_vocabulary_input_spec.rb
3373
3486
  - spec/inputs/multifile_input_spec.rb
3374
3487
  - spec/javascripts/authority_select_spec.js
@@ -3451,6 +3564,7 @@ test_files:
3451
3564
  - spec/lib/hyrax/zotero/config_spec.rb
3452
3565
  - spec/lib/hyrax/zotero_spec.rb
3453
3566
  - spec/lib/hyrax_spec.rb
3567
+ - spec/matcher_tests/match_valkyrie_ids_with_af_ids_spec.rb
3454
3568
  - spec/models/admin_set_spec.rb
3455
3569
  - spec/models/batch_upload_item_spec.rb
3456
3570
  - spec/models/checksum_audit_log_spec.rb
@@ -3469,14 +3583,19 @@ test_files:
3469
3583
  - spec/models/hyrax/collection_type_participant_spec.rb
3470
3584
  - spec/models/hyrax/collection_type_spec.rb
3471
3585
  - spec/models/hyrax/download_spec.rb
3586
+ - spec/models/hyrax/embargo_spec.rb
3587
+ - spec/models/hyrax/file_metadata_spec.rb
3588
+ - spec/models/hyrax/lease_spec.rb
3472
3589
  - spec/models/hyrax/operation_spec.rb
3473
3590
  - spec/models/hyrax/pageview_spec.rb
3474
3591
  - spec/models/hyrax/permission_template_access_spec.rb
3475
3592
  - spec/models/hyrax/permission_template_spec.rb
3476
3593
  - spec/models/hyrax/permissions/readable_permissions_spec.rb
3477
3594
  - spec/models/hyrax/permissions/writable_permissions_spec.rb
3595
+ - spec/models/hyrax/resource_spec.rb
3478
3596
  - spec/models/hyrax/uploaded_file_spec.rb
3479
3597
  - spec/models/hyrax/user_usage_stats_spec.rb
3598
+ - spec/models/hyrax/virus_scanner_spec.rb
3480
3599
  - spec/models/hyrax/work_behavior_spec.rb
3481
3600
  - spec/models/job_io_wrapper_spec.rb
3482
3601
  - spec/models/proxy_deposit_request_spec.rb
@@ -3497,6 +3616,7 @@ test_files:
3497
3616
  - spec/models/sipity/workflow_state_action_spec.rb
3498
3617
  - spec/models/sipity/workflow_state_spec.rb
3499
3618
  - spec/models/solr_document_spec.rb
3619
+ - spec/models/solr_hit_spec.rb
3500
3620
  - spec/models/trophy_spec.rb
3501
3621
  - spec/models/user_mailbox_spec.rb
3502
3622
  - spec/models/user_spec.rb
@@ -3605,14 +3725,20 @@ test_files:
3605
3725
  - spec/services/hyrax/collections/permissions_service_spec.rb
3606
3726
  - spec/services/hyrax/collections_service_spec.rb
3607
3727
  - spec/services/hyrax/curation_concern_spec.rb
3728
+ - spec/services/hyrax/custom_queries/navigators/child_collections_navigator_spec.rb
3729
+ - spec/services/hyrax/custom_queries/navigators/child_filesets_navigator_spec.rb
3730
+ - spec/services/hyrax/custom_queries/navigators/child_works_navigator_spec.rb
3731
+ - spec/services/hyrax/custom_queries/wings.rb
3608
3732
  - spec/services/hyrax/database_migrator_spec.rb
3609
3733
  - spec/services/hyrax/default_middleware_stack_spec.rb
3610
3734
  - spec/services/hyrax/derivative_path_spec.rb
3611
3735
  - spec/services/hyrax/derivative_service_spec.rb
3736
+ - spec/services/hyrax/embargo_manager_spec.rb
3612
3737
  - spec/services/hyrax/embargo_service_spec.rb
3613
3738
  - spec/services/hyrax/file_set_csv_service_spec.rb
3614
3739
  - spec/services/hyrax/file_set_derivatives_service_spec.rb
3615
3740
  - spec/services/hyrax/file_set_fixity_check_service_spec.rb
3741
+ - spec/services/hyrax/file_set_visibility_propagator_spec.rb
3616
3742
  - spec/services/hyrax/fixity_check_failure_service_spec.rb
3617
3743
  - spec/services/hyrax/graph_exporter_spec.rb
3618
3744
  - spec/services/hyrax/iiif_authorization_service_spec.rb
@@ -3631,7 +3757,10 @@ test_files:
3631
3757
  - spec/services/hyrax/quick_classification_query_spec.rb
3632
3758
  - spec/services/hyrax/repository_fixity_check_service_spec.rb
3633
3759
  - spec/services/hyrax/resource_types_service_spec.rb
3760
+ - spec/services/hyrax/resource_visibility_propagator_spec.rb
3634
3761
  - spec/services/hyrax/rights_statement_service_spec.rb
3762
+ - spec/services/hyrax/solr_query_builder_service_spec.rb
3763
+ - spec/services/hyrax/solr_service_spec.rb
3635
3764
  - spec/services/hyrax/statistics/collections/over_time_spec.rb
3636
3765
  - spec/services/hyrax/statistics/depositors/summary_spec.rb
3637
3766
  - spec/services/hyrax/statistics/file_sets/by_format_spec.rb
@@ -3646,7 +3775,10 @@ test_files:
3646
3775
  - spec/services/hyrax/tolerant_select_service_spec.rb
3647
3776
  - spec/services/hyrax/user_stat_importer_spec.rb
3648
3777
  - spec/services/hyrax/versioning_service_spec.rb
3778
+ - spec/services/hyrax/visibility_intention_applicator_spec.rb
3649
3779
  - spec/services/hyrax/visibility_intention_spec.rb
3780
+ - spec/services/hyrax/visibility_reader_spec.rb
3781
+ - spec/services/hyrax/visibility_writer_spec.rb
3650
3782
  - spec/services/hyrax/work_query_service_spec.rb
3651
3783
  - spec/services/hyrax/workflow/action_taken_service_spec.rb
3652
3784
  - spec/services/hyrax/workflow/activate_object_spec.rb
@@ -3672,10 +3804,14 @@ test_files:
3672
3804
  - spec/services/hyrax/workflow/workflow_schema_spec.rb
3673
3805
  - spec/services/hyrax/working_directory_spec.rb
3674
3806
  - spec/services/hyrax/works/managed_works_service_spec.rb
3807
+ - spec/services/hyrax/works/migration_service_spec.rb
3675
3808
  - spec/spec_helper.rb
3676
3809
  - spec/strategies/hyrax/strategies/yaml_strategy_spec.rb
3810
+ - spec/support/clean_solr.rb
3677
3811
  - spec/support/controller_level_helpers.rb
3812
+ - spec/support/create_for_repository.rb
3678
3813
  - spec/support/factory_helpers.rb
3814
+ - spec/support/fakes/fake_actor.rb
3679
3815
  - spec/support/fakes/fake_authority.rb
3680
3816
  - spec/support/features.rb
3681
3817
  - spec/support/features/batch_edit_actions.rb
@@ -3685,6 +3821,10 @@ test_files:
3685
3821
  - spec/support/logging_formatter.rb
3686
3822
  - spec/support/matchers/api_responses.rb
3687
3823
  - spec/support/matchers/collection_type_property_matchers.rb
3824
+ - spec/support/matchers/embargo.rb
3825
+ - spec/support/matchers/lease.rb
3826
+ - spec/support/matchers/match_valkyrie_ids_with_af_ids.rb
3827
+ - spec/support/matchers/permission.rb
3688
3828
  - spec/support/matchers/response_matchers.rb
3689
3829
  - spec/support/optional_example.rb
3690
3830
  - spec/support/rake.rb
@@ -3692,10 +3832,13 @@ test_files:
3692
3832
  - spec/support/spec_statistic.rb
3693
3833
  - spec/support/speedup.rb
3694
3834
  - spec/support/statistic_helper.rb
3835
+ - spec/support/valkyrie_indexing.rb
3695
3836
  - spec/tasks/rake_spec.rb
3696
3837
  - spec/test_app_templates/Gemfile.extra
3697
3838
  - spec/test_app_templates/disable_animations_in_test_environment.rb
3698
3839
  - spec/test_app_templates/lib/generators/test_app_generator.rb
3840
+ - spec/valkyrie/indexing/solr/indexing_adapter_spec.rb
3841
+ - spec/valkyrie/indexing_adapter_spec.rb
3699
3842
  - spec/views/_flash_msg.html.erb_spec.rb
3700
3843
  - spec/views/_user_util_links.html.erb_spec.rb
3701
3844
  - spec/views/catalog/_index_list_default.html.erb_spec.rb
@@ -3823,16 +3966,29 @@ test_files:
3823
3966
  - spec/views/layouts/error.html.erb_spec.rb
3824
3967
  - spec/views/pages/edit.html.erb_spec.rb
3825
3968
  - spec/views/pages/show.html.erb_spec.rb
3969
+ - spec/views/records/edit_fields/_alt_title.html.erb_spec.rb
3826
3970
  - spec/views/records/edit_fields/_based_near.html.erb_spec.rb
3827
3971
  - spec/views/records/edit_fields/_description.html.erb_spec.rb
3828
3972
  - spec/views/records/edit_fields/_language.html.erb_spec.rb
3829
3973
  - spec/views/records/edit_fields/_subject.html.erb_spec.rb
3974
+ - spec/views/records/edit_fields/_title.html.erb_spec.rb
3830
3975
  - spec/views/shared/select_work_type_modal.html.erb_spec.rb
3831
3976
  - spec/wings/active_fedora_converter_spec.rb
3977
+ - spec/wings/converter_value_mapper_spec.rb
3978
+ - spec/wings/hydra/pcdm/models/concerns/collection_valkyrie_behavior_spec.rb
3979
+ - spec/wings/hydra/pcdm/models/concerns/object_valkyrie_behavior_spec.rb
3980
+ - spec/wings/hydra/pcdm/models/concerns/pcdm_valkyrie_behavior_spec.rb
3981
+ - spec/wings/hydra/works/models/concerns/collection_valkyrie_behavior_spec.rb
3982
+ - spec/wings/hydra/works/models/concerns/file_set_valkyrie_behavior_spec.rb
3983
+ - spec/wings/hydra/works/models/concerns/work_valkyrie_behavior_spec.rb
3832
3984
  - spec/wings/model_transformer_spec.rb
3985
+ - spec/wings/models/concerns/collection_behavior_spec.rb
3986
+ - spec/wings/services/file_metadata_builder_spec.rb
3987
+ - spec/wings/services/id_converter_service_spec.rb
3988
+ - spec/wings/transformer_value_mapper_spec.rb
3833
3989
  - spec/wings/valkyrie/metadata_adapter_spec.rb
3834
3990
  - spec/wings/valkyrie/persister_spec.rb
3835
3991
  - spec/wings/valkyrie/query_service_spec.rb
3836
3992
  - spec/wings/valkyrie/resource_factory_spec.rb
3837
- - spec/wings/value_mapper_spec.rb
3993
+ - spec/wings_helper.rb
3838
3994
  - spec/wings_spec.rb