hyrax 2.6.0 → 2.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/app/actors/hyrax/actors/file_set_actor.rb +2 -2
- data/app/assets/javascripts/hyrax/collections/editor.es6 +12 -2
- data/app/indexers/hyrax/collection_indexer.rb +1 -3
- data/app/models/concerns/hyrax/collection_behavior.rb +8 -34
- data/app/presenters/hyrax/collection_presenter.rb +12 -1
- data/hyrax.gemspec +1 -2
- data/lib/hyrax/version.rb +1 -1
- metadata +5 -1402
- data/spec/.gitignore +0 -1
- data/spec/abilities/ability_spec.rb +0 -183
- data/spec/abilities/admin_ability_spec.rb +0 -18
- data/spec/abilities/admin_set_ability_spec.rb +0 -177
- data/spec/abilities/collection_ability_spec.rb +0 -194
- data/spec/abilities/collection_type_ability_spec.rb +0 -72
- data/spec/abilities/embargo_and_lease_ability_spec.rb +0 -22
- data/spec/abilities/file_set_abilities_spec.rb +0 -70
- data/spec/abilities/generic_work_abilities_spec.rb +0 -63
- data/spec/abilities/operation_ability_spec.rb +0 -12
- data/spec/abilities/permission_template_ability_spec.rb +0 -145
- data/spec/abilities/proxies_and_transfer_abilities_spec.rb +0 -109
- data/spec/abilities/solr_document_ability_spec.rb +0 -27
- data/spec/actors/hyrax/actors/apply_order_actor_spec.rb +0 -92
- data/spec/actors/hyrax/actors/apply_permission_template_actor_spec.rb +0 -135
- data/spec/actors/hyrax/actors/attach_members_actor_spec.rb +0 -68
- data/spec/actors/hyrax/actors/cleanup_file_sets_actor_spec.rb +0 -24
- data/spec/actors/hyrax/actors/cleanup_trophies_actor_spec.rb +0 -25
- data/spec/actors/hyrax/actors/collections_membership_actor_spec.rb +0 -364
- data/spec/actors/hyrax/actors/create_with_files_actor_spec.rb +0 -60
- data/spec/actors/hyrax/actors/create_with_files_ordered_members_actor_spec.rb +0 -41
- data/spec/actors/hyrax/actors/create_with_remote_files_actor_spec.rb +0 -136
- data/spec/actors/hyrax/actors/create_with_remote_files_ordered_members_actor_spec.rb +0 -49
- data/spec/actors/hyrax/actors/default_admin_set_actor_spec.rb +0 -81
- data/spec/actors/hyrax/actors/embargo_actor_spec.rb +0 -37
- data/spec/actors/hyrax/actors/featured_work_actor_spec.rb +0 -38
- data/spec/actors/hyrax/actors/file_actor_spec.rb +0 -125
- data/spec/actors/hyrax/actors/file_set_actor_spec.rb +0 -347
- data/spec/actors/hyrax/actors/file_set_ordered_members_actor_spec.rb +0 -35
- data/spec/actors/hyrax/actors/generic_work_actor_spec.rb +0 -316
- data/spec/actors/hyrax/actors/initialize_workflow_actor_spec.rb +0 -35
- data/spec/actors/hyrax/actors/interpret_visibility_actor_spec.rb +0 -445
- data/spec/actors/hyrax/actors/lease_actor_spec.rb +0 -54
- data/spec/actors/hyrax/actors/model_actor_spec.rb +0 -24
- data/spec/actors/hyrax/actors/optimistic_lock_validator_spec.rb +0 -55
- data/spec/actors/hyrax/actors/ordered_members_actor_spec.rb +0 -59
- data/spec/actors/hyrax/actors/transactional_request_spec.rb +0 -46
- data/spec/actors/hyrax/actors/transfer_request_actor_spec.rb +0 -43
- data/spec/authorities/qa/authorities/collections_spec.rb +0 -68
- data/spec/authorities/qa/authorities/find_works_spec.rb +0 -52
- data/spec/channels/hyrax/application_cable/channel_spec.rb +0 -14
- data/spec/channels/hyrax/application_cable/connection_spec.rb +0 -37
- data/spec/channels/hyrax/notifications_channel_spec.rb +0 -45
- data/spec/config/hyrax_events_spec.rb +0 -44
- data/spec/controllers/catalog_controller_spec.rb +0 -135
- data/spec/controllers/hyrax/accepts_batches_controller_spec.rb +0 -67
- data/spec/controllers/hyrax/admin/admin_sets_controller_spec.rb +0 -284
- data/spec/controllers/hyrax/admin/appearances_controller_spec.rb +0 -66
- data/spec/controllers/hyrax/admin/collection_type_participants_controller_spec.rb +0 -152
- data/spec/controllers/hyrax/admin/collection_types_controller_spec.rb +0 -322
- data/spec/controllers/hyrax/admin/features_controller_spec.rb +0 -31
- data/spec/controllers/hyrax/admin/permission_template_accesses_controller_spec.rb +0 -101
- data/spec/controllers/hyrax/admin/permission_templates_controller_spec.rb +0 -71
- data/spec/controllers/hyrax/admin/stats_controller_spec.rb +0 -61
- data/spec/controllers/hyrax/admin/strategies_controller_spec.rb +0 -39
- data/spec/controllers/hyrax/admin/users_controller_spec.rb +0 -17
- data/spec/controllers/hyrax/admin/workflow_roles_controller_spec.rb +0 -76
- data/spec/controllers/hyrax/admin/workflows_controller_spec.rb +0 -18
- data/spec/controllers/hyrax/api/items_controller_spec.rb +0 -404
- data/spec/controllers/hyrax/api/zotero_controller_spec.rb +0 -162
- data/spec/controllers/hyrax/batch_edits_controller_spec.rb +0 -232
- data/spec/controllers/hyrax/batch_uploads_controller_spec.rb +0 -131
- data/spec/controllers/hyrax/citations_controller_spec.rb +0 -61
- data/spec/controllers/hyrax/collections_controller_spec.rb +0 -126
- data/spec/controllers/hyrax/contact_form_controller_spec.rb +0 -96
- data/spec/controllers/hyrax/content_blocks_controller_spec.rb +0 -71
- data/spec/controllers/hyrax/dashboard/collection_members_controller_spec.rb +0 -411
- data/spec/controllers/hyrax/dashboard/collections_controller_spec.rb +0 -518
- data/spec/controllers/hyrax/dashboard/nest_collections_controller_spec.rb +0 -360
- data/spec/controllers/hyrax/dashboard/profiles_controller_spec.rb +0 -155
- data/spec/controllers/hyrax/dashboard/works_controller_spec.rb +0 -13
- data/spec/controllers/hyrax/dashboard_controller_spec.rb +0 -42
- data/spec/controllers/hyrax/depositors_controller_spec.rb +0 -105
- data/spec/controllers/hyrax/downloads_controller_spec.rb +0 -159
- data/spec/controllers/hyrax/embargoes_controller_spec.rb +0 -147
- data/spec/controllers/hyrax/featured_work_lists_controller_spec.rb +0 -20
- data/spec/controllers/hyrax/featured_works_controller_spec.rb +0 -56
- data/spec/controllers/hyrax/file_sets_controller_spec.rb +0 -322
- data/spec/controllers/hyrax/fixity_checks_controller_spec.rb +0 -44
- data/spec/controllers/hyrax/generic_works_controller_json_spec.rb +0 -92
- data/spec/controllers/hyrax/generic_works_controller_spec.rb +0 -622
- data/spec/controllers/hyrax/homepage_controller_spec.rb +0 -138
- data/spec/controllers/hyrax/leases_controller_spec.rb +0 -117
- data/spec/controllers/hyrax/my/collections_controller_spec.rb +0 -36
- data/spec/controllers/hyrax/my/highlights_controller_spec.rb +0 -53
- data/spec/controllers/hyrax/my/shares_controller_spec.rb +0 -47
- data/spec/controllers/hyrax/my/works_controller_spec.rb +0 -54
- data/spec/controllers/hyrax/notifications_controller_spec.rb +0 -33
- data/spec/controllers/hyrax/operations_controller_spec.rb +0 -27
- data/spec/controllers/hyrax/pages_controller_spec.rb +0 -111
- data/spec/controllers/hyrax/permissions_controller_spec.rb +0 -56
- data/spec/controllers/hyrax/resource_sync_controller_spec.rb +0 -71
- data/spec/controllers/hyrax/single_use_links_controller_spec.rb +0 -100
- data/spec/controllers/hyrax/single_use_links_viewer_controller_spec.rb +0 -64
- data/spec/controllers/hyrax/static_controller_spec.rb +0 -28
- data/spec/controllers/hyrax/stats_controller_spec.rb +0 -73
- data/spec/controllers/hyrax/transfers_controller_spec.rb +0 -200
- data/spec/controllers/hyrax/trophies_controller_spec.rb +0 -40
- data/spec/controllers/hyrax/uploads_controller_spec.rb +0 -60
- data/spec/controllers/hyrax/users_controller_spec.rb +0 -151
- data/spec/controllers/hyrax/workflow_actions_controller_spec.rb +0 -54
- data/spec/conversions/power_converters/polymorphic_type_spec.rb +0 -22
- data/spec/conversions/power_converters/sipity_action_name_spec.rb +0 -32
- data/spec/conversions/power_converters/sipity_action_spec.rb +0 -43
- data/spec/conversions/power_converters/sipity_agent_spec.rb +0 -20
- data/spec/conversions/power_converters/sipity_entity_spec.rb +0 -53
- data/spec/conversions/power_converters/sipity_role_spec.rb +0 -31
- data/spec/conversions/power_converters/sipity_workflow_id_spec.rb +0 -28
- data/spec/conversions/power_converters/sipity_workflow_state_spec.rb +0 -20
- data/spec/factories/admin_sets.rb +0 -25
- data/spec/factories/admin_sets_lw.rb +0 -215
- data/spec/factories/api_items.rb +0 -91
- data/spec/factories/collection_branding_infos.rb +0 -11
- data/spec/factories/collection_type_participants.rb +0 -8
- data/spec/factories/collection_types.rb +0 -113
- data/spec/factories/collections.rb +0 -325
- data/spec/factories/collections_factory.rb +0 -134
- data/spec/factories/content_blocks.rb +0 -4
- data/spec/factories/featured_works.rb +0 -4
- data/spec/factories/file_sets.rb +0 -33
- data/spec/factories/generic_works.rb +0 -196
- data/spec/factories/object_id.rb +0 -6
- data/spec/factories/operations.rb +0 -21
- data/spec/factories/permission_template_accesses.rb +0 -16
- data/spec/factories/permission_templates.rb +0 -79
- data/spec/factories/proxy_deposit_requests.rb +0 -6
- data/spec/factories/single_use_links.rb +0 -13
- data/spec/factories/sipity_entities.rb +0 -7
- data/spec/factories/uploaded_files.rb +0 -5
- data/spec/factories/users.rb +0 -59
- data/spec/factories/workflow_actions.rb +0 -6
- data/spec/factories/workflow_states.rb +0 -6
- data/spec/factories/workflows.rb +0 -6
- data/spec/factory_tests/adminsets_factory_spec.rb +0 -132
- data/spec/factory_tests/collections_factory_spec.rb +0 -212
- data/spec/features/actor_stack_spec.rb +0 -77
- data/spec/features/admin_spec.rb +0 -30
- data/spec/features/batch_create_spec.rb +0 -75
- data/spec/features/batch_edit_spec.rb +0 -119
- data/spec/features/browse_catalog_spec.rb +0 -59
- data/spec/features/browse_dashboard_works_spec.rb +0 -56
- data/spec/features/catalog_search_spec.rb +0 -72
- data/spec/features/collection_multi_membership_spec.rb +0 -205
- data/spec/features/collection_spec.rb +0 -122
- data/spec/features/collection_type_spec.rb +0 -393
- data/spec/features/contact_form_spec.rb +0 -16
- data/spec/features/create_child_work_spec.rb +0 -82
- data/spec/features/create_work_admin_spec.rb +0 -44
- data/spec/features/create_work_spec.rb +0 -124
- data/spec/features/dashboard/all_works.rb +0 -23
- data/spec/features/dashboard/collection_spec.rb +0 -918
- data/spec/features/dashboard/display_admin_dashboard_spec.rb +0 -29
- data/spec/features/dashboard/display_dashboard_spec.rb +0 -18
- data/spec/features/delete_work_spec.rb +0 -23
- data/spec/features/edit_content_block_admin_spec.rb +0 -62
- data/spec/features/edit_file_spec.rb +0 -23
- data/spec/features/edit_work_spec.rb +0 -61
- data/spec/features/embargo_spec.rb +0 -90
- data/spec/features/homepage_spec.rb +0 -43
- data/spec/features/lease_spec.rb +0 -35
- data/spec/features/notifications_spec.rb +0 -20
- data/spec/features/ownership_transfer_spec.rb +0 -101
- data/spec/features/proxy_spec.rb +0 -25
- data/spec/features/search_spec.rb +0 -62
- data/spec/features/static_pages_spec.rb +0 -7
- data/spec/features/users_spec.rb +0 -48
- data/spec/features/work_generator_spec.rb +0 -29
- data/spec/features/work_show_spec.rb +0 -148
- data/spec/features/workflow_roles_spec.rb +0 -46
- data/spec/features/workflow_state_changes_spec.rb +0 -59
- data/spec/fixtures/1.5mb-avatar.jpg +0 -0
- data/spec/fixtures/4-20.png +0 -0
- data/spec/fixtures/Example.ogg +0 -0
- data/spec/fixtures/authorities/licenses.yml +0 -13
- data/spec/fixtures/charter.docx +0 -0
- data/spec/fixtures/config/schema_org.yml +0 -7
- data/spec/fixtures/config/schema_org_second.yml +0 -7
- data/spec/fixtures/countdown.avi +0 -0
- data/spec/fixtures/docx_fits.xml +0 -21
- data/spec/fixtures/dublin_core_rdf_descMetadata.nt +0 -13
- data/spec/fixtures/hyrax/.gitignore +0 -1
- data/spec/fixtures/hyrax/hyrax_test4.pdf +0 -0
- data/spec/fixtures/hyrax/hyrax_test5.mp3 +0 -0
- data/spec/fixtures/hyrax_generic_stub.txt +0 -1
- data/spec/fixtures/icons.zip +0 -0
- data/spec/fixtures/image.jp2 +0 -0
- data/spec/fixtures/image.jpg +0 -0
- data/spec/fixtures/image.png +0 -0
- data/spec/fixtures/jp2_fits.xml +0 -36
- data/spec/fixtures/jpg_fits.xml +0 -43
- data/spec/fixtures/mp3_fits.xml +0 -32
- data/spec/fixtures/pdf_fits.xml +0 -43
- data/spec/fixtures/piano_note.wav +0 -0
- data/spec/fixtures/png_fits.xml +0 -29
- data/spec/fixtures/sample_mpeg4.mp4 +0 -0
- data/spec/fixtures/small_file.txt +0 -1
- data/spec/fixtures/spoken-text.m4a +0 -0
- data/spec/fixtures/txt_fits.xml +0 -29
- data/spec/fixtures/world.png +0 -0
- data/spec/fixtures/xls_fits.xml +0 -18
- data/spec/fixtures/xml_fits.xml +0 -37
- data/spec/forms/hyrax/forms/admin/appearance_spec.rb +0 -46
- data/spec/forms/hyrax/forms/admin/collection_type_form_spec.rb +0 -108
- data/spec/forms/hyrax/forms/admin/collection_type_participant_form_spec.rb +0 -10
- data/spec/forms/hyrax/forms/admin_set_form_spec.rb +0 -88
- data/spec/forms/hyrax/forms/batch_edit_form_spec.rb +0 -111
- data/spec/forms/hyrax/forms/batch_upload_form_spec.rb +0 -75
- data/spec/forms/hyrax/forms/collection_form_spec.rb +0 -196
- data/spec/forms/hyrax/forms/dashboard/nest_collection_form_spec.rb +0 -159
- data/spec/forms/hyrax/forms/file_manager_form_spec.rb +0 -19
- data/spec/forms/hyrax/forms/file_set_edit_form_spec.rb +0 -53
- data/spec/forms/hyrax/forms/permission_template_form_spec.rb +0 -599
- data/spec/forms/hyrax/forms/work_form_spec.rb +0 -346
- data/spec/forms/hyrax/forms/workflow_action_form_spec.rb +0 -129
- data/spec/forms/hyrax/forms/workflow_responsibility_form_spec.rb +0 -41
- data/spec/forms/hyrax/generic_work_form_spec.rb +0 -127
- data/spec/helpers/blacklight_helper_spec.rb +0 -137
- data/spec/helpers/hyrax/ability_helper_spec.rb +0 -61
- data/spec/helpers/hyrax/batch_edits_helper_spec.rb +0 -59
- data/spec/helpers/hyrax/charts_helper_spec.rb +0 -63
- data/spec/helpers/hyrax/citations_behaviors/formatters/chicago_formatter_spec.rb +0 -10
- data/spec/helpers/hyrax/collections_helper_spec.rb +0 -117
- data/spec/helpers/hyrax/content_block_helper_spec.rb +0 -44
- data/spec/helpers/hyrax/dashboard_helper_behavior_spec.rb +0 -74
- data/spec/helpers/hyrax/file_set_helper_spec.rb +0 -65
- data/spec/helpers/hyrax/iiif_helper_spec.rb +0 -44
- data/spec/helpers/hyrax/trophy_helper_spec.rb +0 -37
- data/spec/helpers/hyrax_helper_spec.rb +0 -399
- data/spec/hyrax/transactions/create_work_spec.rb +0 -155
- data/spec/hyrax/transactions/steps/apply_permission_template_spec.rb +0 -72
- data/spec/hyrax/transactions/steps/ensure_admin_set_spec.rb +0 -25
- data/spec/hyrax/transactions/steps/ensure_permission_template_spec.rb +0 -33
- data/spec/hyrax/transactions/steps/save_work_spec.rb +0 -32
- data/spec/hyrax/transactions/steps/set_default_admin_set_spec.rb +0 -38
- data/spec/hyrax/transactions/steps/set_modified_date_spec.rb +0 -22
- data/spec/hyrax/transactions/steps/set_uploaded_date_spec.rb +0 -32
- data/spec/indexers/hyrax/collection_indexer_spec.rb +0 -43
- data/spec/indexers/hyrax/file_set_indexer_spec.rb +0 -126
- data/spec/indexers/hyrax/generic_work_indexer_spec.rb +0 -123
- data/spec/indexers/hyrax/repository_reindexer_spec.rb +0 -8
- data/spec/inputs/controlled_vocabulary_input_spec.rb +0 -57
- data/spec/inputs/multifile_input_spec.rb +0 -31
- data/spec/javascripts/authority_select_spec.js +0 -22
- data/spec/javascripts/autocomplete_spec.js.coffee +0 -199
- data/spec/javascripts/batch_select_spec.js +0 -15
- data/spec/javascripts/charts_spec.coffee +0 -10
- data/spec/javascripts/checklist_item_spec.js +0 -23
- data/spec/javascripts/deposit_agreement_spec.js +0 -70
- data/spec/javascripts/file_manager_member_spec.coffee +0 -88
- data/spec/javascripts/file_manager_sorting_spec.coffee +0 -23
- data/spec/javascripts/fixtures/chart_example.html +0 -1
- data/spec/javascripts/fixtures/dashboard_batch_forms.html +0 -11
- data/spec/javascripts/fixtures/file_manager_member.html +0 -40
- data/spec/javascripts/fixtures/save_button.html +0 -3
- data/spec/javascripts/fixtures/sortable.html +0 -182
- data/spec/javascripts/fixtures/sul_table.html +0 -29
- data/spec/javascripts/grant_spec.js +0 -43
- data/spec/javascripts/helpers/jasmine-ajax.js +0 -751
- data/spec/javascripts/helpers/jasmine-jquery.js +0 -838
- data/spec/javascripts/helpers/test_fixtures.js.coffee +0 -18
- data/spec/javascripts/helpers/test_responses.js +0 -12
- data/spec/javascripts/jasmine_spec.rb +0 -25
- data/spec/javascripts/relationships_control_spec.js.coffee +0 -27
- data/spec/javascripts/required_field_spec.js +0 -41
- data/spec/javascripts/save_manager_spec.coffee +0 -87
- data/spec/javascripts/save_work_spec.js +0 -262
- data/spec/javascripts/settings_spec.js +0 -74
- data/spec/javascripts/single_use_links_spec.coffee +0 -51
- data/spec/javascripts/support/jasmine.yml +0 -125
- data/spec/javascripts/support/jasmine_helper.rb +0 -14
- data/spec/javascripts/tabs_spec.js.coffee +0 -38
- data/spec/javascripts/uploaded_files_spec.js +0 -23
- data/spec/javascripts/visibility_component_spec.js +0 -531
- data/spec/jobs/attach_files_to_work_job_spec.rb +0 -80
- data/spec/jobs/attach_files_to_work_with_ordered_members_job_spec.rb +0 -13
- data/spec/jobs/batch_create_job_spec.rb +0 -79
- data/spec/jobs/characterize_job_spec.rb +0 -66
- data/spec/jobs/content_delete_event_job_spec.rb +0 -36
- data/spec/jobs/content_deposit_event_job_spec.rb +0 -25
- data/spec/jobs/content_depositor_change_event_job_spec.rb +0 -28
- data/spec/jobs/content_new_version_event_job_spec.rb +0 -21
- data/spec/jobs/content_restored_version_event_job_spec.rb +0 -28
- data/spec/jobs/content_update_event_job_spec.rb +0 -25
- data/spec/jobs/create_derivatives_job_spec.rb +0 -93
- data/spec/jobs/create_work_job_spec.rb +0 -60
- data/spec/jobs/file_set_attached_event_job_spec.rb +0 -34
- data/spec/jobs/fixity_check_job_spec.rb +0 -50
- data/spec/jobs/hyrax/grant_edit_job_spec.rb +0 -11
- data/spec/jobs/hyrax/grant_edit_to_members_job_spec.rb +0 -16
- data/spec/jobs/hyrax/grant_read_job_spec.rb +0 -11
- data/spec/jobs/hyrax/grant_read_to_members_job_spec.rb +0 -16
- data/spec/jobs/hyrax/revoke_edit_from_members_job_spec.rb +0 -16
- data/spec/jobs/hyrax/revoke_edit_job_spec.rb +0 -11
- data/spec/jobs/import_export_job_spec.rb +0 -28
- data/spec/jobs/import_url_job_spec.rb +0 -180
- data/spec/jobs/ingest_local_file_job_spec.rb +0 -40
- data/spec/jobs/inherit_permissions_job_spec.rb +0 -94
- data/spec/jobs/stream_notifications_job_spec.rb +0 -45
- data/spec/jobs/user_edit_profile_event_job_spec.rb +0 -17
- data/spec/jobs/visibility_copy_job_spec.rb +0 -53
- data/spec/lib/hyrax/analytics_spec.rb +0 -65
- data/spec/lib/hyrax/arkivo/actor_spec.rb +0 -78
- data/spec/lib/hyrax/arkivo/create_subscription_job_spec.rb +0 -50
- data/spec/lib/hyrax/arkivo/metadata_munger_spec.rb +0 -46
- data/spec/lib/hyrax/arkivo/schema_validator_spec.rb +0 -63
- data/spec/lib/hyrax/arkivo_spec.rb +0 -12
- data/spec/lib/hyrax/collections/search_service_spec.rb +0 -35
- data/spec/lib/hyrax/configuration_spec.rb +0 -91
- data/spec/lib/hyrax/controlled_vocabulary/importer/downloader_spec.rb +0 -33
- data/spec/lib/hyrax/controlled_vocabulary/importer/language_spec.rb +0 -24
- data/spec/lib/hyrax/move_all_works_to_admin_set_spec.rb +0 -13
- data/spec/lib/hyrax/name_spec.rb +0 -21
- data/spec/lib/hyrax/redis_event_store_spec.rb +0 -54
- data/spec/lib/hyrax/resource_sync/capability_list_writer_spec.rb +0 -33
- data/spec/lib/hyrax/resource_sync/change_list_writer_spec.rb +0 -78
- data/spec/lib/hyrax/resource_sync/resource_list_writer_spec.rb +0 -25
- data/spec/lib/hyrax/resource_sync/source_description_writer_spec.rb +0 -18
- data/spec/lib/hyrax/role_registry_spec.rb +0 -43
- data/spec/lib/hyrax/search_state_spec.rb +0 -26
- data/spec/lib/hyrax/zotero/config_spec.rb +0 -26
- data/spec/lib/hyrax/zotero_spec.rb +0 -9
- data/spec/lib/hyrax_spec.rb +0 -9
- data/spec/models/admin_set_spec.rb +0 -229
- data/spec/models/batch_upload_item_spec.rb +0 -7
- data/spec/models/checksum_audit_log_spec.rb +0 -162
- data/spec/models/collection_branding_info_spec.rb +0 -61
- data/spec/models/collection_spec.rb +0 -326
- data/spec/models/concerns/hyrax/collection_nesting_spec.rb +0 -83
- data/spec/models/content_block_spec.rb +0 -198
- data/spec/models/featured_work_list_spec.rb +0 -56
- data/spec/models/featured_work_spec.rb +0 -53
- data/spec/models/file_download_stat_spec.rb +0 -104
- data/spec/models/file_set_spec.rb +0 -668
- data/spec/models/file_view_stat_spec.rb +0 -81
- data/spec/models/flipflop_spec.rb +0 -49
- data/spec/models/generic_work_spec.rb +0 -117
- data/spec/models/hyrax/batch_create_operation_spec.rb +0 -59
- data/spec/models/hyrax/collection_type_participant_spec.rb +0 -43
- data/spec/models/hyrax/collection_type_spec.rb +0 -236
- data/spec/models/hyrax/download_spec.rb +0 -13
- data/spec/models/hyrax/operation_spec.rb +0 -123
- data/spec/models/hyrax/pageview_spec.rb +0 -13
- data/spec/models/hyrax/permission_template_access_spec.rb +0 -180
- data/spec/models/hyrax/permission_template_spec.rb +0 -291
- data/spec/models/hyrax/permissions/readable_permissions_spec.rb +0 -52
- data/spec/models/hyrax/permissions/writable_permissions_spec.rb +0 -12
- data/spec/models/hyrax/uploaded_file_spec.rb +0 -10
- data/spec/models/hyrax/user_usage_stats_spec.rb +0 -43
- data/spec/models/hyrax/work_behavior_spec.rb +0 -64
- data/spec/models/job_io_wrapper_spec.rb +0 -172
- data/spec/models/proxy_deposit_request_spec.rb +0 -152
- data/spec/models/single_use_link_spec.rb +0 -37
- data/spec/models/sipity/agent_spec.rb +0 -8
- data/spec/models/sipity/comment_spec.rb +0 -24
- data/spec/models/sipity/entity_spec.rb +0 -27
- data/spec/models/sipity/entity_specific_responsibility_spec.rb +0 -9
- data/spec/models/sipity/notifiable_context_spec.rb +0 -7
- data/spec/models/sipity/notification_recipient_spec.rb +0 -9
- data/spec/models/sipity/notification_spec.rb +0 -15
- data/spec/models/sipity/role_spec.rb +0 -40
- data/spec/models/sipity/workflow_action_spec.rb +0 -11
- data/spec/models/sipity/workflow_responsibility_spec.rb +0 -8
- data/spec/models/sipity/workflow_role_spec.rb +0 -8
- data/spec/models/sipity/workflow_spec.rb +0 -84
- data/spec/models/sipity/workflow_state_action_permission_spec.rb +0 -8
- data/spec/models/sipity/workflow_state_action_spec.rb +0 -8
- data/spec/models/sipity/workflow_state_spec.rb +0 -17
- data/spec/models/solr_document_spec.rb +0 -205
- data/spec/models/trophy_spec.rb +0 -19
- data/spec/models/user_mailbox_spec.rb +0 -134
- data/spec/models/user_spec.rb +0 -269
- data/spec/models/work_view_stat_spec.rb +0 -107
- data/spec/presenters/hyrax/admin/dashboard_presenter_spec.rb +0 -33
- data/spec/presenters/hyrax/admin/repository_growth_presenter_spec.rb +0 -25
- data/spec/presenters/hyrax/admin/repository_object_presenter_spec.rb +0 -24
- data/spec/presenters/hyrax/admin/user_activity_presenter_spec.rb +0 -20
- data/spec/presenters/hyrax/admin/users_presenter_spec.rb +0 -48
- data/spec/presenters/hyrax/admin/workflow_role_presenter_spec.rb +0 -12
- data/spec/presenters/hyrax/admin/workflow_roles_presenter_spec.rb +0 -16
- data/spec/presenters/hyrax/admin_set_options_presenter_spec.rb +0 -73
- data/spec/presenters/hyrax/admin_set_presenter_spec.rb +0 -143
- data/spec/presenters/hyrax/admin_stats_presenter_spec.rb +0 -143
- data/spec/presenters/hyrax/collection_options_presenter_spec.rb +0 -15
- data/spec/presenters/hyrax/collection_presenter_spec.rb +0 -461
- data/spec/presenters/hyrax/dashboard/user_presenter_spec.rb +0 -65
- data/spec/presenters/hyrax/embargo_presenter_spec.rb +0 -51
- data/spec/presenters/hyrax/file_set_presenter_spec.rb +0 -426
- data/spec/presenters/hyrax/file_usage_spec.rb +0 -162
- data/spec/presenters/hyrax/fixity_status_presenter_spec.rb +0 -55
- data/spec/presenters/hyrax/homepage_presenter_spec.rb +0 -42
- data/spec/presenters/hyrax/inspect_work_presenter_spec.rb +0 -59
- data/spec/presenters/hyrax/lease_presenter_spec.rb +0 -51
- data/spec/presenters/hyrax/member_presenter_factory_spec.rb +0 -26
- data/spec/presenters/hyrax/menu_presenter_spec.rb +0 -107
- data/spec/presenters/hyrax/permission_badge_spec.rb +0 -77
- data/spec/presenters/hyrax/presenter_factory_spec.rb +0 -53
- data/spec/presenters/hyrax/presenter_renderer_spec.rb +0 -30
- data/spec/presenters/hyrax/select_collection_type_list_presenter_spec.rb +0 -59
- data/spec/presenters/hyrax/select_collection_type_presenter_spec.rb +0 -10
- data/spec/presenters/hyrax/select_type_list_presenter_spec.rb +0 -37
- data/spec/presenters/hyrax/select_type_presenter_spec.rb +0 -74
- data/spec/presenters/hyrax/single_use_link_presenter_spec.rb +0 -41
- data/spec/presenters/hyrax/transfers_presenter_spec.rb +0 -44
- data/spec/presenters/hyrax/trophy_presenter_spec.rb +0 -53
- data/spec/presenters/hyrax/twitter_presenter_spec.rb +0 -27
- data/spec/presenters/hyrax/user_profile_presenter_spec.rb +0 -28
- data/spec/presenters/hyrax/version_list_presenter_spec.rb +0 -30
- data/spec/presenters/hyrax/version_presenter_spec.rb +0 -57
- data/spec/presenters/hyrax/work_show_presenter_spec.rb +0 -580
- data/spec/presenters/hyrax/work_usage_spec.rb +0 -144
- data/spec/presenters/hyrax/workflow_presenter_spec.rb +0 -75
- data/spec/rails_helper.rb +0 -2
- data/spec/renderers/hyrax/renderers/attribute_renderer_spec.rb +0 -118
- data/spec/renderers/hyrax/renderers/date_attribute_renderer_spec.rb +0 -39
- data/spec/renderers/hyrax/renderers/external_link_attribute_renderer_spec.rb +0 -22
- data/spec/renderers/hyrax/renderers/faceted_attribute_renderer_spec.rb +0 -35
- data/spec/renderers/hyrax/renderers/license_attribute_renderer_spec.rb +0 -21
- data/spec/renderers/hyrax/renderers/linked_attribute_renderer_spec.rb +0 -21
- data/spec/renderers/hyrax/renderers/rights_statement_attribute_renderer_spec.rb +0 -29
- data/spec/requests/legacy_routing_spec.rb +0 -7
- data/spec/requests/riiif_spec.rb +0 -32
- data/spec/routing/admin_routes_spec.rb +0 -29
- data/spec/routing/api_route_spec.rb +0 -89
- data/spec/routing/citations_route_spec.rb +0 -21
- data/spec/routing/collection_permission_templates_routes_spec.rb +0 -31
- data/spec/routing/collection_types_routes.rb +0 -35
- data/spec/routing/dashboard_routes_spec.rb +0 -37
- data/spec/routing/featured_works_route_spec.rb +0 -15
- data/spec/routing/operations_spec.rb +0 -9
- data/spec/routing/ownership_transfers_route_spec.rb +0 -43
- data/spec/routing/resource_sync_spec.rb +0 -19
- data/spec/routing/route_spec.rb +0 -205
- data/spec/routing/single_use_link_spec.rb +0 -27
- data/spec/routing/stats_route_spec.rb +0 -21
- data/spec/search_builders/hyrax/abstract_type_relation_spec.rb +0 -18
- data/spec/search_builders/hyrax/admin_admin_set_member_search_builder_spec.rb +0 -39
- data/spec/search_builders/hyrax/admin_set_search_builder_spec.rb +0 -78
- data/spec/search_builders/hyrax/catalog_search_builder_spec.rb +0 -86
- data/spec/search_builders/hyrax/collection_member_search_builder_spec.rb +0 -53
- data/spec/search_builders/hyrax/collection_search_builder_spec.rb +0 -74
- data/spec/search_builders/hyrax/dashboard/collections_search_builder_spec.rb +0 -103
- data/spec/search_builders/hyrax/dashboard/nested_collections_search_builder_spec.rb +0 -85
- data/spec/search_builders/hyrax/dashboard/works_search_builder_spec.rb +0 -44
- data/spec/search_builders/hyrax/embargo_search_builder_spec.rb +0 -17
- data/spec/search_builders/hyrax/file_set_search_builder_spec.rb +0 -28
- data/spec/search_builders/hyrax/lease_search_builder_spec.rb +0 -17
- data/spec/search_builders/hyrax/my/collections_search_builder_spec.rb +0 -35
- data/spec/search_builders/hyrax/my/find_works_search_builder_spec.rb +0 -63
- data/spec/search_builders/hyrax/my/shares_search_builder_spec.rb +0 -32
- data/spec/search_builders/hyrax/my/works_search_builder_spec.rb +0 -52
- data/spec/search_builders/hyrax/parent_collection_search_builder_spec.rb +0 -15
- data/spec/search_builders/hyrax/single_admin_set_search_builder_spec.rb +0 -20
- data/spec/search_builders/hyrax/stats/work_status_search_builder_spec.rb +0 -32
- data/spec/search_builders/hyrax/work_relation_spec.rb +0 -9
- data/spec/search_builders/hyrax/work_search_builder_spec.rb +0 -106
- data/spec/search_builders/hyrax/works_search_builder_spec.rb +0 -23
- data/spec/services/hyrax/abstract_message_service_spec.rb +0 -25
- data/spec/services/hyrax/adapters/nesting_index_adapter_spec.rb +0 -205
- data/spec/services/hyrax/admin_set_create_service_spec.rb +0 -114
- data/spec/services/hyrax/admin_set_member_service_spec.rb +0 -21
- data/spec/services/hyrax/admin_set_service_spec.rb +0 -171
- data/spec/services/hyrax/batch_create_failure_service_spec.rb +0 -18
- data/spec/services/hyrax/batch_create_success_service_spec.rb +0 -14
- data/spec/services/hyrax/change_content_depositor_service_spec.rb +0 -49
- data/spec/services/hyrax/collection_member_service_spec.rb +0 -19
- data/spec/services/hyrax/collection_size_service_spec.rb +0 -74
- data/spec/services/hyrax/collection_types/create_service_spec.rb +0 -127
- data/spec/services/hyrax/collection_types/permissions_service_spec.rb +0 -297
- data/spec/services/hyrax/collections/collection_member_service_spec.rb +0 -49
- data/spec/services/hyrax/collections/managed_collections_service_spec.rb +0 -17
- data/spec/services/hyrax/collections/migration_service_spec.rb +0 -467
- data/spec/services/hyrax/collections/nested_collection_persistence_service_spec.rb +0 -28
- data/spec/services/hyrax/collections/nested_collection_query_service_spec.rb +0 -353
- data/spec/services/hyrax/collections/permissions_create_service_spec.rb +0 -64
- data/spec/services/hyrax/collections/permissions_service_spec.rb +0 -380
- data/spec/services/hyrax/collections_service_spec.rb +0 -62
- data/spec/services/hyrax/curation_concern_spec.rb +0 -18
- data/spec/services/hyrax/database_migrator_spec.rb +0 -20
- data/spec/services/hyrax/default_middleware_stack_spec.rb +0 -36
- data/spec/services/hyrax/derivative_path_spec.rb +0 -65
- data/spec/services/hyrax/derivative_service_spec.rb +0 -49
- data/spec/services/hyrax/embargo_service_spec.rb +0 -59
- data/spec/services/hyrax/file_set_csv_service_spec.rb +0 -83
- data/spec/services/hyrax/file_set_derivatives_service_spec.rb +0 -13
- data/spec/services/hyrax/file_set_fixity_check_service_spec.rb +0 -129
- data/spec/services/hyrax/fixity_check_failure_service_spec.rb +0 -29
- data/spec/services/hyrax/graph_exporter_spec.rb +0 -58
- data/spec/services/hyrax/iiif_authorization_service_spec.rb +0 -43
- data/spec/services/hyrax/import_url_failure_service_spec.rb +0 -23
- data/spec/services/hyrax/lease_service_spec.rb +0 -50
- data/spec/services/hyrax/license_service_spec.rb +0 -34
- data/spec/services/hyrax/lock_manager_spec.rb +0 -13
- data/spec/services/hyrax/messenger_service_spec.rb +0 -15
- data/spec/services/hyrax/microdata_spec.rb +0 -94
- data/spec/services/hyrax/multiple_membership_checker_spec.rb +0 -155
- data/spec/services/hyrax/noid_spec.rb +0 -37
- data/spec/services/hyrax/permission_template_applicator_spec.rb +0 -69
- data/spec/services/hyrax/persist_derivatives_spec.rb +0 -22
- data/spec/services/hyrax/persist_directly_contained_output_file_service_spec.rb +0 -20
- data/spec/services/hyrax/qa_select_service_spec.rb +0 -109
- data/spec/services/hyrax/quick_classification_query_spec.rb +0 -38
- data/spec/services/hyrax/repository_fixity_check_service_spec.rb +0 -16
- data/spec/services/hyrax/resource_types_service_spec.rb +0 -38
- data/spec/services/hyrax/rights_statement_service_spec.rb +0 -9
- data/spec/services/hyrax/statistics/collections/over_time_spec.rb +0 -17
- data/spec/services/hyrax/statistics/depositors/summary_spec.rb +0 -66
- data/spec/services/hyrax/statistics/file_sets/by_format_spec.rb +0 -29
- data/spec/services/hyrax/statistics/query_service_spec.rb +0 -112
- data/spec/services/hyrax/statistics/system_stats_spec.rb +0 -45
- data/spec/services/hyrax/statistics/users/over_time_spec.rb +0 -22
- data/spec/services/hyrax/statistics/works/by_depositor_spec.rb +0 -24
- data/spec/services/hyrax/statistics/works/by_resource_type_spec.rb +0 -28
- data/spec/services/hyrax/statistics/works/count_spec.rb +0 -33
- data/spec/services/hyrax/statistics/works/over_time_spec.rb +0 -17
- data/spec/services/hyrax/thumbnail_path_service_spec.rb +0 -55
- data/spec/services/hyrax/tolerant_select_service_spec.rb +0 -80
- data/spec/services/hyrax/user_stat_importer_spec.rb +0 -315
- data/spec/services/hyrax/versioning_service_spec.rb +0 -26
- data/spec/services/hyrax/work_query_service_spec.rb +0 -56
- data/spec/services/hyrax/workflow/action_taken_service_spec.rb +0 -74
- data/spec/services/hyrax/workflow/activate_object_spec.rb +0 -26
- data/spec/services/hyrax/workflow/changes_required_notification_spec.rb +0 -35
- data/spec/services/hyrax/workflow/deactivate_object_spec.rb +0 -26
- data/spec/services/hyrax/workflow/deposited_notification_spec.rb +0 -35
- data/spec/services/hyrax/workflow/grant_edit_to_depositor_spec.rb +0 -53
- data/spec/services/hyrax/workflow/grant_read_to_depositor_spec.rb +0 -48
- data/spec/services/hyrax/workflow/method_generator_spec.rb +0 -42
- data/spec/services/hyrax/workflow/notification_configuration_parameter_spec.rb +0 -24
- data/spec/services/hyrax/workflow/notification_generator_spec.rb +0 -27
- data/spec/services/hyrax/workflow/notification_service_spec.rb +0 -87
- data/spec/services/hyrax/workflow/pending_review_notification_spec.rb +0 -34
- data/spec/services/hyrax/workflow/permission_generator_spec.rb +0 -50
- data/spec/services/hyrax/workflow/permission_query_spec.rb +0 -206
- data/spec/services/hyrax/workflow/revoke_edit_from_depositor_spec.rb +0 -48
- data/spec/services/hyrax/workflow/sipity_actions_generator_spec.rb +0 -40
- data/spec/services/hyrax/workflow/state_machine_generator_spec.rb +0 -45
- data/spec/services/hyrax/workflow/status_list_service_spec.rb +0 -67
- data/spec/services/hyrax/workflow/workflow_factory_spec.rb +0 -26
- data/spec/services/hyrax/workflow/workflow_importer_spec.rb +0 -241
- data/spec/services/hyrax/workflow/workflow_permissions_generator_spec.rb +0 -39
- data/spec/services/hyrax/workflow/workflow_schema_spec.rb +0 -86
- data/spec/services/hyrax/working_directory_spec.rb +0 -12
- data/spec/services/hyrax/works/managed_works_service_spec.rb +0 -17
- data/spec/spec_helper.rb +0 -300
- data/spec/strategies/hyrax/strategies/yaml_strategy_spec.rb +0 -30
- data/spec/support/controller_level_helpers.rb +0 -27
- data/spec/support/factory_helpers.rb +0 -24
- data/spec/support/fakes/fake_authority.rb +0 -13
- data/spec/support/features.rb +0 -10
- data/spec/support/features/batch_edit_actions.rb +0 -28
- data/spec/support/features/session_helpers.rb +0 -14
- data/spec/support/features/workflow.rb +0 -9
- data/spec/support/input_support.rb +0 -11
- data/spec/support/logging_formatter.rb +0 -66
- data/spec/support/matchers/api_responses.rb +0 -26
- data/spec/support/matchers/collection_type_property_matchers.rb +0 -29
- data/spec/support/matchers/response_matchers.rb +0 -7
- data/spec/support/optional_example.rb +0 -16
- data/spec/support/rake.rb +0 -41
- data/spec/support/selectors.rb +0 -100
- data/spec/support/spec_statistic.rb +0 -23
- data/spec/support/speedup.rb +0 -6
- data/spec/support/statistic_helper.rb +0 -9
- data/spec/tasks/rake_spec.rb +0 -27
- data/spec/test_app_templates/Gemfile.extra +0 -6
- data/spec/test_app_templates/disable_animations_in_test_environment.rb +0 -54
- data/spec/test_app_templates/lib/generators/test_app_generator.rb +0 -125
- data/spec/views/_flash_msg.html.erb_spec.rb +0 -32
- data/spec/views/_user_util_links.html.erb_spec.rb +0 -44
- data/spec/views/catalog/_index_list_default.html.erb_spec.rb +0 -43
- data/spec/views/catalog/_search_form.html.erb_spec.rb +0 -16
- data/spec/views/catalog/_thumbnail_list_collection.html.erb_spec.rb +0 -43
- data/spec/views/catalog/index.html.erb_spec.rb +0 -50
- data/spec/views/content_blocks/edit.html.erb_spec.rb +0 -21
- data/spec/views/hyrax/admin/admin_sets/_form.html.erb_spec.rb +0 -29
- data/spec/views/hyrax/admin/admin_sets/_form_participant_table.html.erb_spec.rb +0 -128
- data/spec/views/hyrax/admin/admin_sets/_form_participants.html.erb_spec.rb +0 -19
- data/spec/views/hyrax/admin/admin_sets/_form_visibility.html.erb_spec.rb +0 -24
- data/spec/views/hyrax/admin/admin_sets/_form_workflow.html.erb_spec.rb +0 -22
- data/spec/views/hyrax/admin/admin_sets/_show_actions.html.erb_spec.rb +0 -68
- data/spec/views/hyrax/admin/admin_sets/_show_document_list.html.erb_spec.rb +0 -13
- data/spec/views/hyrax/admin/admin_sets/_show_document_list_row.html.erb_spec.rb +0 -28
- data/spec/views/hyrax/admin/admin_sets/index.html.erb_spec.rb +0 -40
- data/spec/views/hyrax/admin/admin_sets/index.json.erb_spec.rb +0 -29
- data/spec/views/hyrax/admin/admin_sets/show.html.erb_spec.rb +0 -21
- data/spec/views/hyrax/admin/collection_types/_form.html.erb_spec.rb +0 -45
- data/spec/views/hyrax/admin/collection_types/_form_appearance.html.erb_spec.rb +0 -22
- data/spec/views/hyrax/admin/collection_types/_form_metadata.html.erb_spec.rb +0 -27
- data/spec/views/hyrax/admin/collection_types/_form_metadata_admin_set.html.erb_spec.rb +0 -27
- data/spec/views/hyrax/admin/collection_types/_form_participants.html.erb_spec.rb +0 -24
- data/spec/views/hyrax/admin/collection_types/_form_participants_table.html.erb_spec.rb +0 -73
- data/spec/views/hyrax/admin/collection_types/_form_settings.html.erb_spec.rb +0 -86
- data/spec/views/hyrax/admin/collection_types/index.html.erb_spec.rb +0 -62
- data/spec/views/hyrax/admin/features/index.html.erb_spec.rb +0 -15
- data/spec/views/hyrax/admin/stats/show.html.erb_spec.rb +0 -54
- data/spec/views/hyrax/admin/users/index.html.erb_spec.rb +0 -45
- data/spec/views/hyrax/admin/workflow_roles/index.html.erb_spec.rb +0 -40
- data/spec/views/hyrax/base/_attribute_rows.html.erb_spec.rb +0 -30
- data/spec/views/hyrax/base/_attributes.html.erb_spec.rb +0 -35
- data/spec/views/hyrax/base/_citations.html.erb_spec.rb +0 -43
- data/spec/views/hyrax/base/_form.html.erb_spec.rb +0 -80
- data/spec/views/hyrax/base/_form_child_work_relationships.html.erb_spec.rb +0 -68
- data/spec/views/hyrax/base/_form_files.html.erb_spec.rb +0 -38
- data/spec/views/hyrax/base/_form_metadata.html.erb_spec.rb +0 -40
- data/spec/views/hyrax/base/_form_progress.html.erb_spec.rb +0 -131
- data/spec/views/hyrax/base/_form_relationships.html.erb_spec.rb +0 -48
- data/spec/views/hyrax/base/_form_rendering.html.erb_spec.rb +0 -22
- data/spec/views/hyrax/base/_items.html.erb_spec.rb +0 -55
- data/spec/views/hyrax/base/_member.html.erb_spec.rb +0 -43
- data/spec/views/hyrax/base/_relationships.html.erb_spec.rb +0 -92
- data/spec/views/hyrax/base/_show_actions.html.erb_spec.rb +0 -149
- data/spec/views/hyrax/base/_social_media.html.erb_spec.rb +0 -16
- data/spec/views/hyrax/base/edit.html.erb_spec.rb +0 -26
- data/spec/views/hyrax/base/file_manager.html.erb_spec.rb +0 -88
- data/spec/views/hyrax/base/show.html.erb_spec.rb +0 -201
- data/spec/views/hyrax/base/show.json.jbuilder_spec.rb +0 -23
- data/spec/views/hyrax/base/unauthorized.html.erb_spec.rb +0 -30
- data/spec/views/hyrax/base/unavailable.html.erb_spec.rb +0 -36
- data/spec/views/hyrax/batch_edits/check_all_spec.rb +0 -13
- data/spec/views/hyrax/batch_edits/edit.html.erb_spec.rb +0 -35
- data/spec/views/hyrax/batch_uploads/_form.html.erb_spec.rb +0 -24
- data/spec/views/hyrax/citations/work.html.erb_spec.rb +0 -175
- data/spec/views/hyrax/collections/_show_descriptions.html.erb_spec.rb +0 -32
- data/spec/views/hyrax/collections/_show_document_list.html.erb_spec.rb +0 -24
- data/spec/views/hyrax/collections/_show_document_list_row.html.erb_spec.rb +0 -35
- data/spec/views/hyrax/collections/_show_parent_collections.html.erb_spec.rb +0 -74
- data/spec/views/hyrax/collections/_sort_and_per_page.html.erb_spec.rb +0 -60
- data/spec/views/hyrax/collections/_subcollection_list.html.erb_spec.rb +0 -39
- data/spec/views/hyrax/collections/show.html.erb_spec.rb +0 -48
- data/spec/views/hyrax/dashboard/_sidebar.html.erb_spec.rb +0 -132
- data/spec/views/hyrax/dashboard/collections/_default_group.html.erb_spec.rb +0 -43
- data/spec/views/hyrax/dashboard/collections/_form.html.erb_spec.rb +0 -60
- data/spec/views/hyrax/dashboard/collections/_form_branding.html.erb_spec.rb +0 -23
- data/spec/views/hyrax/dashboard/collections/_form_discovery.erb_spec.rb +0 -67
- data/spec/views/hyrax/dashboard/collections/_form_for_select_collection.html.erb_spec.rb +0 -47
- data/spec/views/hyrax/dashboard/collections/_form_share.erb_spec.rb +0 -22
- data/spec/views/hyrax/dashboard/collections/_form_share_table.html.erb_spec.rb +0 -108
- data/spec/views/hyrax/dashboard/collections/_list_collections.html.erb_spec.rb +0 -51
- data/spec/views/hyrax/dashboard/collections/_show_actions.html.erb_spec.rb +0 -77
- data/spec/views/hyrax/dashboard/collections/_show_add_items_actions.html.erb_spec.rb +0 -46
- data/spec/views/hyrax/dashboard/collections/_show_descriptions.html.erb_spec.rb +0 -32
- data/spec/views/hyrax/dashboard/collections/_show_document_list.html.erb_spec.rb +0 -24
- data/spec/views/hyrax/dashboard/collections/_show_document_list_menu.html.erb_spec.rb +0 -31
- data/spec/views/hyrax/dashboard/collections/_show_document_list_row.html.erb_spec.rb +0 -35
- data/spec/views/hyrax/dashboard/collections/_show_parent_collection_row.html.erb_spec.rb +0 -61
- data/spec/views/hyrax/dashboard/collections/_show_parent_collections.html.erb_spec.rb +0 -82
- data/spec/views/hyrax/dashboard/collections/_show_subcollection_actions.html.erb_spec.rb +0 -62
- data/spec/views/hyrax/dashboard/collections/_sort_and_per_page.html.erb_spec.rb +0 -60
- data/spec/views/hyrax/dashboard/collections/_subcollection_list.html.erb_spec.rb +0 -75
- data/spec/views/hyrax/dashboard/collections/_work_action_menu.html.erb_spec.rb +0 -18
- data/spec/views/hyrax/dashboard/collections/edit.html.erb_spec.rb +0 -20
- data/spec/views/hyrax/dashboard/collections/show.html.erb_spec.rb +0 -116
- data/spec/views/hyrax/dashboard/profiles/_trophy_edit.html.erb_spec.rb +0 -36
- data/spec/views/hyrax/dashboard/profiles/edit.html.erb_spec.rb +0 -67
- data/spec/views/hyrax/dashboard/profiles/show.html.erb_spec.rb +0 -36
- data/spec/views/hyrax/dashboard/show_user_spec.rb +0 -61
- data/spec/views/hyrax/depositors/index.html.erb_spec.rb +0 -13
- data/spec/views/hyrax/embargoes/index.html.erb_spec.rb +0 -14
- data/spec/views/hyrax/file_sets/_actions.html.erb_spec.rb +0 -36
- data/spec/views/hyrax/file_sets/_permission.html.erb_spec.rb +0 -14
- data/spec/views/hyrax/file_sets/_permission_form.html.erb_spec.rb +0 -44
- data/spec/views/hyrax/file_sets/_show_actions.html.erb_spec.rb +0 -62
- data/spec/views/hyrax/file_sets/_show_characterization_details.html.erb_spec.rb +0 -29
- data/spec/views/hyrax/file_sets/_single_use_links.html.erb_spec.rb +0 -34
- data/spec/views/hyrax/file_sets/_versioning.html.erb_spec.rb +0 -16
- data/spec/views/hyrax/file_sets/media_display/_audio.html.erb_spec.rb +0 -29
- data/spec/views/hyrax/file_sets/media_display/_default.html.erb_spec.rb +0 -29
- data/spec/views/hyrax/file_sets/media_display/_video.html.erb_spec.rb +0 -29
- data/spec/views/hyrax/file_sets/show.html.erb_spec.rb +0 -47
- data/spec/views/hyrax/file_sets/show.json.jbuilder_spec.rb +0 -27
- data/spec/views/hyrax/homepage/_announcement.html.erb_spec.rb +0 -27
- data/spec/views/hyrax/homepage/_featured_works.html.erb_spec.rb +0 -40
- data/spec/views/hyrax/homepage/_sortable_featured.html.erb_spec.rb +0 -23
- data/spec/views/hyrax/homepage/index.html.erb_spec.rb +0 -129
- data/spec/views/hyrax/leases/index.html.erb_spec.rb +0 -14
- data/spec/views/hyrax/my/_collection_action_menu.html.erb_spec.rb +0 -65
- data/spec/views/hyrax/my/_search_header.html.erb_spec.rb +0 -34
- data/spec/views/hyrax/my/_work_action_menu.html.erb_spec.rb +0 -40
- data/spec/views/hyrax/my/collections/_list_collections.html.erb_spec.rb +0 -109
- data/spec/views/hyrax/my/collections/index.html.erb_spec.rb +0 -34
- data/spec/views/hyrax/my/facet.html.erb_spec.rb +0 -34
- data/spec/views/hyrax/my/works/_list_works.html.erb_spec.rb +0 -30
- data/spec/views/hyrax/my/works/index.html.erb_spec.rb +0 -69
- data/spec/views/hyrax/permissions/confirm.html.erb_spec.rb +0 -15
- data/spec/views/hyrax/single_use_links_viewer/show.html.erb_spec.rb +0 -17
- data/spec/views/hyrax/single_use_links_viewer/single_use_error.html.erb_spec.rb +0 -6
- data/spec/views/hyrax/stats/file.html.erb_spec.rb +0 -48
- data/spec/views/hyrax/uploads/create.json.jbuilder_spec.rb +0 -17
- data/spec/views/hyrax/users/_user_info.html.erb_spec.rb +0 -25
- data/spec/views/hyrax/users/index.html.erb_spec.rb +0 -25
- data/spec/views/hyrax/users/show.html.erb_spec.rb +0 -55
- data/spec/views/layouts/error.html.erb_spec.rb +0 -6
- data/spec/views/pages/edit.html.erb_spec.rb +0 -27
- data/spec/views/pages/show.html.erb_spec.rb +0 -17
- data/spec/views/records/edit_fields/_based_near.html.erb_spec.rb +0 -20
- data/spec/views/records/edit_fields/_description.html.erb_spec.rb +0 -67
- data/spec/views/records/edit_fields/_language.html.erb_spec.rb +0 -20
- data/spec/views/records/edit_fields/_subject.html.erb_spec.rb +0 -20
- data/spec/views/shared/select_work_type_modal.html.erb_spec.rb +0 -51
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
RSpec.describe "Sending an email via the contact form", type: :feature do
|
|
2
|
-
before { sign_in(:user) }
|
|
3
|
-
|
|
4
|
-
it "sends mail" do
|
|
5
|
-
visit '/'
|
|
6
|
-
click_link "Contact"
|
|
7
|
-
expect(page).to have_content "Contact Form"
|
|
8
|
-
fill_in "Your Name", with: "Test McPherson"
|
|
9
|
-
fill_in "Your Email", with: "archivist1@example.com"
|
|
10
|
-
fill_in "Message", with: "I am contacting you regarding ScholarSphere."
|
|
11
|
-
fill_in "Subject", with: "My Subject is Cool"
|
|
12
|
-
select "Depositing content", from: "Issue Type"
|
|
13
|
-
click_button "Send"
|
|
14
|
-
expect(page).to have_content "Thank you for your message!"
|
|
15
|
-
end
|
|
16
|
-
end
|
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
require 'redlock'
|
|
2
|
-
|
|
3
|
-
RSpec.describe 'Creating a new child Work', :workflow do
|
|
4
|
-
let(:user) { create(:user) }
|
|
5
|
-
let!(:sipity_entity) do
|
|
6
|
-
create(:sipity_entity, proxy_for_global_id: parent.to_global_id.to_s)
|
|
7
|
-
end
|
|
8
|
-
let(:redlock_client_stub) do # stub out redis connection
|
|
9
|
-
client = double('redlock client')
|
|
10
|
-
allow(client).to receive(:lock).and_yield(true)
|
|
11
|
-
allow(Redlock::Client).to receive(:new).and_return(client)
|
|
12
|
-
client
|
|
13
|
-
end
|
|
14
|
-
let!(:parent) { create(:generic_work, user: user, title: ["Parent First"]) }
|
|
15
|
-
|
|
16
|
-
before do
|
|
17
|
-
sign_in user
|
|
18
|
-
# stub out characterization. Travis doesn't have fits installed, and it's not relevant to the test.
|
|
19
|
-
allow(CharacterizeJob).to receive(:perform_later)
|
|
20
|
-
redlock_client_stub
|
|
21
|
-
end
|
|
22
|
-
|
|
23
|
-
it 'creates the child work' do
|
|
24
|
-
visit "/concern/parent/#{parent.id}/generic_works/new"
|
|
25
|
-
work_title = 'My Test Work'
|
|
26
|
-
within('form.new_generic_work') do
|
|
27
|
-
fill_in('Title', with: work_title)
|
|
28
|
-
click_on('Save')
|
|
29
|
-
end
|
|
30
|
-
visit "/concern/generic_works/#{parent.id}"
|
|
31
|
-
expect(page).to have_content work_title
|
|
32
|
-
end
|
|
33
|
-
|
|
34
|
-
context "when it's being updated" do
|
|
35
|
-
let(:curation_concern) { create(:generic_work, user: user) }
|
|
36
|
-
let(:new_parent) { create(:generic_work, user: user) }
|
|
37
|
-
let!(:cc_sipity_entity) do
|
|
38
|
-
create(:sipity_entity, proxy_for_global_id: curation_concern.to_global_id.to_s)
|
|
39
|
-
end
|
|
40
|
-
let!(:new_sipity_entity) do
|
|
41
|
-
create(:sipity_entity, proxy_for_global_id: new_parent.to_global_id.to_s)
|
|
42
|
-
end
|
|
43
|
-
|
|
44
|
-
before do
|
|
45
|
-
parent.ordered_members << curation_concern
|
|
46
|
-
parent.save!
|
|
47
|
-
end
|
|
48
|
-
it 'can be updated' do
|
|
49
|
-
visit "/concern/parent/#{parent.id}/generic_works/#{curation_concern.id}/edit"
|
|
50
|
-
click_on "Save"
|
|
51
|
-
|
|
52
|
-
expect(parent.reload.ordered_members.to_a.length).to eq 1
|
|
53
|
-
end
|
|
54
|
-
it "doesn't lose other memberships" do
|
|
55
|
-
new_parent.ordered_members << curation_concern
|
|
56
|
-
new_parent.save!
|
|
57
|
-
|
|
58
|
-
visit "/concern/parent/#{parent.id}/generic_works/#{curation_concern.id}/edit"
|
|
59
|
-
click_on "Save"
|
|
60
|
-
|
|
61
|
-
expect(parent.reload.ordered_members.to_a.length).to eq 1
|
|
62
|
-
expect(new_parent.reload.ordered_members.to_a.length).to eq 1
|
|
63
|
-
|
|
64
|
-
expect(curation_concern.reload.in_works_ids.length).to eq 2
|
|
65
|
-
end
|
|
66
|
-
|
|
67
|
-
context "with a parent that doesn't belong to this user" do
|
|
68
|
-
let(:new_user) { create(:user) }
|
|
69
|
-
let(:new_parent) { create(:generic_work, user: new_user) }
|
|
70
|
-
|
|
71
|
-
it "fails to update" do
|
|
72
|
-
visit "/concern/parent/#{parent.id}/generic_works/#{curation_concern.id}/edit"
|
|
73
|
-
first("input#generic_work_in_works_ids", visible: false).set new_parent.id
|
|
74
|
-
first("input#parent_id", visible: false).set new_parent.id
|
|
75
|
-
click_on "Save"
|
|
76
|
-
|
|
77
|
-
expect(new_parent.reload.ordered_members.to_a.length).to eq 0
|
|
78
|
-
expect(page).to have_content "Works can only be related to each other if user has ability to edit both."
|
|
79
|
-
end
|
|
80
|
-
end
|
|
81
|
-
end
|
|
82
|
-
end
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
RSpec.describe 'Creating a new Work as admin', :js, :workflow, perform_enqueued: [AttachFilesToWorkJob, IngestJob] do
|
|
2
|
-
let(:user) { create(:admin) }
|
|
3
|
-
let(:admin_set_1) do
|
|
4
|
-
create(:admin_set, id: AdminSet::DEFAULT_ID,
|
|
5
|
-
title: ["Default Admin Set"],
|
|
6
|
-
description: ["A description"],
|
|
7
|
-
edit_users: [user.user_key])
|
|
8
|
-
end
|
|
9
|
-
let(:admin_set_2) do
|
|
10
|
-
create(:admin_set, title: ["Another Admin Set"],
|
|
11
|
-
description: ["A description"],
|
|
12
|
-
edit_users: [user.user_key])
|
|
13
|
-
end
|
|
14
|
-
|
|
15
|
-
context 'when there are multiple admin sets' do
|
|
16
|
-
before do
|
|
17
|
-
create(:permission_template_access,
|
|
18
|
-
:deposit,
|
|
19
|
-
permission_template: create(:permission_template, source_id: admin_set_1.id, with_admin_set: true, with_active_workflow: true),
|
|
20
|
-
agent_type: 'user',
|
|
21
|
-
agent_id: user.user_key)
|
|
22
|
-
create(:permission_template_access,
|
|
23
|
-
:deposit,
|
|
24
|
-
permission_template: create(:permission_template, source_id: admin_set_2.id, with_admin_set: true, with_active_workflow: true),
|
|
25
|
-
agent_type: 'user',
|
|
26
|
-
agent_id: user.user_key)
|
|
27
|
-
sign_in user
|
|
28
|
-
end
|
|
29
|
-
|
|
30
|
-
it "allows default admin set to be the first item in the select menu" do
|
|
31
|
-
visit '/dashboard'
|
|
32
|
-
click_link 'Works'
|
|
33
|
-
click_link "Add new work"
|
|
34
|
-
choose "payload_concern", option: "GenericWork"
|
|
35
|
-
click_button 'Create work'
|
|
36
|
-
click_link "Relationship" # switch tab
|
|
37
|
-
expect(page).to have_content('Administrative Set')
|
|
38
|
-
expect(page).to have_content('Another Admin Set')
|
|
39
|
-
expect(page).to have_content('Default Admin Set')
|
|
40
|
-
expect(page).to have_selector('select#generic_work_admin_set_id')
|
|
41
|
-
expect(page).to have_select('generic_work_admin_set_id', selected: 'Default Admin Set')
|
|
42
|
-
end
|
|
43
|
-
end
|
|
44
|
-
end
|
|
@@ -1,124 +0,0 @@
|
|
|
1
|
-
RSpec.describe 'Creating a new Work', :js, :workflow do
|
|
2
|
-
let(:user) { create(:user) }
|
|
3
|
-
let!(:ability) { ::Ability.new(user) }
|
|
4
|
-
let(:file1) { File.open(fixture_path + '/world.png') }
|
|
5
|
-
let(:file2) { File.open(fixture_path + '/image.jp2') }
|
|
6
|
-
let!(:uploaded_file1) { Hyrax::UploadedFile.create(file: file1, user: user) }
|
|
7
|
-
let!(:uploaded_file2) { Hyrax::UploadedFile.create(file: file2, user: user) }
|
|
8
|
-
|
|
9
|
-
before do
|
|
10
|
-
# Grant the user access to deposit into an admin set.
|
|
11
|
-
create(:permission_template_access,
|
|
12
|
-
:deposit,
|
|
13
|
-
permission_template: create(:permission_template, with_admin_set: true, with_active_workflow: true),
|
|
14
|
-
agent_type: 'user',
|
|
15
|
-
agent_id: user.user_key)
|
|
16
|
-
# stub out characterization. Travis doesn't have fits installed, and it's not relevant to the test.
|
|
17
|
-
allow(CharacterizeJob).to receive(:perform_later)
|
|
18
|
-
end
|
|
19
|
-
|
|
20
|
-
context "when the user is not a proxy" do
|
|
21
|
-
before do
|
|
22
|
-
sign_in user
|
|
23
|
-
click_link 'Works'
|
|
24
|
-
click_link "Add new work"
|
|
25
|
-
choose "payload_concern", option: "GenericWork"
|
|
26
|
-
click_button 'Create work'
|
|
27
|
-
end
|
|
28
|
-
|
|
29
|
-
it 'creates the work' do
|
|
30
|
-
click_link "Files" # switch tab
|
|
31
|
-
expect(page).to have_content "Add files"
|
|
32
|
-
expect(page).to have_content "Add folder"
|
|
33
|
-
within('span#addfiles') do
|
|
34
|
-
attach_file("files[]", "#{Hyrax::Engine.root}/spec/fixtures/image.jp2", visible: false)
|
|
35
|
-
attach_file("files[]", "#{Hyrax::Engine.root}/spec/fixtures/jp2_fits.xml", visible: false)
|
|
36
|
-
end
|
|
37
|
-
click_link "Descriptions" # switch tab
|
|
38
|
-
fill_in('Title', with: 'My Test Work')
|
|
39
|
-
fill_in('Creator', with: 'Doe, Jane')
|
|
40
|
-
fill_in('Keyword', with: 'testing')
|
|
41
|
-
select('In Copyright', from: 'Rights statement')
|
|
42
|
-
# With selenium and the chrome driver, focus remains on the
|
|
43
|
-
# select box. Click outside the box so the next line can't find
|
|
44
|
-
# its element
|
|
45
|
-
find('body').click
|
|
46
|
-
choose('generic_work_visibility_open')
|
|
47
|
-
expect(page).to have_content('Please note, making something visible to the world (i.e. marking this as Public) may be viewed as publishing which could impact your ability to')
|
|
48
|
-
check('agreement')
|
|
49
|
-
# These lines are for debugging, should this test fail
|
|
50
|
-
# puts "Required metadata: #{page.evaluate_script(%{$('#form-progress').data('save_work_control').requiredFields.areComplete})}"
|
|
51
|
-
# puts "Required files: #{page.evaluate_script(%{$('#form-progress').data('save_work_control').uploads.hasFiles})}"
|
|
52
|
-
# puts "Agreement : #{page.evaluate_script(%{$('#form-progress').data('save_work_control').depositAgreement.isAccepted})}"
|
|
53
|
-
click_on('Save')
|
|
54
|
-
expect(page).to have_content('My Test Work')
|
|
55
|
-
expect(page).to have_content "Your files are being processed by Hyrax in the background."
|
|
56
|
-
end
|
|
57
|
-
end
|
|
58
|
-
|
|
59
|
-
context 'when the user is a proxy', perform_enqueued: [ContentDepositorChangeEventJob, AttachFilesToWorkJob, IngestJob] do
|
|
60
|
-
let(:second_user) { create(:user) }
|
|
61
|
-
|
|
62
|
-
before do
|
|
63
|
-
ProxyDepositRights.create!(grantor: second_user, grantee: user)
|
|
64
|
-
sign_in user
|
|
65
|
-
click_link 'Works'
|
|
66
|
-
click_link "Add new work"
|
|
67
|
-
choose "payload_concern", option: "GenericWork"
|
|
68
|
-
click_button 'Create work'
|
|
69
|
-
end
|
|
70
|
-
|
|
71
|
-
it "allows on-behalf-of deposit" do
|
|
72
|
-
click_link "Files" # switch tab
|
|
73
|
-
expect(page).to have_content "Add files"
|
|
74
|
-
within('span#addfiles') do
|
|
75
|
-
attach_file("files[]", "#{Hyrax::Engine.root}/spec/fixtures/image.jp2", visible: false)
|
|
76
|
-
attach_file("files[]", "#{Hyrax::Engine.root}/spec/fixtures/jp2_fits.xml", visible: false)
|
|
77
|
-
end
|
|
78
|
-
click_link "Descriptions" # switch tab
|
|
79
|
-
fill_in('Title', with: 'My Test Work')
|
|
80
|
-
fill_in('Creator', with: 'Doe, Jane')
|
|
81
|
-
fill_in('Keyword', with: 'testing')
|
|
82
|
-
select('In Copyright', from: 'Rights statement')
|
|
83
|
-
# With selenium and the chrome driver, focus remains on the
|
|
84
|
-
# select box. Click outside the box so the next line can't find
|
|
85
|
-
# its element
|
|
86
|
-
find('body').click
|
|
87
|
-
choose('generic_work_visibility_open')
|
|
88
|
-
expect(page).to have_content('Please note, making something visible to the world (i.e. marking this as Public) may be viewed as publishing which could impact your ability to')
|
|
89
|
-
select(second_user.user_key, from: 'On behalf of')
|
|
90
|
-
check('agreement')
|
|
91
|
-
# These lines are for debugging, should this test fail
|
|
92
|
-
# puts "Required metadata: #{page.evaluate_script(%{$('#form-progress').data('save_work_control').requiredFields.areComplete})}"
|
|
93
|
-
# puts "Required files: #{page.evaluate_script(%{$('#form-progress').data('save_work_control').uploads.hasFiles})}"
|
|
94
|
-
# puts "Agreement : #{page.evaluate_script(%{$('#form-progress').data('save_work_control').depositAgreement.isAccepted})}"
|
|
95
|
-
click_on('Save')
|
|
96
|
-
expect(page).to have_content('My Test Work')
|
|
97
|
-
expect(page).to have_content "Your files are being processed by Hyrax in the background."
|
|
98
|
-
|
|
99
|
-
sign_in second_user
|
|
100
|
-
click_link 'Works'
|
|
101
|
-
expect(page).to have_content "My Test Work"
|
|
102
|
-
end
|
|
103
|
-
end
|
|
104
|
-
|
|
105
|
-
context "when a file uploaded and then deleted" do
|
|
106
|
-
before do
|
|
107
|
-
sign_in user
|
|
108
|
-
click_link 'Works'
|
|
109
|
-
click_link "Add new work"
|
|
110
|
-
choose "payload_concern", option: "GenericWork"
|
|
111
|
-
click_button 'Create work'
|
|
112
|
-
end
|
|
113
|
-
|
|
114
|
-
it 'updates the required file check status' do
|
|
115
|
-
click_link "Files" # switch to the Files tab
|
|
116
|
-
within('span#addfiles') do
|
|
117
|
-
attach_file("files[]", "#{Hyrax::Engine.root}/spec/fixtures/image.jp2", visible: false)
|
|
118
|
-
end
|
|
119
|
-
expect(page).to have_css('ul li#required-files.complete', text: 'Add files')
|
|
120
|
-
click_button 'Delete' # delete the file
|
|
121
|
-
expect(page).to have_css('ul li#required-files.incomplete', text: 'Add files')
|
|
122
|
-
end
|
|
123
|
-
end
|
|
124
|
-
end
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
RSpec.describe "As an admin user I should be able to see all works", :clean_repo do
|
|
2
|
-
let!(:work1) { create(:work, title: ['Testing #1'], admin_set: adminset, member_of_collections: [collection]) }
|
|
3
|
-
let!(:work2) { create(:work, title: ['Testing #2'], admin_set: adminset, member_of_collections: [collection]) }
|
|
4
|
-
let(:collection) { build(:collection_lw, with_solr_document: true) }
|
|
5
|
-
let(:adminset) { create(:admin_set) }
|
|
6
|
-
|
|
7
|
-
before do
|
|
8
|
-
sign_in create(:admin)
|
|
9
|
-
end
|
|
10
|
-
it do
|
|
11
|
-
visit '/dashboard/works'
|
|
12
|
-
expect(page).to have_content 'Works'
|
|
13
|
-
expect(page).to have_content 'Testing #1'
|
|
14
|
-
expect(page).to have_content 'Testing #2'
|
|
15
|
-
|
|
16
|
-
# check for filters
|
|
17
|
-
expect(page).to have_button('Collection')
|
|
18
|
-
expect(page).to have_link(collection.title.first, class: 'facet_select')
|
|
19
|
-
expect(page).to have_button('Admin Set')
|
|
20
|
-
expect(page).to have_link(adminset.title.first, class: 'facet_select')
|
|
21
|
-
expect(page).to have_content("2 works in the repository")
|
|
22
|
-
end
|
|
23
|
-
end
|
|
@@ -1,918 +0,0 @@
|
|
|
1
|
-
RSpec.describe 'collection', type: :feature, clean_repo: true do
|
|
2
|
-
include Selectors::Dashboard
|
|
3
|
-
|
|
4
|
-
let(:user) { create(:user) }
|
|
5
|
-
let(:admin_user) { create(:admin) }
|
|
6
|
-
let(:collection_type) { create(:collection_type, creator_user: user) }
|
|
7
|
-
let(:user_collection_type) { create(:user_collection_type) }
|
|
8
|
-
let(:solr_gid_field) { Collection.collection_type_gid_document_field_name }
|
|
9
|
-
let(:solr_model_field) { 'has_model_ssim' }
|
|
10
|
-
|
|
11
|
-
# Setting Title on admin sets to avoid false positive matches with collections.
|
|
12
|
-
let(:admin_set_a) { create(:admin_set, creator: [admin_user.user_key], title: ['Set A'], with_permission_template: true) }
|
|
13
|
-
let(:admin_set_b) { create(:admin_set, creator: [user.user_key], title: ['Set B'], edit_users: [user.user_key], with_permission_template: true) }
|
|
14
|
-
let(:collection1) { create(:public_collection_lw, user: user, collection_type_gid: collection_type.gid, with_permission_template: true) }
|
|
15
|
-
let(:collection2) { create(:public_collection_lw, user: user, collection_type_gid: collection_type.gid, with_permission_template: true) }
|
|
16
|
-
let(:collection3) { create(:public_collection_lw, user: admin_user, collection_type_gid: collection_type.gid, with_permission_template: true) }
|
|
17
|
-
let(:collection4) { create(:public_collection_lw, user: admin_user, collection_type_gid: user_collection_type.gid, with_permission_template: true) }
|
|
18
|
-
|
|
19
|
-
describe 'Your Collections tab' do
|
|
20
|
-
context 'when non-admin user' do
|
|
21
|
-
before do
|
|
22
|
-
user
|
|
23
|
-
admin_user
|
|
24
|
-
admin_set_a
|
|
25
|
-
admin_set_b
|
|
26
|
-
create(:permission_template_access,
|
|
27
|
-
:manage,
|
|
28
|
-
permission_template: admin_set_b.permission_template,
|
|
29
|
-
agent_type: 'user',
|
|
30
|
-
agent_id: user.user_key)
|
|
31
|
-
collection1
|
|
32
|
-
collection2
|
|
33
|
-
collection3
|
|
34
|
-
collection4
|
|
35
|
-
sign_in user
|
|
36
|
-
visit '/dashboard/my/collections'
|
|
37
|
-
end
|
|
38
|
-
|
|
39
|
-
it "has page title, does not have tabs, lists only user's collections, and displays number of collections in the respository" do
|
|
40
|
-
expect(page).to have_content 'Collections'
|
|
41
|
-
expect(page).not_to have_link 'All Collections'
|
|
42
|
-
within('section.tabs-row') do
|
|
43
|
-
expect(page).not_to have_link 'Your Collections'
|
|
44
|
-
end
|
|
45
|
-
expect(page).to have_link(collection1.title.first)
|
|
46
|
-
expect(page).to have_link(collection2.title.first)
|
|
47
|
-
expect(page).to have_link(admin_set_b.title.first)
|
|
48
|
-
expect(page).not_to have_link(collection3.title.first)
|
|
49
|
-
expect(page).not_to have_link(admin_set_a.title.first)
|
|
50
|
-
expect(page).to have_content("3 collections you own in the repository")
|
|
51
|
-
end
|
|
52
|
-
|
|
53
|
-
it "has collection type and visibility filters" do
|
|
54
|
-
expect(page).to have_button 'Visibility'
|
|
55
|
-
expect(page).to have_link 'Public',
|
|
56
|
-
href: /visibility_ssi.+#{Regexp.escape(CGI.escape(collection3.visibility))}/
|
|
57
|
-
expect(page).to have_button 'Collection Type'
|
|
58
|
-
expect(page).to have_link collection_type.title,
|
|
59
|
-
href: /#{solr_gid_field}.+#{Regexp.escape(CGI.escape(collection_type.gid))}/
|
|
60
|
-
expect(page).to have_link 'AdminSet',
|
|
61
|
-
href: /#{solr_model_field}.+#{Regexp.escape('AdminSet')}/
|
|
62
|
-
expect(page).not_to have_link user_collection_type.title,
|
|
63
|
-
href: /#{solr_gid_field}.+#{Regexp.escape(CGI.escape(user_collection_type.gid))}/
|
|
64
|
-
expect(page).not_to have_link 'Collection',
|
|
65
|
-
href: /#{solr_model_field}.+#{Regexp.escape('Collection')}/
|
|
66
|
-
end
|
|
67
|
-
end
|
|
68
|
-
|
|
69
|
-
context 'when admin user' do
|
|
70
|
-
before do
|
|
71
|
-
user
|
|
72
|
-
admin_user
|
|
73
|
-
admin_set_a
|
|
74
|
-
admin_set_b
|
|
75
|
-
create(:permission_template_access,
|
|
76
|
-
:manage,
|
|
77
|
-
permission_template: admin_set_a.permission_template,
|
|
78
|
-
agent_type: 'user',
|
|
79
|
-
agent_id: admin_user.user_key)
|
|
80
|
-
create(:permission_template_access,
|
|
81
|
-
:manage,
|
|
82
|
-
permission_template: admin_set_b.permission_template,
|
|
83
|
-
agent_type: 'group',
|
|
84
|
-
agent_id: 'admin')
|
|
85
|
-
collection1
|
|
86
|
-
collection2
|
|
87
|
-
collection3
|
|
88
|
-
collection4
|
|
89
|
-
sign_in admin_user
|
|
90
|
-
visit '/dashboard/my/collections'
|
|
91
|
-
end
|
|
92
|
-
|
|
93
|
-
it "has page title, has tabs for All Collections and Your Collections, and lists collections with edit access" do
|
|
94
|
-
expect(page).to have_content 'Collections'
|
|
95
|
-
expect(page).to have_link 'All Collections'
|
|
96
|
-
expect(page).to have_link 'Your Collections'
|
|
97
|
-
expect(page).to have_link(collection3.title.first)
|
|
98
|
-
expect(page).to have_link(collection4.title.first)
|
|
99
|
-
expect(page).to have_link(admin_set_a.title.first)
|
|
100
|
-
expect(page).not_to have_link(collection1.title.first)
|
|
101
|
-
expect(page).not_to have_link(collection2.title.first)
|
|
102
|
-
expect(page).not_to have_link(admin_set_b.title.first)
|
|
103
|
-
end
|
|
104
|
-
|
|
105
|
-
it "has collection type and visibility filters" do
|
|
106
|
-
expect(page).to have_button 'Visibility'
|
|
107
|
-
expect(page).to have_link 'Public',
|
|
108
|
-
href: /visibility_ssi.+#{Regexp.escape(CGI.escape(collection3.visibility))}/
|
|
109
|
-
expect(page).to have_button 'Collection Type'
|
|
110
|
-
expect(page).to have_link collection_type.title,
|
|
111
|
-
href: /#{solr_gid_field}.+#{Regexp.escape(CGI.escape(collection_type.gid))}/
|
|
112
|
-
expect(page).to have_link user_collection_type.title,
|
|
113
|
-
href: /#{solr_gid_field}.+#{Regexp.escape(CGI.escape(user_collection_type.gid))}/
|
|
114
|
-
expect(page).to have_link 'AdminSet',
|
|
115
|
-
href: /#{solr_model_field}.+#{Regexp.escape('AdminSet')}/
|
|
116
|
-
expect(page).not_to have_link 'Collection',
|
|
117
|
-
href: /#{solr_model_field}.+#{Regexp.escape('Collection')}/
|
|
118
|
-
end
|
|
119
|
-
end
|
|
120
|
-
end
|
|
121
|
-
|
|
122
|
-
describe 'All Collections tab (for admin users only)' do
|
|
123
|
-
before do
|
|
124
|
-
user
|
|
125
|
-
admin_user
|
|
126
|
-
collection1
|
|
127
|
-
collection2
|
|
128
|
-
collection3
|
|
129
|
-
collection4
|
|
130
|
-
admin_set_a
|
|
131
|
-
admin_set_b
|
|
132
|
-
sign_in admin_user
|
|
133
|
-
visit '/dashboard/my/collections'
|
|
134
|
-
end
|
|
135
|
-
|
|
136
|
-
it 'lists all collections for all users' do
|
|
137
|
-
expect(page).to have_link 'All Collection'
|
|
138
|
-
click_link 'All Collections'
|
|
139
|
-
expect(page).to have_link(collection1.title.first)
|
|
140
|
-
expect(page).to have_link(collection2.title.first)
|
|
141
|
-
expect(page).to have_link(collection3.title.first)
|
|
142
|
-
expect(page).to have_link(collection4.title.first)
|
|
143
|
-
expect(page).to have_link(admin_set_a.title.first)
|
|
144
|
-
expect(page).to have_link(admin_set_b.title.first)
|
|
145
|
-
end
|
|
146
|
-
|
|
147
|
-
it 'has a collection type filter' do
|
|
148
|
-
expect(page).to have_link 'All Collection'
|
|
149
|
-
click_link 'All Collections'
|
|
150
|
-
expect(page).to have_button 'Visibility'
|
|
151
|
-
expect(page).to have_link 'Public',
|
|
152
|
-
href: /visibility_ssi.+#{Regexp.escape(CGI.escape(collection1.visibility))}/
|
|
153
|
-
expect(page).to have_button 'Collection Type'
|
|
154
|
-
expect(page).to have_link collection_type.title,
|
|
155
|
-
href: /#{solr_gid_field}.+#{Regexp.escape(CGI.escape(collection_type.gid))}/
|
|
156
|
-
expect(page).to have_link user_collection_type.title,
|
|
157
|
-
href: /#{solr_gid_field}.+#{Regexp.escape(CGI.escape(user_collection_type.gid))}/
|
|
158
|
-
expect(page).to have_link 'AdminSet',
|
|
159
|
-
href: /#{solr_model_field}.+#{Regexp.escape('AdminSet')}/
|
|
160
|
-
expect(page).not_to have_link 'Collection',
|
|
161
|
-
href: /#{solr_model_field}.+#{Regexp.escape('Collection')}/
|
|
162
|
-
end
|
|
163
|
-
end
|
|
164
|
-
|
|
165
|
-
describe 'Managed Collections tab (for non-admin users with shared access' do
|
|
166
|
-
let(:user2) { create(:user) }
|
|
167
|
-
|
|
168
|
-
before do
|
|
169
|
-
user
|
|
170
|
-
admin_user
|
|
171
|
-
collection1
|
|
172
|
-
collection2
|
|
173
|
-
collection3
|
|
174
|
-
collection4
|
|
175
|
-
create(:permission_template_access,
|
|
176
|
-
:manage,
|
|
177
|
-
permission_template: collection1.permission_template,
|
|
178
|
-
agent_type: 'user',
|
|
179
|
-
agent_id: user2.user_key)
|
|
180
|
-
collection1.reset_access_controls!
|
|
181
|
-
create(:permission_template_access,
|
|
182
|
-
:deposit,
|
|
183
|
-
permission_template: collection2.permission_template,
|
|
184
|
-
agent_type: 'user',
|
|
185
|
-
agent_id: user2.user_key)
|
|
186
|
-
collection2.reset_access_controls!
|
|
187
|
-
create(:permission_template_access,
|
|
188
|
-
:view,
|
|
189
|
-
permission_template: collection4.permission_template,
|
|
190
|
-
agent_type: 'user',
|
|
191
|
-
agent_id: user2.user_key)
|
|
192
|
-
collection4.reset_access_controls!
|
|
193
|
-
sign_in user2
|
|
194
|
-
visit '/dashboard/my/collections'
|
|
195
|
-
end
|
|
196
|
-
|
|
197
|
-
it 'lists managed collections only for user2' do
|
|
198
|
-
expect(page).to have_link 'Managed Collections'
|
|
199
|
-
click_link 'Managed Collections'
|
|
200
|
-
expect(page).to have_link(collection1.title.first)
|
|
201
|
-
expect(page).to have_link(collection2.title.first)
|
|
202
|
-
expect(page).not_to have_link(collection3.title.first)
|
|
203
|
-
expect(page).to have_link(collection4.title.first)
|
|
204
|
-
expect(page).not_to have_link(admin_set_a.title.first)
|
|
205
|
-
expect(page).not_to have_link(admin_set_b.title.first)
|
|
206
|
-
end
|
|
207
|
-
|
|
208
|
-
it 'has a collection type filter' do
|
|
209
|
-
expect(page).to have_link 'Managed Collections'
|
|
210
|
-
click_link 'Managed Collections'
|
|
211
|
-
expect(page).to have_button 'Visibility'
|
|
212
|
-
expect(page).to have_link 'Public',
|
|
213
|
-
href: /visibility_ssi.+#{Regexp.escape(CGI.escape(collection1.visibility))}/
|
|
214
|
-
expect(page).to have_button 'Collection Type'
|
|
215
|
-
expect(page).to have_link collection_type.title,
|
|
216
|
-
href: /#{solr_gid_field}.+#{Regexp.escape(CGI.escape(collection_type.gid))}/
|
|
217
|
-
expect(page).to have_link user_collection_type.title,
|
|
218
|
-
href: /#{solr_gid_field}.+#{Regexp.escape(CGI.escape(user_collection_type.gid))}/
|
|
219
|
-
expect(page).not_to have_link 'AdminSet',
|
|
220
|
-
href: /#{solr_model_field}.+#{Regexp.escape('AdminSet')}/
|
|
221
|
-
expect(page).not_to have_link 'Collection',
|
|
222
|
-
href: /#{solr_model_field}.+#{Regexp.escape('Collection')}/
|
|
223
|
-
end
|
|
224
|
-
end
|
|
225
|
-
|
|
226
|
-
describe 'create collection' do
|
|
227
|
-
let(:title) { "Test Collection" }
|
|
228
|
-
let(:description) { "Description for collection we are testing." }
|
|
229
|
-
|
|
230
|
-
context 'when user can create collections of multiple types' do
|
|
231
|
-
before do
|
|
232
|
-
collection_type
|
|
233
|
-
user_collection_type
|
|
234
|
-
|
|
235
|
-
sign_in user
|
|
236
|
-
visit '/dashboard/my/collections'
|
|
237
|
-
end
|
|
238
|
-
|
|
239
|
-
it "makes a new collection", :js do
|
|
240
|
-
click_button "New Collection"
|
|
241
|
-
expect(page).to have_content 'Select type of collection'
|
|
242
|
-
|
|
243
|
-
choose('User Collection')
|
|
244
|
-
click_on('Create collection')
|
|
245
|
-
|
|
246
|
-
expect(page).to have_selector('h1', text: 'New User Collection')
|
|
247
|
-
expect(page).to have_selector "input.collection_title.multi_value"
|
|
248
|
-
|
|
249
|
-
click_link('Additional fields')
|
|
250
|
-
expect(page).to have_selector "input.collection_creator.multi_value"
|
|
251
|
-
|
|
252
|
-
fill_in('Title', with: title)
|
|
253
|
-
fill_in('Abstract or Summary', with: description)
|
|
254
|
-
fill_in('Related URL', with: 'http://example.com/')
|
|
255
|
-
|
|
256
|
-
click_button("Save")
|
|
257
|
-
expect(page).to have_content title
|
|
258
|
-
expect(page).to have_content description
|
|
259
|
-
end
|
|
260
|
-
|
|
261
|
-
it "has properly formed collection type buttons" do
|
|
262
|
-
expect(page).not_to have_selector("input[data-path$='collections/new&collection_type_id=1']")
|
|
263
|
-
expect(page).to have_selector("input[data-path$='collections/new?locale=en&collection_type_id=1']")
|
|
264
|
-
end
|
|
265
|
-
end
|
|
266
|
-
|
|
267
|
-
context 'when user can create collections of one type' do
|
|
268
|
-
before do
|
|
269
|
-
user_collection_type
|
|
270
|
-
|
|
271
|
-
sign_in user
|
|
272
|
-
visit '/dashboard/my/collections'
|
|
273
|
-
end
|
|
274
|
-
|
|
275
|
-
it 'makes a new collection' do
|
|
276
|
-
click_link "New Collection"
|
|
277
|
-
expect(page).to have_selector('h1', text: 'New User Collection')
|
|
278
|
-
expect(page).to have_selector "input.collection_title.multi_value"
|
|
279
|
-
|
|
280
|
-
click_link('Additional fields')
|
|
281
|
-
expect(page).to have_selector "input.collection_creator.multi_value"
|
|
282
|
-
|
|
283
|
-
fill_in('Title', with: title)
|
|
284
|
-
fill_in('Abstract or Summary', with: description)
|
|
285
|
-
fill_in('Related URL', with: 'http://example.com/')
|
|
286
|
-
|
|
287
|
-
click_button("Save")
|
|
288
|
-
expect(page).to have_content title
|
|
289
|
-
expect(page).to have_content description
|
|
290
|
-
end
|
|
291
|
-
end
|
|
292
|
-
|
|
293
|
-
context 'when user can not create collections' do
|
|
294
|
-
before do
|
|
295
|
-
sign_in user
|
|
296
|
-
visit '/dashboard/my/collections'
|
|
297
|
-
end
|
|
298
|
-
|
|
299
|
-
it 'does show New Collection button' do
|
|
300
|
-
expect(page).not_to have_link "New Collection"
|
|
301
|
-
expect(page).not_to have_button "New Collection"
|
|
302
|
-
end
|
|
303
|
-
end
|
|
304
|
-
end
|
|
305
|
-
|
|
306
|
-
# TODO: this section is still deactivated
|
|
307
|
-
describe "adding works to a collection", skip: "we need to define a dashboard/works path" do
|
|
308
|
-
let!(:collection) { create!(:collection, title: ["Barrel of monkeys"], user: user, with_permission_template: true) }
|
|
309
|
-
let!(:work1) { create(:work, title: ["King Louie"], user: user) }
|
|
310
|
-
let!(:work2) { create(:work, title: ["King Kong"], user: user) }
|
|
311
|
-
|
|
312
|
-
before do
|
|
313
|
-
sign_in user
|
|
314
|
-
end
|
|
315
|
-
|
|
316
|
-
it "attaches the works", :js do
|
|
317
|
-
visit '/dashboard/my/works'
|
|
318
|
-
first('input#check_all').click
|
|
319
|
-
click_button "Add to collection" # opens the modal
|
|
320
|
-
# since there is only one collection, it's not necessary to choose a radio button
|
|
321
|
-
click_button "Update Collection"
|
|
322
|
-
expect(page).to have_content "Works in this Collection"
|
|
323
|
-
# There are two rows in the table per document (one for the general info, one for the details)
|
|
324
|
-
# Make sure we have at least 2 documents
|
|
325
|
-
expect(page).to have_selector "table.table-zebra-striped tr#document_#{work1.id}"
|
|
326
|
-
expect(page).to have_selector "table.table-zebra-striped tr#document_#{work2.id}"
|
|
327
|
-
end
|
|
328
|
-
end
|
|
329
|
-
|
|
330
|
-
describe 'delete collection' do
|
|
331
|
-
let!(:empty_collection) { create(:public_collection_lw, title: ['Empty Collection'], user: user, with_permission_template: true) }
|
|
332
|
-
let!(:collection) { create(:public_collection_lw, title: ['Collection with Work'], user: user, with_permission_template: true) }
|
|
333
|
-
let!(:admin_user) { create(:admin) }
|
|
334
|
-
let!(:empty_adminset) { create(:admin_set, title: ['Empty Admin Set'], creator: [admin_user.user_key], with_permission_template: true) }
|
|
335
|
-
let!(:adminset) { create(:admin_set, title: ['Admin Set with Work'], creator: [admin_user.user_key], with_permission_template: true) }
|
|
336
|
-
let!(:work) { create(:work, title: ["King Louie"], admin_set: adminset, member_of_collections: [collection], user: user) }
|
|
337
|
-
|
|
338
|
-
# check table row has appropriate data attributes added
|
|
339
|
-
def check_tr_data_attributes(id, type)
|
|
340
|
-
url_fragment = get_url_fragment(type)
|
|
341
|
-
expect(page).to have_selector("tr[data-id='#{id}'][data-colls-hash]")
|
|
342
|
-
expect(page).to have_selector("tr[data-post-url='/dashboard/collections/#{id}/within?locale=en']")
|
|
343
|
-
expect(page).to have_selector("tr[data-post-delete-url='/#{url_fragment}/#{id}?locale=en']")
|
|
344
|
-
end
|
|
345
|
-
|
|
346
|
-
# check data attributes have been transferred from table row to the modal
|
|
347
|
-
def check_modal_data_attributes(id, type)
|
|
348
|
-
url_fragment = get_url_fragment(type)
|
|
349
|
-
expect(page).to have_selector("div[data-id='#{id}']")
|
|
350
|
-
expect(page).to have_selector("div[data-post-delete-url='/#{url_fragment}/#{id}?locale=en']")
|
|
351
|
-
end
|
|
352
|
-
|
|
353
|
-
def get_url_fragment(type)
|
|
354
|
-
(type == 'admin_set' ? 'admin/admin_sets' : 'dashboard/collections')
|
|
355
|
-
end
|
|
356
|
-
|
|
357
|
-
context 'when user created the collection' do
|
|
358
|
-
before do
|
|
359
|
-
user
|
|
360
|
-
sign_in user
|
|
361
|
-
visit '/dashboard/my/collections' # Your Collections tab
|
|
362
|
-
end
|
|
363
|
-
|
|
364
|
-
context 'and collection is empty' do
|
|
365
|
-
it 'and user confirms delete, deletes the collection', :js do
|
|
366
|
-
within("table#collections-list-table") do
|
|
367
|
-
expect(page).to have_content(empty_collection.title.first)
|
|
368
|
-
end
|
|
369
|
-
check_tr_data_attributes(empty_collection.id, 'collection')
|
|
370
|
-
# check that modal data attributes haven't been added yet
|
|
371
|
-
expect(page).not_to have_selector("div[data-id='#{empty_collection.id}']")
|
|
372
|
-
within('#document_' + empty_collection.id) do
|
|
373
|
-
first('button.dropdown-toggle').click
|
|
374
|
-
first('.itemtrash').click
|
|
375
|
-
end
|
|
376
|
-
expect(page).to have_selector("div#collection-empty-to-delete-modal", visible: true)
|
|
377
|
-
check_modal_data_attributes(empty_collection.id, 'collection')
|
|
378
|
-
within("div#collection-empty-to-delete-modal") do
|
|
379
|
-
click_button('Delete')
|
|
380
|
-
end
|
|
381
|
-
within("table#collections-list-table") do
|
|
382
|
-
expect(page).not_to have_content(empty_collection.title.first)
|
|
383
|
-
end
|
|
384
|
-
end
|
|
385
|
-
|
|
386
|
-
it 'and user cancels, does NOT delete the collection', :js do
|
|
387
|
-
within("table#collections-list-table") do
|
|
388
|
-
expect(page).to have_content(collection.title.first)
|
|
389
|
-
end
|
|
390
|
-
check_tr_data_attributes(empty_collection.id, 'collection')
|
|
391
|
-
# check that modal data attributes haven't been added yet
|
|
392
|
-
expect(page).not_to have_selector("div[data-id='#{empty_collection.id}']")
|
|
393
|
-
within("#document_#{empty_collection.id}") do
|
|
394
|
-
first('button.dropdown-toggle').click
|
|
395
|
-
first('.itemtrash').click
|
|
396
|
-
end
|
|
397
|
-
expect(page).to have_selector("div#collection-empty-to-delete-modal", visible: true)
|
|
398
|
-
check_modal_data_attributes(empty_collection.id, 'collection')
|
|
399
|
-
|
|
400
|
-
within("div#collection-empty-to-delete-modal") do
|
|
401
|
-
click_button('Cancel')
|
|
402
|
-
end
|
|
403
|
-
within("table#collections-list-table") do
|
|
404
|
-
expect(page).to have_content(collection.title.first)
|
|
405
|
-
end
|
|
406
|
-
end
|
|
407
|
-
end
|
|
408
|
-
|
|
409
|
-
context 'and collection is not empty' do
|
|
410
|
-
it 'and user confirms delete, deletes the collection', :js do
|
|
411
|
-
within("table#collections-list-table") do
|
|
412
|
-
expect(page).to have_content(collection.title.first)
|
|
413
|
-
end
|
|
414
|
-
check_tr_data_attributes(collection.id, 'collection')
|
|
415
|
-
within("#document_#{collection.id}") do
|
|
416
|
-
first('button.dropdown-toggle').click
|
|
417
|
-
first('.itemtrash').click
|
|
418
|
-
end
|
|
419
|
-
expect(page).to have_selector("div#collection-to-delete-modal", visible: true)
|
|
420
|
-
check_modal_data_attributes(collection.id, 'collection')
|
|
421
|
-
within("div#collection-to-delete-modal") do
|
|
422
|
-
find('button.modal-delete-button').click
|
|
423
|
-
end
|
|
424
|
-
within("table#collections-list-table") do
|
|
425
|
-
expect(page).not_to have_content(collection.title.first)
|
|
426
|
-
end
|
|
427
|
-
end
|
|
428
|
-
|
|
429
|
-
it 'and user cancels, does NOT delete the collection', :js do
|
|
430
|
-
within("table#collections-list-table") do
|
|
431
|
-
expect(page).to have_content(collection.title.first)
|
|
432
|
-
end
|
|
433
|
-
within("#document_#{collection.id}") do
|
|
434
|
-
first('button.dropdown-toggle').click
|
|
435
|
-
first('.itemtrash').click
|
|
436
|
-
end
|
|
437
|
-
expect(page).to have_selector("div#collection-to-delete-modal", visible: true)
|
|
438
|
-
|
|
439
|
-
within("div#collection-to-delete-modal") do
|
|
440
|
-
click_button('Cancel')
|
|
441
|
-
end
|
|
442
|
-
within("table#collections-list-table") do
|
|
443
|
-
expect(page).to have_content(collection.title.first)
|
|
444
|
-
end
|
|
445
|
-
end
|
|
446
|
-
end
|
|
447
|
-
end
|
|
448
|
-
|
|
449
|
-
context 'when user does not have permission to delete a collection' do
|
|
450
|
-
let(:user2) { create(:user) }
|
|
451
|
-
|
|
452
|
-
before do
|
|
453
|
-
create(:permission_template_access,
|
|
454
|
-
:deposit,
|
|
455
|
-
permission_template: collection.permission_template,
|
|
456
|
-
agent_type: 'user',
|
|
457
|
-
agent_id: user2.user_key)
|
|
458
|
-
sign_in user2
|
|
459
|
-
visit '/dashboard/collections' # Managed Collections tab
|
|
460
|
-
end
|
|
461
|
-
|
|
462
|
-
context 'and selects Delete from drop down within table' do
|
|
463
|
-
it 'does not allow delete collection', js: true do
|
|
464
|
-
expect(page).to have_content(collection.title.first)
|
|
465
|
-
check_tr_data_attributes(collection.id, 'collection')
|
|
466
|
-
within("#document_#{collection.id}") do
|
|
467
|
-
first('button.dropdown-toggle').click
|
|
468
|
-
first('.itemtrash').click
|
|
469
|
-
end
|
|
470
|
-
|
|
471
|
-
# Exepct the modal to be shown that explains why the user can't delete the collection.
|
|
472
|
-
expect(page).to have_selector('div#collection-to-delete-deny-modal', visible: true)
|
|
473
|
-
within('div#collection-to-delete-deny-modal') do
|
|
474
|
-
click_button('Close')
|
|
475
|
-
end
|
|
476
|
-
expect(page).to have_content(collection.title.first)
|
|
477
|
-
end
|
|
478
|
-
end
|
|
479
|
-
end
|
|
480
|
-
|
|
481
|
-
context 'when user created the admin set' do
|
|
482
|
-
before do
|
|
483
|
-
sign_in admin_user
|
|
484
|
-
visit '/dashboard/collections' # All Collections tab
|
|
485
|
-
end
|
|
486
|
-
|
|
487
|
-
context 'and admin set is empty' do
|
|
488
|
-
it 'and user confirms delete, deletes the admin set', :js do
|
|
489
|
-
expect(page).to have_content(empty_adminset.title.first)
|
|
490
|
-
check_tr_data_attributes(empty_adminset.id, 'admin_set')
|
|
491
|
-
within('#document_' + empty_adminset.id) do
|
|
492
|
-
first('button.dropdown-toggle').click
|
|
493
|
-
first('.itemtrash').click
|
|
494
|
-
end
|
|
495
|
-
expect(page).to have_selector("div#collection-empty-to-delete-modal", visible: true)
|
|
496
|
-
check_modal_data_attributes(empty_adminset.id, 'admin_set')
|
|
497
|
-
within("div#collection-empty-to-delete-modal") do
|
|
498
|
-
find('button.modal-delete-button').click
|
|
499
|
-
end
|
|
500
|
-
expect(page).not_to have_content(empty_adminset.title.first)
|
|
501
|
-
end
|
|
502
|
-
|
|
503
|
-
it 'and user cancels, does NOT delete the admin set', :js do
|
|
504
|
-
expect(page).to have_content(empty_adminset.title.first)
|
|
505
|
-
check_tr_data_attributes(empty_adminset.id, 'admin_set')
|
|
506
|
-
within("#document_#{empty_adminset.id}") do
|
|
507
|
-
first('button.dropdown-toggle').click
|
|
508
|
-
first('.itemtrash').click
|
|
509
|
-
end
|
|
510
|
-
expect(page).to have_selector("div#collection-empty-to-delete-modal", visible: true)
|
|
511
|
-
check_modal_data_attributes(empty_adminset.id, 'admin_set')
|
|
512
|
-
within("div#collection-empty-to-delete-modal") do
|
|
513
|
-
click_button('Cancel')
|
|
514
|
-
end
|
|
515
|
-
expect(page).to have_content(empty_adminset.title.first)
|
|
516
|
-
end
|
|
517
|
-
end
|
|
518
|
-
|
|
519
|
-
context 'and admin set is not empty' do
|
|
520
|
-
it 'does not allow delete admin set' do
|
|
521
|
-
expect(page).to have_content(adminset.title.first)
|
|
522
|
-
check_tr_data_attributes(adminset.id, 'admin_set')
|
|
523
|
-
within("#document_#{adminset.id}") do
|
|
524
|
-
first('button.dropdown-toggle').click
|
|
525
|
-
first('.itemtrash').click
|
|
526
|
-
end
|
|
527
|
-
expect(page).to have_selector("div#collection-admin-set-delete-deny-modal", visible: true)
|
|
528
|
-
within("div#collection-admin-set-delete-deny-modal") do
|
|
529
|
-
click_button('Close')
|
|
530
|
-
end
|
|
531
|
-
expect(page).to have_content(adminset.title.first)
|
|
532
|
-
end
|
|
533
|
-
end
|
|
534
|
-
end
|
|
535
|
-
|
|
536
|
-
context 'when user without permissions selects delete' do
|
|
537
|
-
let(:user2) { create(:user) }
|
|
538
|
-
|
|
539
|
-
before do
|
|
540
|
-
create(:permission_template_access,
|
|
541
|
-
:view,
|
|
542
|
-
permission_template: adminset.permission_template,
|
|
543
|
-
agent_type: 'user',
|
|
544
|
-
agent_id: user2.user_key)
|
|
545
|
-
sign_in user2
|
|
546
|
-
visit '/dashboard/collections' # Managed Collections tab
|
|
547
|
-
end
|
|
548
|
-
|
|
549
|
-
xit 'does not allow delete admin set' do
|
|
550
|
-
# TODO: Depositors & viewers cannot see admin sets in Managed Collections list. Should they?
|
|
551
|
-
expect(page).to have_content(adminset.title.first)
|
|
552
|
-
within("#document_#{adminset.id}") do
|
|
553
|
-
first('button.dropdown-toggle').click
|
|
554
|
-
first('.itemtrash').click
|
|
555
|
-
end
|
|
556
|
-
expect(page).to have_selector('div#collection-to-delete-deny-modal', visible: true)
|
|
557
|
-
within('div#collection-to-delete-deny-modal') do
|
|
558
|
-
click_button('Close')
|
|
559
|
-
end
|
|
560
|
-
expect(page).to have_content(adminset.title.first)
|
|
561
|
-
end
|
|
562
|
-
end
|
|
563
|
-
end
|
|
564
|
-
|
|
565
|
-
describe 'collection show page' do
|
|
566
|
-
let(:collection) do
|
|
567
|
-
build(:public_collection_lw, user: user, description: ['collection description'], with_permission_template: true)
|
|
568
|
-
end
|
|
569
|
-
let!(:work1) { create(:work, title: ["King Louie"], member_of_collections: [collection], user: user) }
|
|
570
|
-
let!(:work2) { create(:work, title: ["King Kong"], member_of_collections: [collection], user: user) }
|
|
571
|
-
|
|
572
|
-
before do
|
|
573
|
-
sign_in user
|
|
574
|
-
visit '/dashboard/my/collections'
|
|
575
|
-
end
|
|
576
|
-
|
|
577
|
-
it "has creation date for collections and shows a collection with a listing of Descriptive Metadata and catalog-style search results" do
|
|
578
|
-
expect(page).to have_content(collection.create_date.to_date.to_formatted_s(:standard))
|
|
579
|
-
|
|
580
|
-
expect(page).to have_content(collection.title.first)
|
|
581
|
-
within('#document_' + collection.id) do
|
|
582
|
-
click_link("Display all details of #{collection.title.first}")
|
|
583
|
-
end
|
|
584
|
-
expect(page).to have_content(collection.title.first)
|
|
585
|
-
expect(page).to have_content(collection.description.first)
|
|
586
|
-
# Should not show title and description a second time
|
|
587
|
-
expect(page).not_to have_css('.metadata-collections', text: collection.title.first)
|
|
588
|
-
expect(page).not_to have_css('.metadata-collections', text: collection.description.first)
|
|
589
|
-
# Should not have Collection Descriptive metadata table
|
|
590
|
-
expect(page).to have_content("Descriptions")
|
|
591
|
-
# Should have search results / contents listing
|
|
592
|
-
expect(page).to have_content(work1.title.first)
|
|
593
|
-
expect(page).to have_content(work2.title.first)
|
|
594
|
-
expect(page).not_to have_css(".pagination")
|
|
595
|
-
|
|
596
|
-
click_link "Gallery"
|
|
597
|
-
expect(page).to have_content(work1.title.first)
|
|
598
|
-
expect(page).to have_content(work2.title.first)
|
|
599
|
-
end
|
|
600
|
-
|
|
601
|
-
it "hides collection descriptive metadata when searching a collection" do
|
|
602
|
-
# URL: /dashboard/my/collections
|
|
603
|
-
expect(page).to have_content(collection.title.first)
|
|
604
|
-
within("#document_#{collection.id}") do
|
|
605
|
-
click_link("Display all details of #{collection.title.first}")
|
|
606
|
-
end
|
|
607
|
-
# URL: /dashboard/collections/collection-id
|
|
608
|
-
expect(page).to have_content(collection.title.first)
|
|
609
|
-
expect(page).to have_content(collection.description.first)
|
|
610
|
-
expect(page).to have_content(work1.title.first)
|
|
611
|
-
expect(page).to have_content(work2.title.first)
|
|
612
|
-
fill_in('collection_search', with: work1.title.first)
|
|
613
|
-
click_button('collection_submit')
|
|
614
|
-
# Should not have Collection metadata table (only title and description)
|
|
615
|
-
expect(page).not_to have_content("Total works")
|
|
616
|
-
expect(page).to have_content(collection.title.first)
|
|
617
|
-
expect(page).to have_content(collection.description.first)
|
|
618
|
-
# Should have search results / contents listing
|
|
619
|
-
expect(page).to have_content("Search Results")
|
|
620
|
-
expect(page).to have_content(work1.title.first)
|
|
621
|
-
expect(page).not_to have_content(work2.title.first)
|
|
622
|
-
end
|
|
623
|
-
|
|
624
|
-
context 'adding existing works to a collection', js: true do
|
|
625
|
-
before do
|
|
626
|
-
collection1 # create collections by referencing them
|
|
627
|
-
collection2
|
|
628
|
-
sign_in user
|
|
629
|
-
end
|
|
630
|
-
|
|
631
|
-
it "preselects the collection we are adding works to and adds the selected works" do
|
|
632
|
-
visit "/dashboard/collections/#{collection1.id}"
|
|
633
|
-
click_link 'Add existing works'
|
|
634
|
-
find('input#check_all').click
|
|
635
|
-
click_button "Add to collection"
|
|
636
|
-
expect(page).to have_selector "#member_of_collection_ids[value=\"#{collection1.id}\"]", visible: false
|
|
637
|
-
expect(page).to have_selector "#member_of_collection_label[value=\"#{collection1.title.first}\"]"
|
|
638
|
-
|
|
639
|
-
visit "/dashboard/collections/#{collection2.id}"
|
|
640
|
-
click_link 'Add existing works'
|
|
641
|
-
find('input#check_all').click
|
|
642
|
-
click_button "Add to collection"
|
|
643
|
-
expect(page).to have_selector "#member_of_collection_ids[value=\"#{collection2.id}\"]", visible: false
|
|
644
|
-
expect(page).to have_selector "#member_of_collection_label[value=\"#{collection2.title.first}\"]"
|
|
645
|
-
|
|
646
|
-
click_button "Save changes"
|
|
647
|
-
expect(page).to have_content(work1.title.first)
|
|
648
|
-
expect(page).to have_content(work2.title.first)
|
|
649
|
-
end
|
|
650
|
-
end
|
|
651
|
-
|
|
652
|
-
context 'adding a new works to a collection', js: true do
|
|
653
|
-
before do
|
|
654
|
-
collection1 # create collections by referencing them
|
|
655
|
-
collection2
|
|
656
|
-
sign_in user
|
|
657
|
-
# stub out characterization. Travis doesn't have fits installed, and it's not relevant to the test.
|
|
658
|
-
allow(CharacterizeJob).to receive(:perform_later)
|
|
659
|
-
end
|
|
660
|
-
|
|
661
|
-
it "preselects the collection we are adding works to and adds the new work" do
|
|
662
|
-
visit "/dashboard/collections/#{collection1.id}"
|
|
663
|
-
click_link 'Deposit new work through this collection'
|
|
664
|
-
choose "payload_concern", option: "GenericWork"
|
|
665
|
-
click_button 'Create work'
|
|
666
|
-
|
|
667
|
-
# verify the collection is pre-selected
|
|
668
|
-
click_link "Relationships" # switch tab
|
|
669
|
-
expect(page).to have_selector("table tr", text: collection1.title.first)
|
|
670
|
-
expect(page).not_to have_selector("table tr", text: collection2.title.first)
|
|
671
|
-
|
|
672
|
-
# add required file
|
|
673
|
-
click_link "Files" # switch tab
|
|
674
|
-
within('span#addfiles') do
|
|
675
|
-
attach_file("files[]", "#{Hyrax::Engine.root}/spec/fixtures/image.jp2", visible: false)
|
|
676
|
-
end
|
|
677
|
-
# set required metadata
|
|
678
|
-
click_link "Descriptions" # switch tab
|
|
679
|
-
fill_in('Title', with: 'New Work for Collection')
|
|
680
|
-
fill_in('Creator', with: 'Doe, Jane')
|
|
681
|
-
fill_in('Keyword', with: 'testing')
|
|
682
|
-
select('In Copyright', from: 'Rights statement')
|
|
683
|
-
# check required acceptance
|
|
684
|
-
check('agreement')
|
|
685
|
-
|
|
686
|
-
click_on('Save')
|
|
687
|
-
|
|
688
|
-
# verify new work was added to collection1
|
|
689
|
-
visit "/dashboard/collections/#{collection1.id}"
|
|
690
|
-
expect(page).to have_content("New Work for Collection")
|
|
691
|
-
end
|
|
692
|
-
end
|
|
693
|
-
end
|
|
694
|
-
|
|
695
|
-
# TODO: this is just like the block above. Merge them.
|
|
696
|
-
describe 'show pages of a collection' do
|
|
697
|
-
before do
|
|
698
|
-
docs = (0..12).map do |n|
|
|
699
|
-
{ "has_model_ssim" => ["GenericWork"], :id => "zs25x871q#{n}",
|
|
700
|
-
"depositor_ssim" => [user.user_key],
|
|
701
|
-
"suppressed_bsi" => false,
|
|
702
|
-
"member_of_collection_ids_ssim" => [collection.id],
|
|
703
|
-
"nesting_collection__parent_ids_ssim" => [collection.id],
|
|
704
|
-
"edit_access_person_ssim" => [user.user_key] }
|
|
705
|
-
end
|
|
706
|
-
ActiveFedora::SolrService.add(docs, commit: true)
|
|
707
|
-
|
|
708
|
-
sign_in user
|
|
709
|
-
end
|
|
710
|
-
let(:collection) { create(:named_collection_lw, user: user, with_permission_template: true) }
|
|
711
|
-
|
|
712
|
-
it "shows a collection with a listing of Descriptive Metadata and catalog-style search results" do
|
|
713
|
-
visit '/dashboard/my/collections'
|
|
714
|
-
expect(page).to have_content(collection.title.first)
|
|
715
|
-
within('#document_' + collection.id) do
|
|
716
|
-
# Now go to the collection show page
|
|
717
|
-
click_link("Display all details of collection title")
|
|
718
|
-
end
|
|
719
|
-
expect(page).to have_css(".pagination")
|
|
720
|
-
end
|
|
721
|
-
end
|
|
722
|
-
|
|
723
|
-
describe 'remove works from collection' do
|
|
724
|
-
context 'user that can edit' do
|
|
725
|
-
let!(:work2) { create(:work, title: ["King Louie"], member_of_collections: [collection1], user: user) }
|
|
726
|
-
let!(:work1) { create(:work, title: ["King Kong"], member_of_collections: [collection1], user: user) }
|
|
727
|
-
|
|
728
|
-
before do
|
|
729
|
-
sign_in admin_user
|
|
730
|
-
end
|
|
731
|
-
# TODO: move this test to a view unit test (and solve the missing warden problem when using Ability in view tests)
|
|
732
|
-
it 'shows remove action buttons' do
|
|
733
|
-
visit "/dashboard/collections/#{collection1.id}"
|
|
734
|
-
expect(page).to have_selector('input.collection-remove', count: 2)
|
|
735
|
-
end
|
|
736
|
-
it 'removes the first work from the list of items' do
|
|
737
|
-
visit "/dashboard/collections/#{collection1.id}"
|
|
738
|
-
expect(page).to have_selector('input.collection-remove', count: 2)
|
|
739
|
-
page.all('input.collection-remove')[0].click
|
|
740
|
-
expect(page).to have_selector('input.collection-remove', count: 1)
|
|
741
|
-
# because works do not have order, you cannot guarentee that the first work added is the work getting deleted
|
|
742
|
-
has_work1 = page.has_content? work1.title.first
|
|
743
|
-
has_work2 = page.has_content? work2.title.first
|
|
744
|
-
expect(has_work1 ^ has_work2).to be true
|
|
745
|
-
end
|
|
746
|
-
xit 'removes a sub-collection from the list of items (dependency on collection nesting)' do
|
|
747
|
-
end
|
|
748
|
-
end
|
|
749
|
-
context 'user that cannot edit' do
|
|
750
|
-
let!(:work1) { create(:work, title: ["King Louie"], member_of_collections: [collection3], user: user) }
|
|
751
|
-
let!(:work2) { create(:work, title: ["King Kong"], member_of_collections: [collection3], user: user) }
|
|
752
|
-
|
|
753
|
-
before do
|
|
754
|
-
sign_in user
|
|
755
|
-
end
|
|
756
|
-
# TODO: move this test to a view unit test (and solve the missing warden problem when using Ability in view tests)
|
|
757
|
-
it 'does not show remove action buttons' do
|
|
758
|
-
visit "/dashboard/collections/#{collection3.id}"
|
|
759
|
-
expect(page).not_to have_selector 'input.collection-remove'
|
|
760
|
-
end
|
|
761
|
-
end
|
|
762
|
-
end
|
|
763
|
-
|
|
764
|
-
describe 'edit collection' do
|
|
765
|
-
let(:collection) { build(:named_collection_lw, user: user, with_permission_template: true) }
|
|
766
|
-
let!(:work1) { create(:work, title: ["King Louie"], member_of_collections: [collection], user: user) }
|
|
767
|
-
let!(:work2) { create(:work, title: ["King Kong"], member_of_collections: [collection], user: user) }
|
|
768
|
-
|
|
769
|
-
context 'from dashboard -> collections action menu' do
|
|
770
|
-
before do
|
|
771
|
-
create(:permission_template_access,
|
|
772
|
-
:deposit,
|
|
773
|
-
permission_template: collection1.permission_template,
|
|
774
|
-
agent_type: 'user',
|
|
775
|
-
agent_id: user.user_key)
|
|
776
|
-
|
|
777
|
-
collection1
|
|
778
|
-
sign_in user
|
|
779
|
-
visit '/dashboard/my/collections'
|
|
780
|
-
end
|
|
781
|
-
|
|
782
|
-
it "edit denied because user does not have permissions" do
|
|
783
|
-
# URL: /dashboard/my/collections
|
|
784
|
-
expect(page).to have_content(collection1.title.first)
|
|
785
|
-
within("#document_#{collection1.id}") do
|
|
786
|
-
find('button.dropdown-toggle').click
|
|
787
|
-
click_link('Edit collection')
|
|
788
|
-
end
|
|
789
|
-
expect(page).to have_content(collection1.title.first)
|
|
790
|
-
end
|
|
791
|
-
end
|
|
792
|
-
|
|
793
|
-
context 'from dashboard -> collections action menu' do
|
|
794
|
-
context 'for a collection' do
|
|
795
|
-
before do
|
|
796
|
-
sign_in user
|
|
797
|
-
visit '/dashboard/my/collections'
|
|
798
|
-
end
|
|
799
|
-
|
|
800
|
-
it "edits and update collection metadata" do
|
|
801
|
-
# URL: /dashboard/my/collections
|
|
802
|
-
expect(page).to have_content(collection.title.first)
|
|
803
|
-
within("#document_#{collection.id}") do
|
|
804
|
-
find('button.dropdown-toggle').click
|
|
805
|
-
click_link('Edit collection')
|
|
806
|
-
end
|
|
807
|
-
# URL: /dashboard/collections/collection-id/edit
|
|
808
|
-
expect(page).to have_selector('h1', text: "Edit User Collection: #{collection.title.first}")
|
|
809
|
-
|
|
810
|
-
expect(page).to have_field('collection_title', with: collection.title.first)
|
|
811
|
-
expect(page).to have_field('collection_description', with: collection.description.first)
|
|
812
|
-
|
|
813
|
-
new_title = "Altered Title"
|
|
814
|
-
new_description = "Completely new Description text."
|
|
815
|
-
creators = ["Dorje Trollo", "Vajrayogini"]
|
|
816
|
-
|
|
817
|
-
fill_in('Title', with: new_title)
|
|
818
|
-
fill_in('Abstract or Summary', with: new_description)
|
|
819
|
-
fill_in('Creator', with: creators.first)
|
|
820
|
-
within('.panel-footer') do
|
|
821
|
-
click_button('Save changes')
|
|
822
|
-
end
|
|
823
|
-
# URL: /dashboard/collections/collection-id/edit
|
|
824
|
-
expect(page).not_to have_field('collection_title', with: collection.title.first)
|
|
825
|
-
expect(page).not_to have_field('collection_description', with: collection.description.first)
|
|
826
|
-
expect(page).to have_field('collection_title', with: new_title)
|
|
827
|
-
expect(page).to have_field('collection_description', with: new_description)
|
|
828
|
-
expect(page).to have_field('collection_creator', with: creators.first)
|
|
829
|
-
end
|
|
830
|
-
end
|
|
831
|
-
|
|
832
|
-
context 'for an admin set' do
|
|
833
|
-
before do
|
|
834
|
-
admin_user
|
|
835
|
-
admin_set_a
|
|
836
|
-
sign_in admin_user
|
|
837
|
-
visit '/dashboard/my/collections'
|
|
838
|
-
end
|
|
839
|
-
|
|
840
|
-
it 'edits admin set', :js do
|
|
841
|
-
# URL: /dashboard/my/collections
|
|
842
|
-
expect(page).to have_content(admin_set_a.title.first)
|
|
843
|
-
within("#document_#{admin_set_a.id}") do
|
|
844
|
-
find('button.dropdown-toggle').click
|
|
845
|
-
click_link('Edit collection')
|
|
846
|
-
end
|
|
847
|
-
# URL: /dashboard/collections/collection-id/edit
|
|
848
|
-
expect(page).to have_selector('h1', text: "Edit Administrative Set: #{admin_set_a.title.first}")
|
|
849
|
-
end
|
|
850
|
-
end
|
|
851
|
-
end
|
|
852
|
-
|
|
853
|
-
context "edit view tabs" do
|
|
854
|
-
before do
|
|
855
|
-
sign_in user
|
|
856
|
-
end
|
|
857
|
-
|
|
858
|
-
context 'with brandable set' do
|
|
859
|
-
let(:brandable_collection_id) { create(:collection_lw, user: user, collection_type_settings: [:brandable], with_permission_template: true).id }
|
|
860
|
-
let(:not_brandable_collection_id) { create(:collection_lw, user: user, collection_type_settings: [:not_brandable], with_permission_template: true).id }
|
|
861
|
-
|
|
862
|
-
it 'to true, it shows Branding tab' do
|
|
863
|
-
visit "/dashboard/collections/#{brandable_collection_id}/edit"
|
|
864
|
-
expect(page).to have_link('Branding', href: '#branding')
|
|
865
|
-
end
|
|
866
|
-
|
|
867
|
-
it 'to false, it hides Branding tab' do
|
|
868
|
-
visit "/dashboard/collections/#{not_brandable_collection_id}/edit"
|
|
869
|
-
expect(page).not_to have_link('Branding', href: '#branding')
|
|
870
|
-
end
|
|
871
|
-
end
|
|
872
|
-
|
|
873
|
-
context 'with discoverable set' do
|
|
874
|
-
let(:discoverable_collection_id) { create(:collection_lw, user: user, collection_type_settings: [:discoverable], with_permission_template: true).id }
|
|
875
|
-
let(:not_discoverable_collection_id) { create(:collection_lw, user: user, collection_type_settings: [:not_discoverable], with_permission_template: true).id }
|
|
876
|
-
|
|
877
|
-
it 'to true, it shows Discovery tab' do
|
|
878
|
-
visit "/dashboard/collections/#{discoverable_collection_id}/edit"
|
|
879
|
-
expect(page).to have_link('Discovery', href: '#discovery')
|
|
880
|
-
end
|
|
881
|
-
|
|
882
|
-
it 'to false, it hides Discovery tab' do
|
|
883
|
-
visit "/dashboard/collections/#{not_discoverable_collection_id}/edit"
|
|
884
|
-
expect(page).not_to have_link('Discovery', href: '#discovery')
|
|
885
|
-
end
|
|
886
|
-
end
|
|
887
|
-
|
|
888
|
-
context 'with sharable set' do
|
|
889
|
-
let(:sharable_collection_id) { create(:collection_lw, user: user, collection_type_settings: [:sharable], with_permission_template: true).id }
|
|
890
|
-
let(:not_sharable_collection_id) { create(:collection_lw, user: user, collection_type_settings: [:not_sharable], with_permission_template: true).id }
|
|
891
|
-
|
|
892
|
-
it 'to true, it shows Sharable tab' do
|
|
893
|
-
visit "/dashboard/collections/#{sharable_collection_id}/edit"
|
|
894
|
-
expect(page).to have_link('Sharing', href: '#sharing')
|
|
895
|
-
end
|
|
896
|
-
|
|
897
|
-
context "to true, limits available users", js: true do
|
|
898
|
-
let(:user2) { create(:user) }
|
|
899
|
-
it "to system users filted by select2" do
|
|
900
|
-
visit "/dashboard/collections/#{sharable_collection_id}/edit"
|
|
901
|
-
expect(page).to have_link('Sharing', href: '#sharing')
|
|
902
|
-
click_link('Sharing')
|
|
903
|
-
expect(page).to have_selector(".form-inline.add-users .select2-container")
|
|
904
|
-
select_user(user2, 'Depositor')
|
|
905
|
-
click_button('Save')
|
|
906
|
-
click_link('Sharing')
|
|
907
|
-
expect(page).to have_selector('td', text: user2.user_key)
|
|
908
|
-
end
|
|
909
|
-
end
|
|
910
|
-
|
|
911
|
-
it 'to false, it hides Sharable tab' do
|
|
912
|
-
visit "/dashboard/collections/#{not_sharable_collection_id}/edit"
|
|
913
|
-
expect(page).not_to have_link('Sharing', href: '#sharing')
|
|
914
|
-
end
|
|
915
|
-
end
|
|
916
|
-
end
|
|
917
|
-
end
|
|
918
|
-
end
|