From e8320e247b1c5a4f655085d0293cfe55f2ec7b4a Mon Sep 17 00:00:00 2001 From: Alex Boyd Date: Tue, 13 Aug 2024 15:58:49 +0000 Subject: [PATCH 1/7] add hyrax factories, working dashboard_spec tests --- spec/factories/access_control.rb | 12 + spec/factories/admin_sets.rb | 13 +- spec/factories/admin_sets_lw.rb | 222 ++++++++++++++ spec/factories/administrative_sets.rb | 79 +++++ spec/factories/api_items.rb | 92 ++++++ spec/factories/collection_branding_infos.rb | 12 + .../factories/collection_type_participants.rb | 9 + spec/factories/collection_types.rb | 139 +++++++++ spec/factories/collections.rb | 282 ++++++++++++++++++ spec/factories/collections_factory.rb | 107 +++++++ spec/factories/content_blocks.rb | 5 + spec/factories/counter_metrics.rb | 12 + spec/factories/featured_works.rb | 5 + spec/factories/file_sets.rb | 45 +++ spec/factories/generic_works.rb | 200 +++++++++++++ spec/factories/gw_works.rb | 17 -- spec/factories/hyrax_collection.rb | 92 ++++++ spec/factories/hyrax_default_admin_set.rb | 7 + spec/factories/hyrax_embargo.rb | 18 ++ spec/factories/hyrax_file_metadata.rb | 92 ++++++ spec/factories/hyrax_file_set.rb | 129 ++++++++ spec/factories/hyrax_lease.rb | 18 ++ spec/factories/hyrax_resource.rb | 15 + spec/factories/hyrax_work.rb | 239 +++++++++++++++ spec/factories/object_id.rb | 7 + spec/factories/operations.rb | 22 ++ spec/factories/permission.rb | 7 + .../factories/permission_template_accesses.rb | 17 ++ spec/factories/permission_templates.rb | 75 +++-- spec/factories/proxy_deposit_requests.rb | 7 + spec/factories/single_use_links.rb | 14 + spec/factories/sipity_entities.rb | 17 ++ spec/factories/strategies/json_strategy.rb | 17 ++ .../factories/strategies/valkyrie_resource.rb | 31 ++ spec/factories/uploaded_files.rb | 11 + spec/factories/users.rb | 68 ++++- spec/factories/workflow_actions.rb | 7 + spec/factories/workflow_states.rb | 7 + spec/factories/workflows.rb | 7 + spec/features/dashboard_spec.rb | 12 +- 40 files changed, 2118 insertions(+), 69 deletions(-) create mode 100644 spec/factories/access_control.rb create mode 100644 spec/factories/admin_sets_lw.rb create mode 100644 spec/factories/administrative_sets.rb create mode 100644 spec/factories/api_items.rb create mode 100644 spec/factories/collection_branding_infos.rb create mode 100644 spec/factories/collection_type_participants.rb create mode 100644 spec/factories/collection_types.rb create mode 100644 spec/factories/collections.rb create mode 100644 spec/factories/collections_factory.rb create mode 100644 spec/factories/content_blocks.rb create mode 100644 spec/factories/counter_metrics.rb create mode 100644 spec/factories/featured_works.rb create mode 100644 spec/factories/file_sets.rb create mode 100644 spec/factories/generic_works.rb delete mode 100644 spec/factories/gw_works.rb create mode 100644 spec/factories/hyrax_collection.rb create mode 100644 spec/factories/hyrax_default_admin_set.rb create mode 100644 spec/factories/hyrax_embargo.rb create mode 100644 spec/factories/hyrax_file_metadata.rb create mode 100644 spec/factories/hyrax_file_set.rb create mode 100644 spec/factories/hyrax_lease.rb create mode 100644 spec/factories/hyrax_resource.rb create mode 100644 spec/factories/hyrax_work.rb create mode 100644 spec/factories/object_id.rb create mode 100644 spec/factories/operations.rb create mode 100644 spec/factories/permission.rb create mode 100644 spec/factories/permission_template_accesses.rb create mode 100644 spec/factories/proxy_deposit_requests.rb create mode 100644 spec/factories/single_use_links.rb create mode 100644 spec/factories/sipity_entities.rb create mode 100644 spec/factories/strategies/json_strategy.rb create mode 100644 spec/factories/strategies/valkyrie_resource.rb create mode 100644 spec/factories/uploaded_files.rb create mode 100644 spec/factories/workflow_actions.rb create mode 100644 spec/factories/workflow_states.rb create mode 100644 spec/factories/workflows.rb diff --git a/spec/factories/access_control.rb b/spec/factories/access_control.rb new file mode 100644 index 00000000..e4401047 --- /dev/null +++ b/spec/factories/access_control.rb @@ -0,0 +1,12 @@ +# frozen_string_literal: true +FactoryBot.define do + factory :access_control, class: Hyrax::AccessControl do + permissions { build(:permission) } + + trait :with_target do + access_to { valkyrie_create(:hyrax_resource).id } + + permissions { build(:permission, access_to: access_to) } + end + end +end diff --git a/spec/factories/admin_sets.rb b/spec/factories/admin_sets.rb index 5a61b842..36a8a743 100644 --- a/spec/factories/admin_sets.rb +++ b/spec/factories/admin_sets.rb @@ -1,5 +1,4 @@ -# from https://github.com/samvera/hyrax/blob/v2.9.6/spec/factories/admin_sets.rb - +# frozen_string_literal: true FactoryBot.define do factory :admin_set do sequence(:title) { |n| ["Title #{n}"] } @@ -12,6 +11,7 @@ after(:create) do |admin_set, evaluator| if evaluator.with_permission_template attributes = { source_id: admin_set.id } + attributes = evaluator.permission_template_attributes.merge(attributes) if evaluator.permission_template_attributes.respond_to?(:merge) attributes = evaluator.with_permission_template.merge(attributes) if evaluator.with_permission_template.respond_to?(:merge) # There is a unique constraint on permission_templates.source_id; I don't want to # create a permission template if one already exists for this admin_set @@ -22,6 +22,13 @@ transient do # false, true, or Hash with keys for permission_template with_permission_template { false } + permission_template_attributes { {} } + end + + factory :complete_admin_set do + alternative_title { ['alternative admin set title'] } + creator { ['moomin', 'snufkin'] } + description { ['Before a revolution happens', 'it is perceived as impossible'] } end end -end \ No newline at end of file +end diff --git a/spec/factories/admin_sets_lw.rb b/spec/factories/admin_sets_lw.rb new file mode 100644 index 00000000..9803986c --- /dev/null +++ b/spec/factories/admin_sets_lw.rb @@ -0,0 +1,222 @@ +# frozen_string_literal: true +FactoryBot.define do + # Tests that create a Fedora Object are very slow. This factory lets you control which parts of the object ecosystem + # get built. + # + # PREFERRED: Use build whenever possible. You can control the creation of the permission template and solr document + # by passing parameters to the build(:admin_set_lw) method. That way you can build only the parts needed + # for a specific test. + # + # AVOID: Do not use create unless absolutely necessary. It will create everything including the Fedora object. + # + # @example Simple build of an admin set with no additional parts created. Lightest weight. + # NOTE: A user is automatically created as the owner of the admin set. + # let(:adminset) { build(:adminset_lw) } + # + # @example Simple build of an admin set with no additional parts created. User is the owner of the admin set. Lightest weight. + # let(:adminset) { build(:adminset_lw, user:) } + # + # @example Simple build of an admin set with only solr-document. Owner is given edit-access in solr-document. Light weight. + # let(:adminset) { build(:adminset_lw, with_solr_document: true) } + # + # @example Simple build of an admin set with only a permission template created. Owner is set as a manager. Light weight. + # let(:adminset) { build(:adminset_lw, with_permission_template: true) } + # + # @example Build an admin set with only a permission template created. Permissions are set based on + # attributes set for `with_permission_template`. Middle weight. + # # permissions passed thru `with_permission_template` can be any of the following in any combination + # let(:permissions) { { manage_users: [user.user_key], # multiple users can be listed + # deposit_users: [user.user_key], + # view_users: [user.user_key], + # manage_groups: [group_name], # multiple groups can be listed + # deposit_groups: [group_name], + # view_groups: [group_name], } } + # let(:adminset) { build(:adminset_lw, user: , with_permission_template: permissions) } + # + # @example Build an admin set with permission template and solr-document created. Permissions are set based on + # attributes set for `with_permission_template`. Solr-document includes read/edit access defined based + # on attributes passed thru `with_permission_template`. Middle weight. + # # permissions passed thru `with_permission_template` can be any of the following in any combination + # let(:permissions) { { manage_users: [user.user_key], # multiple users can be listed + # deposit_users: [user.user_key], + # view_users: [user.user_key], + # manage_groups: [group_name], # multiple groups can be listed + # deposit_groups: [group_name], + # view_groups: [group_name], } } + # let(:adminset) { build(:adminset_lw, user: , with_permission_template: permissions, with_solr_document: true) } + # + # @example Create an admin set with everything. Extreme heavy weight. This is very slow and should be avoided. + # NOTE: Everything gets created. + # NOTE: Build options effect created admin sets as follows... + # * `with_permission_template` can specify user/group permissions. A permission template is always created. + # * `with_solr_document` is ignored. A solr document is always created. + # let(:adminset) { create(:adminset_lw) } + # + # @example Build the default admin set with permission template, solr doc, and default adminset's metadata. + # let(:default_adminset) { build(:default_adminset) } + + factory :adminset_lw, class: AdminSet do + transient do + user { FactoryBot.create(:user) } + + with_permission_template { false } + with_solr_document { false } + end + sequence(:title) { |n| ["Collection Title #{n}"] } + + after(:build) do |adminset, evaluator| + adminset.creator = [evaluator.user.user_key] + + AdminSetFactoryHelper.process_with_permission_template(adminset, evaluator) + AdminSetFactoryHelper.process_with_solr_document(adminset, evaluator) + end + + before(:create) do |adminset, evaluator| + # force create a permission template if it doesn't exist for the newly created admin set + AdminSetFactoryHelper.process_with_permission_template(adminset, evaluator, true) unless evaluator.with_permission_template + end + + after(:create) do |adminset, _evaluator| + adminset.permission_template.reset_access_controls_for(collection: adminset) + end + + factory :default_adminset, class: AdminSet do + transient do + with_permission_template do + { + deposit_groups: [::Ability.registered_group_name], + manage_groups: [::Ability.admin_group_name] + } + end + with_solr_document { true } + with_persisted_default_id { true } + end + id { AdminSet::DEFAULT_ID } + title { AdminSet::DEFAULT_TITLE } + + after(:create) do |admin_set, evaluator| + Hyrax::DefaultAdministrativeSet.update(default_admin_set_id: admin_set.id) if + evaluator.with_persisted_default_id + end + end + end + + factory :no_solr_grants_adminset, class: AdminSet do + # Builds a pre-Hyrax 2.1.0 adminset without edit/view grants on the admin set. + # Do not use with create because the save will cause the solr grants to be created. + transient do + user { FactoryBot.create(:user) } + with_permission_template { true } + with_solr_document { true } + end + + sequence(:title) { |n| ["No Solr Grant Admin Set Title #{n}"] } + + after(:build) do |adminset, evaluator| + adminset.creator = [evaluator.user.user_key] + AdminSetFactoryHelper.process_with_permission_template(adminset, evaluator, true) + AdminSetFactoryHelper.process_with_solr_document(adminset, evaluator, true) + end + end + + class AdminSetFactoryHelper + # @returns array of user keys + def self.permission_from_template(permission_template_attributes, permission_key) + permissions = [] + return permissions if permission_template_attributes.blank? + return permissions unless permission_template_attributes.is_a? Hash + return permissions unless permission_template_attributes.key?(permission_key) + permission_template_attributes[permission_key] + end + private_class_method :permission_from_template + + # @param [Hash] permission_template_attributes where names identify the role and value are the user keys for that role + # @parem [String] creator_user is the user who created the new admin set + # @param [Boolean] include_creator, when true, adds the creator_user as a manager + # @returns array of user keys + def self.user_managers(permission_template_attributes, creator_user) + managers = permission_from_template(permission_template_attributes, :manage_users) + managers << creator_user + managers.uniq + end + + # @param [Hash] permission_template_attributes where names identify the role and value are the user keys for that role + # @returns array of user keys + def self.group_managers(permission_template_attributes) + permission_from_template(permission_template_attributes, :manage_groups).uniq + end + + # @param [Hash] permission_template_attributes where names identify the role and value are the user keys for that role + # @returns array of user keys + def self.user_depositors(permission_template_attributes) + permission_from_template(permission_template_attributes, :deposit_users).uniq + end + + # @param [Hash] permission_template_attributes where names identify the role and value are the user keys for that role + # @returns array of user keys + def self.group_depositors(permission_template_attributes) + permission_from_template(permission_template_attributes, :deposit_groups).uniq + end + + # @param [Hash] permission_template_attributes where names identify the role and value are the user keys for that role + # @returns array of user keys + def self.user_viewers(permission_template_attributes) + permission_from_template(permission_template_attributes, :view_users).uniq + end + + # @param [Hash] permission_template_attributes where names identify the role and value are the user keys for that role + # @returns array of user keys + def self.group_viewers(permission_template_attributes) + permission_from_template(permission_template_attributes, :view_groups).uniq + end + + # Process the with_permission_template transient property such that... + # * a permission template is created for the admin set + # * a permission template access is created for the admin set creator + # * additional permission template accesses are created for each user/group identified in the attributes + # of with_permission_template (created by the permission_template factory) + # @param [AdminSet] admin set object being built/created by the factory + # @param [Class] evaluator holding the transient properties for the current build/creation process + # @param [Boolean] if true, force the permission template to be created + def self.process_with_permission_template(adminset, evaluator, force = false) + return unless force || evaluator.with_permission_template + adminset.id ||= FactoryBot.generate(:object_id) + attributes = { source_id: adminset.id } + attributes[:manage_users] = user_managers(evaluator.with_permission_template, evaluator.user) + attributes = evaluator.with_permission_template.merge(attributes) if evaluator.with_permission_template.respond_to?(:merge) + FactoryBot.create(:permission_template, attributes) unless Hyrax::PermissionTemplate.find_by(source_id: adminset.id) + end + + # Process the with_solr_document transient property such that... + # * a solr document is created for the admin set + # * permissions identified by with_permission_template, if any, are added to the solr fields + # @param [AdminSet] adminset object being built/created by the factory + # @param [Class] evaluator holding the transient properties for the current build/creation process + def self.process_with_solr_document(adminset, evaluator, creator_only = false) + return unless creator_only || evaluator.with_solr_document + Hyrax::SolrService.add(solr_document_with_permissions(adminset, evaluator, creator_only), commit: true) + end + + # Return the admin set's solr document with permissions added, such that... + # * permissions identified by with_permission_template, if any, are added to the solr fields + # @param [AdminSet] adminset object being built/created by the factory + # @param [Class] evaluator holding the transient properties for the current build/creation process + # @returns the admin set's solr document with permissions added + def self.solr_document_with_permissions(adminset, evaluator, creator_only) + adminset.id ||= FactoryBot.generate(:object_id) + if creator_only + adminset.edit_users = [evaluator.user] + else + adminset.edit_users = user_managers(evaluator.with_permission_template, evaluator.user) + adminset.edit_groups = group_managers(evaluator.with_permission_template) + adminset.read_users = user_viewers(evaluator.with_permission_template) + + user_depositors(evaluator.with_permission_template) + adminset.read_groups = group_viewers(evaluator.with_permission_template) + + group_depositors(evaluator.with_permission_template) - + [::Ability.registered_group_name, ::Ability.public_group_name] + end + adminset.to_solr + end + private_class_method :solr_document_with_permissions + end +end diff --git a/spec/factories/administrative_sets.rb b/spec/factories/administrative_sets.rb new file mode 100644 index 00000000..0f94f495 --- /dev/null +++ b/spec/factories/administrative_sets.rb @@ -0,0 +1,79 @@ +# frozen_string_literal: true + +FactoryBot.define do + ## + # This factory creates a Valkyrized adminstrative set; by default a Hyrax::AdministrativeSet + # + # Why the antics around the class? Because of the Hyrax needs and potential downstream + # applciation needs. + # + # Downstream applications might implement a different # administrative set and the downstream + # application might leverage other Hyrax factories that create a `:hyrax_admin_set` + # (e.g. `:permission_template`) + factory :hyrax_admin_set, class: (Hyrax.config.admin_set_class < Valkyrie::Resource ? Hyrax.config.admin_set_class : Hyrax::AdministrativeSet) do + title { ['My Admin Set'] } + + transient do + with_permission_template { false } + user { FactoryBot.create(:user) } + access_grants { [] } + with_index { true } + end + + after(:build) do |adminset, evaluator| + adminset.creator = [evaluator.user.user_key] + end + + after(:create) do |admin_set, evaluator| + admin_set.permission_manager.edit_groups = evaluator.edit_groups + admin_set.permission_manager.edit_users = evaluator.edit_users + admin_set.permission_manager.read_users = evaluator.read_users + admin_set.permission_manager.read_groups = evaluator.read_groups + + admin_set.permission_manager.acl.save + + if evaluator.with_permission_template + template = Hyrax::PermissionTemplate.find_or_create_by(source_id: admin_set.id.to_s) + evaluator.access_grants.each do |grant| + Hyrax::PermissionTemplateAccess.find_or_create_by(permission_template_id: template.id, + agent_type: grant[:agent_type], + agent_id: grant[:agent_id], + access: grant[:access]) + end + Hyrax::PermissionTemplateAccess.find_or_create_by(permission_template_id: template.id, + agent_type: Hyrax::PermissionTemplateAccess::USER, + agent_id: evaluator.user.user_key, + access: Hyrax::PermissionTemplateAccess::MANAGE) + template.reset_access_controls_for(collection: admin_set) + end + Hyrax.index_adapter.save(resource: admin_set) if evaluator.with_index + end + end + + trait :with_permission_template do + with_permission_template { true } + access_grants do + [{ agent_type: Hyrax::PermissionTemplateAccess::USER, + agent_id: user.user_key, + access: Hyrax::PermissionTemplateAccess::MANAGE }] + end + end + + factory :invalid_hyrax_admin_set, class: 'Hyrax::AdministrativeSet' do + # Title is required. Without title, the admin set is invalid. + end + + factory :default_hyrax_admin_set, class: 'Hyrax::AdministrativeSet' do + id { Hyrax::AdminSetCreateService::DEFAULT_ID } + title { Hyrax::AdminSetCreateService::DEFAULT_TITLE } + + transient do + with_persisted_default_id { true } + end + + after(:create) do |admin_set, evaluator| + Hyrax::DefaultAdministrativeSet.update(default_admin_set_id: admin_set.id) if + evaluator.with_persisted_default_id + end + end +end diff --git a/spec/factories/api_items.rb b/spec/factories/api_items.rb new file mode 100644 index 00000000..d2dd1cbc --- /dev/null +++ b/spec/factories/api_items.rb @@ -0,0 +1,92 @@ +# frozen_string_literal: true +FactoryBot.define do + factory :post_item, class: Hash do + skip_create + + token { 'mock_token' } + + metadata do + { + resourceType: 'Dataset', + title: 'Findings from NSF Study', + creators: [ + { + creatorType: 'author', + firstName: 'John', + lastName: 'Doe' + }, + { + creatorType: 'seriesEditor', + firstName: 'Rafael', + lastName: 'Nadal' + }, + { + creatorType: 'inventor', + name: 'Babs McGee' + }, + { + creatorType: 'contributor', + name: 'Jane Doeski' + } + ], + description: 'This was funded by the NSF in 2013', + publisher: 'National Science Foundation', + dateCreated: '2014-11-02T14:24:64Z', + basedNear: 'Paris, France', + identifier: 'isbn:1234567890', + url: 'http://example.org/nsf/2013/datasets/', + language: 'English--New Jerseyan', + license: 'http://creativecommons.org/licenses/by-sa/3.0/us/', + tags: [ + 'datasets', + 'nsf', + 'stuff' + ] + } + end + + file do + { + base64: 'YXJraXZvCg==', + md5: 'f03313ded2feb96f0a641b8eb098aae0', + filename: 'file.txt', + contentType: 'text/plain' + } + end + + initialize_with { attributes } + end + + factory :put_item, class: Hash, parent: :post_item do + metadata do + { + resourceType: 'Article', + title: 'THE REAL FINDINGS', + creators: [ + { + creatorType: 'author', + firstName: 'John', + lastName: 'Doe' + }, + { + creatorType: 'inventor', + name: 'Babs McGee' + } + ], + license: 'http://creativecommons.org/licenses/by-sa/3.0/us/', + tags: [ + 'datasets' + ] + } + end + + file do + { + base64: 'IyBIRUFERVIKClRoaXMgaXMgYSBwYXJhZ3JhcGghCg==', + md5: '3923077bb477097b8496dbcff5fa44b3', + filename: 'replaced.md', + contentType: 'text/x-markdown' + } + end + end +end diff --git a/spec/factories/collection_branding_infos.rb b/spec/factories/collection_branding_infos.rb new file mode 100644 index 00000000..9ae64f5d --- /dev/null +++ b/spec/factories/collection_branding_infos.rb @@ -0,0 +1,12 @@ +# frozen_string_literal: true +FactoryBot.define do + factory :collection_branding_info do + collection_id { "1" } + role { "banner" } + local_path { "/fake/path/to/banner.png" } + alt_text { "This is the banner" } + target_url { "http://example.com/" } + height { "" } + width { "" } + end +end diff --git a/spec/factories/collection_type_participants.rb b/spec/factories/collection_type_participants.rb new file mode 100644 index 00000000..43db7785 --- /dev/null +++ b/spec/factories/collection_type_participants.rb @@ -0,0 +1,9 @@ +# frozen_string_literal: true +FactoryBot.define do + factory :collection_type_participant, class: Hyrax::CollectionTypeParticipant do + association :hyrax_collection_type, factory: :collection_type + sequence(:agent_id) { |n| "user#{n}@example.com" } + agent_type { 'user' } + access { Hyrax::CollectionTypeParticipant::MANAGE_ACCESS } + end +end diff --git a/spec/factories/collection_types.rb b/spec/factories/collection_types.rb new file mode 100644 index 00000000..8f013ac7 --- /dev/null +++ b/spec/factories/collection_types.rb @@ -0,0 +1,139 @@ +# frozen_string_literal: true +FactoryBot.define do + factory :collection_type, class: Hyrax::CollectionType do + sequence(:title) { |n| "Collection Type #{n}" } + sequence(:machine_id) { |n| "title_#{n}" } + + description { 'Collection type with all options' } + nestable { true } + discoverable { true } + sharable { true } + brandable { true } + share_applies_to_new_works { true } + allow_multiple_membership { true } + require_membership { false } + assigns_workflow { false } + assigns_visibility { false } + + transient do + creator_user { nil } + creator_group { nil } + manager_user { nil } + manager_group { nil } + end + + after(:create) do |collection_type, evaluator| + CollectionTypeFactoryHelper.process_access(collection_type, evaluator) + end + + trait :nestable do + nestable { true } + end + + trait :not_nestable do + nestable { false } + end + + trait :discoverable do + discoverable { true } + end + + trait :not_discoverable do + discoverable { false } + end + + trait :brandable do + brandable { true } + end + + trait :not_brandable do + brandable { false } + end + + trait :sharable do + sharable { true } + share_applies_to_new_works { true } + end + + trait :sharable_no_work_permissions do + sharable { true } + share_applies_to_new_works { false } + end + + trait :not_sharable do + sharable { false } + share_applies_to_new_works { false } + end + + trait :allow_multiple_membership do + allow_multiple_membership { true } + end + + trait :not_allow_multiple_membership do + allow_multiple_membership { false } + end + end + + factory :user_collection_type, class: Hyrax::CollectionType do + initialize_with { Hyrax::CollectionType.find_or_create_default_collection_type } + end + + factory :admin_set_collection_type, class: Hyrax::CollectionType do + initialize_with { Hyrax::CollectionType.find_or_create_admin_set_type } + + transient do + creator_user { nil } + creator_group { nil } + manager_user { nil } + manager_group { nil } + end + + after(:create) do |collection_type, evaluator| + CollectionTypeFactoryHelper.process_access(collection_type, evaluator) + end + end + + class CollectionTypeFactoryHelper + def self.process_access(collection_type, evaluator) # rubocop:disable Metrics/MethodLength + if evaluator.creator_user + Array(evaluator.creator_user).each do |user| + attributes = { hyrax_collection_type_id: collection_type.id, + access: Hyrax::CollectionTypeParticipant::CREATE_ACCESS, + agent_id: user, + agent_type: Hyrax::CollectionTypeParticipant::USER_TYPE } + FactoryBot.create(:collection_type_participant, attributes) + end + end + + if evaluator.creator_group + Array(evaluator.creator_group).each do |group| + attributes = { hyrax_collection_type_id: collection_type.id, + access: Hyrax::CollectionTypeParticipant::CREATE_ACCESS, + agent_id: group, + agent_type: Hyrax::CollectionTypeParticipant::GROUP_TYPE } + FactoryBot.create(:collection_type_participant, attributes) + end + end + + if evaluator.manager_user + Array(evaluator.manager_user).each do |user| + attributes = { hyrax_collection_type_id: collection_type.id, + access: Hyrax::CollectionTypeParticipant::MANAGE_ACCESS, + agent_id: user, + agent_type: Hyrax::CollectionTypeParticipant::USER_TYPE } + FactoryBot.create(:collection_type_participant, attributes) + end + end + + return unless evaluator.manager_group + + Array(evaluator.manager_group).each do |group| + attributes = { hyrax_collection_type_id: collection_type.id, + access: Hyrax::CollectionTypeParticipant::MANAGE_ACCESS, + agent_id: group, + agent_type: Hyrax::CollectionTypeParticipant::GROUP_TYPE } + FactoryBot.create(:collection_type_participant, attributes) + end + end + end +end diff --git a/spec/factories/collections.rb b/spec/factories/collections.rb new file mode 100644 index 00000000..e91d43d6 --- /dev/null +++ b/spec/factories/collections.rb @@ -0,0 +1,282 @@ +# frozen_string_literal: true +FactoryBot.define do + # Tests that create a Fedora Object are very slow. This factory lets you control which parts of the object ecosystem + # get built. + # + # PREFERRED: Use build whenever possible. You can control the creation of the permission template, collection type, and + # solr document by passing parameters to the build(:collection_lw) method. That way you can build only the parts + # needed for a specific test. + # + # AVOID: Do not use create unless absolutely necessary. It will create everything including the Fedora object. + # + # @example Simple build of a collection with no additional parts created. Lightest weight. + # NOTE: A user is automatically created as the owner of the collection. + # let(:collection) { build(:collection_lw) } + # + # @example Simple build of a collection with no additional parts created. User is the owner of the collection. Lightest weight. + # let(:collection) { build(:collection_lw, user:) } + # + # @example Simple build of a collection with only solr-document. Owner is given edit-access in solr-document. Light weight. + # let(:collection) { build(:collection_lw, with_solr_document: true) } + # + # @example Simple build of a collection with only a permission template created. Owner is set as a manager. Light weight. + # let(:collection) { build(:collection_lw, with_permission_template: true) } + # + # @example Build a collection with only a permission template created. Permissions are set based on + # attributes set for `with_permission_template`. Middle weight. + # # permissions passed thru `with_permission_template` can be any of the following in any combination + # let(:permissions) { { manage_users: [user.user_key], # multiple users can be listed + # deposit_users: [user.user_key], + # view_users: [user.user_key], + # manage_groups: [group_name], # multiple groups can be listed + # deposit_groups: [group_name], + # view_groups: [group_name], } } + # let(:collection) { build(:collection_lw, user: , with_permission_template: permissions) } + # + # @example Build a collection with permission template and solr-document created. Permissions are set based on + # attributes set for `with_permission_template`. Solr-document includes read/edit access defined based + # on attributes passed thru `with_permission_template`. Middle weight. + # # permissions passed thru `with_permission_template` can be any of the following in any combination + # let(:permissions) { { manage_users: [user.user_key], # multiple users can be listed + # deposit_users: [user.user_key], + # view_users: [user.user_key], + # manage_groups: [group_name], # multiple groups can be listed + # deposit_groups: [group_name], + # view_groups: [group_name], } } + # let(:collection) { build(:collection_lw, user: , with_permission_template: permissions, with_solr_document: true) } + # + # @example Build a collection generating its collection type with specific settings. Light Weight. + # NOTE: Do not use this approach if you need access to the collection type in the test. + # DEFAULT: If `collection_type_settings` and `collection_type` are not specified, then the default + # User Collection type will be used. + # # Any not specified default to ON. At least one setting should be specified. + # let(:settings) { [ + # :nestable, # OR :not_nestable, + # :discoverable, # OR :not_discoverable + # :brandable, # OR :not_brandable + # :sharable, # OR :not_sharable OR :sharable_no_work_permissions + # :allow_multiple_membership, # OR :not_allow_multiple_membership + # ] } + # let(:collection) { build(:collection_lw, collection_type_settings: settings) } + # + # @example Build a collection using the passed in collection type. Light Weight. + # NOTE: Use this approach if you need access to the collection type in the test. + # # Any not specified default to ON. At least one setting should be specified. + # let(:settings) { [ + # :nestable, # OR :not_nestable, + # :discoverable, # OR :not_discoverable + # :brandable, # OR :not_brandable + # :sharable, # OR :not_sharable OR :sharable_no_work_permissions + # :allow_multiple_membership, # OR :not_allow_multiple_membership + # ] } + # let(:collection_type) { create(:collection_lw_type, settings) } + # let(:collection) { build(:collection_lw, collection_type: collection_type) } + + factory :collection_lw, class: Collection do + transient do + user { FactoryBot.create(:user) } + + collection_type { nil } + collection_type_settings { nil } + with_permission_template { false } + with_solr_document { false } + end + sequence(:title) { |n| ["Collection Title #{n}"] } + + after(:build) do |collection, evaluator| + collection.collection_type_gid = evaluator.collection_type.to_global_id if evaluator.collection_type&.id.present? + collection.apply_depositor_metadata(evaluator.user.user_key) + + CollectionLwFactoryHelper.process_collection_type_settings(collection, evaluator) + CollectionLwFactoryHelper.process_with_permission_template(collection, evaluator) + CollectionLwFactoryHelper.process_with_solr_document(collection, evaluator) + end + + before(:create) do |collection, evaluator| + # force create a permission template if it doesn't exist for the newly created collection + CollectionLwFactoryHelper.process_with_permission_template(collection, evaluator, true) unless evaluator.with_permission_template + end + + after(:create) do |collection, _evaluator| + collection.permission_template.reset_access_controls_for(collection: collection, interpret_visibility: true) + end + + factory :public_collection_lw, traits: [:public_lw] + + factory :private_collection_lw do + visibility { Hydra::AccessControls::AccessRight::VISIBILITY_TEXT_VALUE_PRIVATE } + end + + factory :institution_collection_lw do + visibility { Hydra::AccessControls::AccessRight::VISIBILITY_TEXT_VALUE_AUTHENTICATED } + end + + factory :named_collection_lw do + title { ['collection title'] } + description { ['collection description'] } + end + + trait :public_lw do + visibility { Hydra::AccessControls::AccessRight::VISIBILITY_TEXT_VALUE_PUBLIC } + end + + trait :private_lw do + visibility { Hydra::AccessControls::AccessRight::VISIBILITY_TEXT_VALUE_PRIVATE } + end + + trait :institution_lw do + visibility { Hydra::AccessControls::AccessRight::VISIBILITY_TEXT_VALUE_AUTHENTICATED } + end + + trait :public_lw do + visibility { Hydra::AccessControls::AccessRight::VISIBILITY_TEXT_VALUE_PUBLIC } + end + end + + factory :user_collection_lw, class: Collection do + transient do + user { FactoryBot.create(:user) } + collection_type { create(:user_collection_type) } + end + + sequence(:title) { |n| ["User Collection Title #{n}"] } + + after(:build) do |collection, evaluator| + collection.apply_depositor_metadata(evaluator.user.user_key) + end + end + + factory :typeless_collection_lw, class: Collection do + # To create a pre-Hyrax 2.1.0 collection without a collection type gid... + # col = build(:typeless_collection, ...) + # col.save(validate: false) + transient do + user { FactoryBot.create(:user) } + with_permission_template { false } + do_save { false } + end + + sequence(:title) { |n| ["Typeless Collection Title #{n}"] } + + after(:build) do |collection, evaluator| + collection.apply_depositor_metadata(evaluator.user.user_key) + collection.save(validate: false) if evaluator.do_save || evaluator.with_permission_template + if evaluator.with_permission_template + attributes = { source_id: collection.id } + attributes[:manage_users] = [evaluator.user] + attributes = evaluator.with_permission_template.merge(attributes) if evaluator.with_permission_template.respond_to?(:merge) + create(:permission_template, attributes) unless Hyrax::PermissionTemplate.find_by(source_id: collection.id) + end + end + end + + class CollectionLwFactoryHelper + # @returns array of user keys + def self.permission_from_template(permission_template_attributes, permission_key) + permissions = [] + return permissions if permission_template_attributes.blank? + return permissions unless permission_template_attributes.is_a? Hash + return permissions unless permission_template_attributes.key?(permission_key) + permission_template_attributes[permission_key] + end + private_class_method :permission_from_template + + # @param [Hash] permission_template_attributes where names identify the role and value are the user keys for that role + # @parem [String] creator_user is the user who created the new collection + # @param [Boolean] include_creator, when true, adds the creator_user as a manager + # @returns array of user keys + def self.user_managers(permission_template_attributes, creator_user) + managers = permission_from_template(permission_template_attributes, :manage_users) + managers << creator_user + managers + end + + # @param [Hash] permission_template_attributes where names identify the role and value are the user keys for that role + # @returns array of user keys + def self.group_managers(permission_template_attributes) + permission_from_template(permission_template_attributes, :manage_groups) + end + + # @param [Hash] permission_template_attributes where names identify the role and value are the user keys for that role + # @returns array of user keys + def self.user_depositors(permission_template_attributes) + permission_from_template(permission_template_attributes, :deposit_users) + end + + # @param [Hash] permission_template_attributes where names identify the role and value are the user keys for that role + # @returns array of user keys + def self.group_depositors(permission_template_attributes) + permission_from_template(permission_template_attributes, :deposit_groups) + end + + # @param [Hash] permission_template_attributes where names identify the role and value are the user keys for that role + # @returns array of user keys + def self.user_viewers(permission_template_attributes) + permission_from_template(permission_template_attributes, :view_users) + end + + # @param [Hash] permission_template_attributes where names identify the role and value are the user keys for that role + # @returns array of user keys + def self.group_viewers(permission_template_attributes) + permission_from_template(permission_template_attributes, :view_groups) + end + + # Process the collection_type_settings transient property such that... + # * creates the collection type with specified settings if collection_type_settings has settings (ignores collection_type_gid) + # * uses passed in collection type if collection_type_gid is specified AND collection_type_settings is nil + # * uses default User Collection type if neither are specified + # @param [Collection] collection object being built/created by the factory + # @param [Class] evaluator holding the transient properties for the current build/creation process + def self.process_collection_type_settings(collection, evaluator) + if evaluator.collection_type_settings.present? + collection.collection_type = FactoryBot.create(:collection_type, *evaluator.collection_type_settings) + elsif collection.collection_type_gid.blank? + collection.collection_type = FactoryBot.create(:user_collection_type) + end + end + + # Process the with_permission_template transient property such that... + # * a permission template is created for the collection + # * a permission template access is created for the collection creator + # * additional permission template accesses are created for each user/group identified in the attributes + # of with_permission_template (created by the permission_template factory) + # @param [Collection] collection object being built/created by the factory + # @param [Class] evaluator holding the transient properties for the current build/creation process + # @param [Boolean] if true, force the permission template to be created + def self.process_with_permission_template(collection, evaluator, force = false) + return unless force || evaluator.with_permission_template + collection.id ||= FactoryBot.generate(:object_id) + attributes = { source_id: collection.id } + attributes[:manage_users] = user_managers(evaluator.with_permission_template, evaluator.user) + attributes = evaluator.with_permission_template.merge(attributes) if evaluator.with_permission_template.respond_to?(:merge) + FactoryBot.create(:permission_template, attributes) unless Hyrax::PermissionTemplate.find_by(source_id: collection.id) + end + + # Process the with_solr_document transient property such that... + # * a solr document is created for the collection + # * permissions identified by with_permission_template, if any, are added to the solr fields + # @param [Collection] collection object being built/created by the factory + # @param [Class] evaluator holding the transient properties for the current build/creation process + def self.process_with_solr_document(collection, evaluator) + return unless evaluator.with_solr_document + Hyrax::SolrService.add(solr_document_with_permissions(collection, evaluator), commit: true) + end + + # Return the collection's solr document with permissions added, such that... + # * permissions identified by with_permission_template, if any, are added to the solr fields + # @param [Collection] collection object being built/created by the factory + # @param [Class] evaluator holding the transient properties for the current build/creation process + # @returns the collection's solr document with permissions added + def self.solr_document_with_permissions(collection, evaluator) + collection.id ||= FactoryBot.generate(:object_id) + collection.edit_users = user_managers(evaluator.with_permission_template, evaluator.user) + collection.edit_groups = group_managers(evaluator.with_permission_template) + collection.read_users = user_viewers(evaluator.with_permission_template) + + user_depositors(evaluator.with_permission_template) + collection.read_groups = group_viewers(evaluator.with_permission_template) + + group_depositors(evaluator.with_permission_template) + collection.to_solr + end + private_class_method :solr_document_with_permissions + end +end diff --git a/spec/factories/collections_factory.rb b/spec/factories/collections_factory.rb new file mode 100644 index 00000000..febf05d7 --- /dev/null +++ b/spec/factories/collections_factory.rb @@ -0,0 +1,107 @@ +# frozen_string_literal: true +FactoryBot.define do + factory :collection do + # DEPRECATION: This factory is being replaced by collection_lw defined in collections.rb. New tests should use the + # light weight collection factory. DO NOT ADD tests using this factory. + # + # rubocop:disable Layout/LineLength + # @example let(:collection) { build(:collection, collection_type_settings: [:not_nestable, :discoverable, :sharable, :allow_multiple_membership]) } + # rubocop:enable Layout/LineLength + + transient do + user { FactoryBot.create(:user) } + # allow defaulting to default user collection + collection_type_settings { nil } + with_permission_template { false } + create_access { false } + end + sequence(:title) { |n| ["Collection Title #{n}"] } + + after(:build) do |collection, evaluator| + collection.apply_depositor_metadata(evaluator.user.user_key) + if evaluator.collection_type_settings.present? + collection.collection_type = create(:collection_type, *evaluator.collection_type_settings) + elsif collection.collection_type_gid.nil? + collection.collection_type = create(:user_collection_type) + end + end + + after(:create) do |collection, evaluator| + # create the permission template if it was requested + if evaluator.with_permission_template || evaluator.create_access + attributes = { source_id: collection.id } + attributes[:manage_users] = CollectionFactoryHelper.user_managers(evaluator.with_permission_template, evaluator.user, evaluator.create_access) + attributes = evaluator.with_permission_template.merge(attributes) if evaluator.with_permission_template.respond_to?(:merge) + create(:permission_template, attributes) unless Hyrax::PermissionTemplate.find_by(source_id: collection.id) + collection.permission_template.reset_access_controls_for(collection: collection, interpret_visibility: true) + end + end + + factory :public_collection, traits: [:public] + + trait :public do + visibility { Hydra::AccessControls::AccessRight::VISIBILITY_TEXT_VALUE_PUBLIC } + end + + factory :private_collection do + visibility { Hydra::AccessControls::AccessRight::VISIBILITY_TEXT_VALUE_PRIVATE } + end + + factory :institution_collection do + visibility { Hydra::AccessControls::AccessRight::VISIBILITY_TEXT_VALUE_AUTHENTICATED } + end + + factory :named_collection do + title { ['collection title'] } + description { ['collection description'] } + end + end + + factory :user_collection, class: Collection do + transient do + user { FactoryBot.create(:user) } + collection_type { create(:user_collection_type) } + end + + sequence(:title) { |n| ["User Collection Title #{n}"] } + + after(:build) do |collection, evaluator| + collection.apply_depositor_metadata(evaluator.user.user_key) + end + end + + factory :typeless_collection, class: Collection do + # To create a pre-Hyrax 2.1.0 collection without a collection type gid... + # col = build(:typeless_collection, ...) + # col.save(validate: false) + transient do + user { FactoryBot.create(:user) } + with_permission_template { false } + create_access { false } + do_save { false } + end + + sequence(:title) { |n| ["Typeless Collection Title #{n}"] } + + after(:build) do |collection, evaluator| + collection.apply_depositor_metadata(evaluator.user.user_key) + collection.save(validate: false) if evaluator.do_save || evaluator.with_permission_template + if evaluator.with_permission_template + attributes = { source_id: collection.id } + attributes[:manage_users] = [evaluator.user] if evaluator.create_access + attributes = evaluator.with_permission_template.merge(attributes) if evaluator.with_permission_template.respond_to?(:merge) + create(:permission_template, attributes) unless Hyrax::PermissionTemplate.find_by(source_id: collection.id) + end + end + end + + class CollectionFactoryHelper + def self.user_managers(permission_template_attributes, creator_user, include_creator = false) + managers = [] + managers << creator_user.user_key if include_creator + return managers unless permission_template_attributes.respond_to?(:merge) + return managers unless permission_template_attributes.key?(:manage_users) + managers + permission_template_attributes[:manage_users] + end + end +end diff --git a/spec/factories/content_blocks.rb b/spec/factories/content_blocks.rb new file mode 100644 index 00000000..6e498fe0 --- /dev/null +++ b/spec/factories/content_blocks.rb @@ -0,0 +1,5 @@ +# frozen_string_literal: true +FactoryBot.define do + factory :content_block do |_cb| + end +end diff --git a/spec/factories/counter_metrics.rb b/spec/factories/counter_metrics.rb new file mode 100644 index 00000000..2706ad14 --- /dev/null +++ b/spec/factories/counter_metrics.rb @@ -0,0 +1,12 @@ +# frozen_string_literal: true + +FactoryBot.define do + factory :counter_metric, class: "Hyrax::CounterMetric" do + worktype { "Generic Work" } + resource_type { "Book" } + work_id { "12345678" } + date { Date.new(2023, 7, 17) } + total_item_investigations { 10 } + total_item_requests { 5 } + end +end diff --git a/spec/factories/featured_works.rb b/spec/factories/featured_works.rb new file mode 100644 index 00000000..2db9307d --- /dev/null +++ b/spec/factories/featured_works.rb @@ -0,0 +1,5 @@ +# frozen_string_literal: true +FactoryBot.define do + factory :featured_work do |_u| + end +end diff --git a/spec/factories/file_sets.rb b/spec/factories/file_sets.rb new file mode 100644 index 00000000..bd991f85 --- /dev/null +++ b/spec/factories/file_sets.rb @@ -0,0 +1,45 @@ +# frozen_string_literal: true +FactoryBot.define do + factory :file_set do + transient do + user { FactoryBot.create(:user) } + content { nil } + end + after(:build) do |fs, evaluator| + fs.apply_depositor_metadata evaluator.user.user_key + end + + after(:create) do |file, evaluator| + Hydra::Works::UploadFileToFileSet.call(file, evaluator.content) if evaluator.content + end + + trait :public do + read_groups { ["public"] } + end + + trait :registered do + read_groups { ["registered"] } + end + + trait :image do + content { File.open(Hyrax::Engine.root + 'spec/fixtures/world.png') } + end + + trait :with_original_file do + after(:create) do |file_set, _evaluator| + Hydra::Works::AddFileToFileSet + .call(file_set, File.open(Hyrax::Engine.root + 'spec/fixtures/world.png'), :original_file) + end + end + + factory :file_with_work do + after(:build) do |file, _evaluator| + file.title = ['testfile'] + end + after(:create) do |file, evaluator| + Hydra::Works::UploadFileToFileSet.call(file, evaluator.content) if evaluator.content + create(:work, user: evaluator.user).members << file + end + end + end +end diff --git a/spec/factories/generic_works.rb b/spec/factories/generic_works.rb new file mode 100644 index 00000000..d98f28fd --- /dev/null +++ b/spec/factories/generic_works.rb @@ -0,0 +1,200 @@ +# frozen_string_literal: true + +FactoryBot.define do + factory :work, aliases: [:generic_work, :private_generic_work], class: 'GenericWork' do + transient do + user { FactoryBot.create(:user) } + # Set to true (or a hash) if you want to create an admin set + with_admin_set { false } + end + + # It is reasonable to assume that a work has an admin set; However, we don't want to + # go through the entire rigors of creating that admin set. + before(:create) do |work, evaluator| + if evaluator.with_admin_set + attributes = {} + attributes[:id] = work.admin_set_id if work.admin_set_id.present? + attributes = evaluator.with_admin_set.merge(attributes) if evaluator.with_admin_set.respond_to?(:merge) + admin_set = create(:admin_set, attributes) + work.admin_set_id = admin_set.id + end + end + + after(:create) do |work, _evaluator| + work.save! if work.try(:member_of_collections) && work.member_of_collections.present? + end + + title { ["Test title"] } + + after(:build) do |work, evaluator| + work.apply_depositor_metadata(evaluator.user.user_key) if work.try(:apply_depositor_metadata, evaluator.user.user_key) + end + + factory :public_generic_work, aliases: [:public_work], traits: [:public] + + trait :public do + visibility { Hydra::AccessControls::AccessRight::VISIBILITY_TEXT_VALUE_PUBLIC } + end + + factory :invalid_generic_work do + title { nil } + end + + factory :private_work do + # private is default + # visibility { Hydra::AccessControls::AccessRight::VISIBILITY_TEXT_VALUE_PRIVATE } + end + + factory :registered_generic_work do + read_groups { ["registered"] } + end + + factory :work_with_one_file do + before(:create) do |work, evaluator| + work.ordered_members << create(:file_set, user: evaluator.user, title: ['A Contained FileSet'], label: 'filename.pdf') + end + end + + factory :work_with_files do + before(:create) { |work, evaluator| 2.times { work.ordered_members << create(:file_set, user: evaluator.user) } } + end + + factory :work_with_image_files do + before(:create) { |work, evaluator| 2.times { work.ordered_members << create(:file_set, :image, user: evaluator.user) } } + end + + factory :work_with_ordered_files do + before(:create) do |work, evaluator| + work.ordered_members << create(:file_set, user: evaluator.user) + work.ordered_member_proxies.insert_target_at(0, create(:file_set, user: evaluator.user)) + end + end + + factory :work_with_one_child do + before(:create) do |work, evaluator| + work.ordered_members << create(:work, user: evaluator.user, title: ['A Contained Work']) + end + end + + factory :work_with_two_children do + before(:create) do |work, evaluator| + work.ordered_members << create(:work, user: evaluator.user, title: ['A Contained Work'], id: "BlahBlah1") + work.ordered_members << create(:work, user: evaluator.user, title: ['Another Contained Work'], id: "BlahBlah2") + end + end + + factory :work_with_representative_file do + before(:create) do |work, evaluator| + work.ordered_members << create(:file_set, user: evaluator.user, title: ['A Contained FileSet']) + work.representative_id = work.members[0].id + end + end + + factory :work_with_file_and_work do + before(:create) do |work, evaluator| + work.ordered_members << create(:file_set, user: evaluator.user) + work.ordered_members << create(:work, user: evaluator.user) + end + end + + factory :with_embargo_date do + # build with defaults: + # let(:work) { create(:embargoed_work) } + + # build with specific values: + # let(:embargo_attributes) do + # { embargo_date: Date.tomorrow.to_s, + # current_state: Hydra::AccessControls::AccessRight::VISIBILITY_TEXT_VALUE_PRIVATE, + # future_state: Hydra::AccessControls::AccessRight::VISIBILITY_TEXT_VALUE_PUBLIC } + # end + # let(:work) { create(:embargoed_work, with_embargo_attributes: embargo_attributes) } + + transient do + with_embargo_attributes { false } + embargo_date { Date.tomorrow.to_s } + current_state { Hydra::AccessControls::AccessRight::VISIBILITY_TEXT_VALUE_PRIVATE } + future_state { Hydra::AccessControls::AccessRight::VISIBILITY_TEXT_VALUE_PUBLIC } + end + factory :embargoed_work do + after(:build) do |work, evaluator| + if evaluator.with_embargo_attributes + work.apply_embargo(evaluator.with_embargo_attributes[:embargo_date], + evaluator.with_embargo_attributes[:current_state], + evaluator.with_embargo_attributes[:future_state]) + else + work.apply_embargo(evaluator.embargo_date, + evaluator.current_state, + evaluator.future_state) + end + end + end + factory :embargoed_work_with_files do + after(:build) do |work, evaluator| + if evaluator.with_embargo_attributes + work.apply_embargo(evaluator.with_embargo_attributes[:embargo_date], + evaluator.with_embargo_attributes[:current_state], + evaluator.with_embargo_attributes[:future_state]) + else + work.apply_embargo(evaluator.embargo_date, + evaluator.current_state, + evaluator.future_state) + end + end + after(:create) { |work, evaluator| 2.times { work.ordered_members << create(:file_set, user: evaluator.user) } } + end + end + + factory :with_lease_date do + # build with defaults: + # let(:work) { create(:leased_work) } + + # build with specific values: + # let(:lease_attributes) do + # { lease_date: Date.tomorrow.to_s, + # current_state: Hydra::AccessControls::AccessRight::VISIBILITY_TEXT_VALUE_PUBLIC, + # future_state: Hydra::AccessControls::AccessRight::VISIBILITY_TEXT_VALUE_AUTHENTICATED } + # end + # let(:work) { create(:leased_work, with_lease_attributes: lease_attributes) } + + transient do + with_lease_attributes { false } + lease_date { Date.tomorrow.to_s } + current_state { Hydra::AccessControls::AccessRight::VISIBILITY_TEXT_VALUE_PUBLIC } + future_state { Hydra::AccessControls::AccessRight::VISIBILITY_TEXT_VALUE_PRIVATE } + end + factory :leased_work do + after(:build) do |work, evaluator| + if evaluator.with_lease_attributes + work.apply_lease(evaluator.with_lease_attributes[:lease_date], + evaluator.with_lease_attributes[:current_state], + evaluator.with_lease_attributes[:future_state]) + else + work.apply_lease(evaluator.lease_date, + evaluator.current_state, + evaluator.future_state) + end + end + end + factory :leased_work_with_files do + after(:build) do |work, evaluator| + if evaluator.with_lease_attributes + work.apply_lease(evaluator.with_lease_attributes[:lease_date], + evaluator.with_lease_attributes[:current_state], + evaluator.with_lease_attributes[:future_state]) + else + work.apply_lease(evaluator.lease_date, + evaluator.current_state, + evaluator.future_state) + end + end + after(:create) { |work, evaluator| 2.times { work.ordered_members << create(:file_set, user: evaluator.user) } } + end + end + end + + # Doesn't set up any edit_users + factory :work_without_access, class: 'GenericWork' do + title { ['Test title'] } + depositor { create(:user).user_key } + end +end diff --git a/spec/factories/gw_works.rb b/spec/factories/gw_works.rb deleted file mode 100644 index 3f0dc88b..00000000 --- a/spec/factories/gw_works.rb +++ /dev/null @@ -1,17 +0,0 @@ -FactoryBot.define do - factory :gw_work do - id { Noid::Rails::Service.new.mint } - title { [Faker::Book.title] } - - transient do - visibility { "public" } - user { nil } - end - - after :create do |work, options| - work.visibility = Hydra::AccessControls::AccessRight::VISIBILITY_TEXT_VALUE_PUBLIC if options.visibility == "public" - work.visibility = Hydra::AccessControls::AccessRight::VISIBILITY_TEXT_VALUE_PRIVATE if options.visibility == "private" - work.visibility = Hydra::AccessControls::AccessRight::VISIBILITY_TEXT_VALUE_AUTHENTICATED if options.visibility == "authenticated" - end - end -end \ No newline at end of file diff --git a/spec/factories/hyrax_collection.rb b/spec/factories/hyrax_collection.rb new file mode 100644 index 00000000..97334f38 --- /dev/null +++ b/spec/factories/hyrax_collection.rb @@ -0,0 +1,92 @@ +# frozen_string_literal: true + +## +# Use this factory for generic Hyrax/HydraWorks Collections in valkyrie. +# +# This factory creates a Valkyrized collection set; by default a Hyrax::PcdmCollection +# +# Why the antics around the class? Because of the Hyrax needs and potential downstream +# applciation needs. +# +# Downstream applications might implement a different collection class and the downstream +# application might leverage other Hyrax factories that create a `:hyrax_collection` +FactoryBot.define do + factory :hyrax_collection, class: (Hyrax.config.collection_class < Valkyrie::Resource ? Hyrax.config.collection_class : 'CollectionResource'), aliases: [:collection_resource] do + sequence(:title) { |n| ["The Tove Jansson Collection #{n}"] } + collection_type_gid { Hyrax::CollectionType.find_or_create_default_collection_type.to_global_id.to_s } + + transient do + with_permission_template { true } + collection_type { nil } + with_index { true } + user { FactoryBot.create(:user) } + edit_groups { [] } + edit_users { [] } + read_groups { [] } + read_users { [] } + members { nil } + access_grants { [] } + end + + after(:build) do |collection, evaluator| + collection.depositor ||= evaluator.user.user_key + collection.collection_type_gid = evaluator.collection_type.to_global_id.to_s if evaluator.collection_type + end + + after(:create) do |collection, evaluator| + if evaluator.members.present? + evaluator.members.map do |member| + member.member_of_collection_ids += [collection.id] + member = Hyrax.persister.save(resource: member) + Hyrax.index_adapter.save(resource: member) if evaluator.with_index + end + end + if evaluator.with_permission_template + Hyrax::Collections::PermissionsCreateService.create_default(collection: collection, + creating_user: evaluator.user, + grants: evaluator.access_grants) + collection.permission_manager.edit_groups = collection.permission_manager.edit_groups.to_a + + evaluator.edit_groups + collection.permission_manager.edit_users = collection.permission_manager.edit_users.to_a + + evaluator.edit_users + collection.permission_manager.read_groups = collection.permission_manager.read_groups.to_a + + evaluator.read_groups + collection.permission_manager.read_users = collection.permission_manager.read_users.to_a + + evaluator.read_users + collection.permission_manager.acl.save + end + Hyrax.index_adapter.save(resource: collection) if evaluator.with_index + end + + trait :public do + read_groups { ['public'] } + end + + trait :with_member_works do + transient do + members { [valkyrie_create(:hyrax_work), valkyrie_create(:hyrax_work)] } + end + end + + trait :with_member_collections do + transient do + members { [valkyrie_create(:hyrax_collection), valkyrie_create(:hyrax_collection)] } + end + end + + trait :as_collection_member do + member_of_collection_ids { [valkyrie_create(:hyrax_collection).id] } + end + + trait :as_member_of_multiple_collections do + member_of_collection_ids do + [valkyrie_create(:hyrax_collection).id, + valkyrie_create(:hyrax_collection).id, + valkyrie_create(:hyrax_collection).id] + end + end + + factory :pcdm_collection, class: 'Hyrax::PcdmCollection' do + end + end +end diff --git a/spec/factories/hyrax_default_admin_set.rb b/spec/factories/hyrax_default_admin_set.rb new file mode 100644 index 00000000..fbb51d3a --- /dev/null +++ b/spec/factories/hyrax_default_admin_set.rb @@ -0,0 +1,7 @@ +# frozen_string_literal: true +FactoryBot.define do + factory :stored_default_admin_set_id, class: Hyrax::DefaultAdministrativeSet do + id { 1 } + default_admin_set_id { Hyrax::AdminSetCreateService::DEFAULT_ID } + end +end diff --git a/spec/factories/hyrax_embargo.rb b/spec/factories/hyrax_embargo.rb new file mode 100644 index 00000000..2111df52 --- /dev/null +++ b/spec/factories/hyrax_embargo.rb @@ -0,0 +1,18 @@ +# frozen_string_literal: true +FactoryBot.define do + factory :hyrax_embargo, class: "Hyrax::Embargo" do + embargo_release_date { (Time.zone.today + 10).to_datetime } + visibility_after_embargo { 'open' } + visibility_during_embargo { 'authenticated' } + + to_create do |instance| + saved_instance = Valkyrie.config.metadata_adapter.persister.save(resource: instance) + instance.id = saved_instance.id + saved_instance + end + + trait :expired do + embargo_release_date { (Time.zone.today - 1).to_datetime } + end + end +end diff --git a/spec/factories/hyrax_file_metadata.rb b/spec/factories/hyrax_file_metadata.rb new file mode 100644 index 00000000..22416cdd --- /dev/null +++ b/spec/factories/hyrax_file_metadata.rb @@ -0,0 +1,92 @@ +# frozen_string_literal: true + +## +# Use this factory for FileMetadata for Files in valkyrie. +FactoryBot.define do + factory :hyrax_file_metadata, class: 'Hyrax::FileMetadata', aliases: [:file_metadata] do + transient do + use { nil } + visibility_setting { nil } + end + + after(:build) do |file_metadata, evaluator| + if evaluator.visibility_setting + Hyrax::VisibilityWriter + .new(resource: file_metadata) + .assign_access_for(visibility: evaluator.visibility_setting) + end + file_metadata.pcdm_use = Hyrax::FileMetadata::Use.uri_for(use: evaluator.use) if evaluator.use + end + + after(:create) do |file_metadata, evaluator| + if evaluator.visibility_setting + writer = Hyrax::VisibilityWriter.new(resource: file_metadata) + writer.assign_access_for(visibility: evaluator.visibility_setting) + writer.permission_manager.acl.save + end + end + + trait :public do + transient do + visibility_setting { Hydra::AccessControls::AccessRight::VISIBILITY_TEXT_VALUE_PUBLIC } + end + end + + trait :original_file do + use { Hyrax::FileMetadata::Use.uri_for(use: :original_file) } + end + + trait :thumbnail do + use { Hyrax::FileMetadata::Use.uri_for(use: :thumbnail_file) } + end + + trait :extracted_text do + use { Hyrax::FileMetadata::Use.uri_for(use: :extracted_file) } + end + + trait :service_file do + use { Hyrax::FileMetadata::Use.uri_for(use: :service_file) } + end + + trait :image do + mime_type { 'image/png' } + end + + trait :audio_file do + mime_type { 'audio/x-wave' } + end + + trait :video_file do + mime_type { 'video/mp4' } + end + + trait :with_file do + transient do + file { FactoryBot.create(:uploaded_file, file: File.open(Hyrax::Engine.root + 'spec/fixtures/world.png')) } + file_set { FactoryBot.valkyrie_create(:hyrax_file_set) } + user { FactoryBot.create(:user) } + end + + after(:build) do |file_metadata, evaluator| + file_metadata.label = evaluator.file.uploader.filename + file_metadata.mime_type = evaluator.file.uploader.content_type if file_metadata.mime_type == Hyrax::FileMetadata::GENERIC_MIME_TYPE + file_metadata.original_filename = evaluator.file.uploader.filename + file_metadata.recorded_size = evaluator.file.uploader.size + file_metadata.file_set_id = evaluator.file_set.id + end + + before(:create) do |file_metadata, evaluator| + saved = Hyrax.storage_adapter.upload(resource: evaluator.file_set, + file: evaluator.file.uploader.file, + original_filename: evaluator.file.uploader.filename) + file_metadata.file_identifier = saved.id + end + + after(:create) do |file_metadata, evaluator| + Hyrax::ValkyrieUpload.new.add_file_to_file_set(file_set: evaluator.file_set, + file_metadata: file_metadata, + user: evaluator.user) + end + end + end +end diff --git a/spec/factories/hyrax_file_set.rb b/spec/factories/hyrax_file_set.rb new file mode 100644 index 00000000..02fd3435 --- /dev/null +++ b/spec/factories/hyrax_file_set.rb @@ -0,0 +1,129 @@ +# frozen_string_literal: true + +FactoryBot.define do + factory :hyrax_file_set, class: 'Hyrax::FileSet' do + transient do + files { nil } + original_file { nil } + extracted_text { nil } + thumbnail { nil } + visibility_setting { nil } + edit_users { [] } + edit_groups { [] } + read_users { [] } + read_groups { [] } + with_index { true } + end + + after(:build) do |file_set, evaluator| + if evaluator.visibility_setting + Hyrax::VisibilityWriter + .new(resource: file_set) + .assign_access_for(visibility: evaluator.visibility_setting) + end + file_set.file_ids = evaluator.files.map(&:id) if evaluator.files + + file_set.permission_manager.edit_groups = file_set.permission_manager.edit_groups.to_a + evaluator.edit_groups + file_set.permission_manager.edit_users = file_set.permission_manager.edit_users.to_a + evaluator.edit_users + file_set.permission_manager.read_users = file_set.permission_manager.read_users.to_a + evaluator.read_users + file_set.permission_manager.read_groups = file_set.permission_manager.read_groups.to_a + evaluator.read_groups + end + + after(:create) do |file_set, evaluator| + if evaluator.visibility_setting + writer = Hyrax::VisibilityWriter.new(resource: file_set) + writer.assign_access_for(visibility: evaluator.visibility_setting) + writer.permission_manager.acl.save + end + + file_set.permission_manager.edit_groups = file_set.permission_manager.edit_groups.to_a + evaluator.edit_groups + file_set.permission_manager.edit_users = file_set.permission_manager.edit_users.to_a + evaluator.edit_users + file_set.permission_manager.read_users = file_set.permission_manager.read_users.to_a + evaluator.read_users + file_set.permission_manager.read_groups = file_set.permission_manager.read_groups.to_a + evaluator.read_groups + + file_set.permission_manager.acl.save + + Hyrax.index_adapter.save(resource: file_set) if evaluator.with_index + end + + trait :under_embargo do + association :embargo, factory: :hyrax_embargo + + after(:create) do |fs, _e| + Hyrax::EmbargoManager.new(resource: fs).apply + fs.permission_manager.acl.save + end + end + + trait :with_expired_enforced_embargo do + after(:build) do |fs, _evaluator| + fs.embargo = FactoryBot.valkyrie_create(:hyrax_embargo, :expired) + end + + after(:create) do |fs, _evaluator| + allow(Hyrax::TimeService).to receive(:time_in_utc).and_return(10.days.ago) + Hyrax::EmbargoManager.new(resource: fs).apply + fs.permission_manager.acl.save + allow(Hyrax::TimeService).to receive(:time_in_utc).and_call_original + end + end + + trait :under_lease do + association :lease, factory: :hyrax_lease + + after(:create) do |fs, _e| + Hyrax::LeaseManager.new(resource: fs).apply + fs.permission_manager.acl.save + end + end + + trait :with_expired_enforced_lease do + after(:build) do |fs, _evaluator| + fs.lease = FactoryBot.valkyrie_create(:hyrax_lease, :expired) + end + + after(:create) do |fs, _evaluator| + allow(Hyrax::TimeService).to receive(:time_in_utc).and_return(10.days.ago) + Hyrax::LeaseManager.new(resource: fs).apply + fs.permission_manager.acl.save + allow(Hyrax::TimeService).to receive(:time_in_utc).and_call_original + end + end + + trait :public do + transient do + visibility_setting { Hydra::AccessControls::AccessRight::VISIBILITY_TEXT_VALUE_PUBLIC } + end + end + + trait :authenticated do + transient do + visibility_setting { Hydra::AccessControls::AccessRight::VISIBILITY_TEXT_VALUE_AUTHENTICATED } + end + end + + trait :with_files do + transient do + ios { [File.open(Hyrax::Engine.root + 'spec/fixtures/image.png'), File.open(Hyrax::Engine.root + 'spec/fixtures/Example.ogg')] } + + after(:create) do |file_set, evaluator| + evaluator.ios.each do |file| + filename = File.basename(file.path).to_s + Hyrax::ValkyrieUpload.file(filename: filename, file_set: file_set, io: file) + end + end + end + end + + trait :in_work do + transient do + work { build(:hyrax_work) } + end + + after(:create) do |file_set, evaluator| + evaluator.work.member_ids += [file_set.id] + Hyrax.persister.save(resource: evaluator.work) + end + end + end +end diff --git a/spec/factories/hyrax_lease.rb b/spec/factories/hyrax_lease.rb new file mode 100644 index 00000000..f8cd7cea --- /dev/null +++ b/spec/factories/hyrax_lease.rb @@ -0,0 +1,18 @@ +# frozen_string_literal: true +FactoryBot.define do + factory :hyrax_lease, class: "Hyrax::Lease" do + lease_expiration_date { (Time.zone.today + 10).to_datetime } + visibility_after_lease { 'authenticated' } + visibility_during_lease { 'open' } + + to_create do |instance| + saved_instance = Valkyrie.config.metadata_adapter.persister.save(resource: instance) + instance.id = saved_instance.id + saved_instance + end + + trait :expired do + lease_expiration_date { (Time.zone.today - 2).to_datetime } + end + end +end diff --git a/spec/factories/hyrax_resource.rb b/spec/factories/hyrax_resource.rb new file mode 100644 index 00000000..14f73c09 --- /dev/null +++ b/spec/factories/hyrax_resource.rb @@ -0,0 +1,15 @@ +# frozen_string_literal: true + +## +# Use for generic Resources, with Hyrax assumptions. +FactoryBot.define do + factory :hyrax_resource, class: "Hyrax::Resource" do + trait :under_embargo do + embargo_id { FactoryBot.create(:hyrax_embargo).id } + end + + trait :under_lease do + lease_id { FactoryBot.create(:hyrax_lease).id } + end + end +end diff --git a/spec/factories/hyrax_work.rb b/spec/factories/hyrax_work.rb new file mode 100644 index 00000000..4c830827 --- /dev/null +++ b/spec/factories/hyrax_work.rb @@ -0,0 +1,239 @@ +# frozen_string_literal: true + +## +# Use this factory for generic Hyrax/HydraWorks Works in valkyrie. +FactoryBot.define do + factory :hyrax_work, class: 'Hyrax::Test::SimpleWork' do + trait :under_embargo do + association :embargo, factory: :hyrax_embargo + + after(:create) do |work, _e| + Hyrax::EmbargoManager.new(resource: work).apply + work.permission_manager.acl.save + end + end + + trait :with_expired_enforced_embargo do + after(:build) do |work, _evaluator| + work.embargo = FactoryBot.valkyrie_create(:hyrax_embargo, :expired) + end + + after(:create) do |work, _evaluator| + allow(Hyrax::TimeService).to receive(:time_in_utc).and_return(10.days.ago) + Hyrax::EmbargoManager.new(resource: work).apply + work.permission_manager.acl.save + allow(Hyrax::TimeService).to receive(:time_in_utc).and_call_original + end + end + + trait :under_lease do + association :lease, factory: :hyrax_lease + + after(:create) do |work, _e| + Hyrax::LeaseManager.new(resource: work).apply + work.permission_manager.acl.save + end + end + + trait :with_expired_enforced_lease do + after(:build) do |work, _evaluator| + work.lease = FactoryBot.valkyrie_create(:hyrax_lease, :expired) + end + + after(:create) do |work, _evaluator| + allow(Hyrax::TimeService).to receive(:time_in_utc).and_return(10.days.ago) + Hyrax::LeaseManager.new(resource: work).apply + work.permission_manager.acl.save + allow(Hyrax::TimeService).to receive(:time_in_utc).and_call_original + end + end + + transient do + edit_users { [] } + edit_groups { [] } + read_users { [] } + read_groups { [] } + members { nil } + visibility_setting { nil } + with_index { true } + uploaded_files { [] } + end + + after(:build) do |work, evaluator| + if evaluator.visibility_setting + Hyrax::VisibilityWriter + .new(resource: work) + .assign_access_for(visibility: evaluator.visibility_setting) + end + + if evaluator.respond_to?(:admin_set) && evaluator.admin_set.present? + template = Hyrax::PermissionTemplate.find_by(source_id: evaluator.admin_set.id) + Hyrax::PermissionTemplateApplicator.apply(template).to(model: work) if template + end + + work.permission_manager.edit_groups = work.permission_manager.edit_groups.to_a + evaluator.edit_groups + work.permission_manager.edit_users = work.permission_manager.edit_users.to_a + evaluator.edit_users + work.permission_manager.read_users = work.permission_manager.read_users.to_a + evaluator.read_users + work.permission_manager.read_groups = work.permission_manager.read_groups.to_a + evaluator.read_groups + + work.member_ids = evaluator.members.compact.map(&:id) if evaluator.members + end + + after(:create) do |work, evaluator| + if evaluator.visibility_setting + Hyrax::VisibilityWriter + .new(resource: work) + .assign_access_for(visibility: evaluator.visibility_setting) + end + + if evaluator.respond_to?(:admin_set) && evaluator.admin_set.present? + # We're likely going to want to apply permissions + template = Hyrax::PermissionTemplate.find_by(source_id: evaluator.admin_set.id) + if template + Hyrax::PermissionTemplateApplicator.apply(template).to(model: work) + if template.active_workflow.present? + user = User.find_by(Hydra.config.user_key_field => work.depositor) + Hyrax::Workflow::WorkflowFactory.create(work, {}, user) + end + end + end + + work.permission_manager.edit_groups = work.permission_manager.edit_groups.to_a + evaluator.edit_groups + work.permission_manager.edit_users = work.permission_manager.edit_users.to_a + evaluator.edit_users + work.permission_manager.read_users = work.permission_manager.read_users.to_a + evaluator.read_users + work.permission_manager.read_groups = work.permission_manager.read_groups.to_a + evaluator.read_groups + + # these are both no-ops if an active embargo/lease isn't present + Hyrax::EmbargoManager.new(resource: work).apply + Hyrax::LeaseManager.new(resource: work).apply + + work.permission_manager.acl.save + + # This has to happen after permissions for permissions to propagate. + if evaluator.uploaded_files.present? + allow(Hyrax.config.characterization_service).to receive(:run).and_return(true) + perform_enqueued_jobs(only: ValkyrieIngestJob) do + Hyrax::WorkUploadsHandler.new(work: Hyrax.query_service.find_by(id: work.id)).add(files: evaluator.uploaded_files).attach + end + # I'm not sure why, but Wings required this reload. + work.member_ids = Hyrax.query_service.find_by(id: work.id).member_ids + end + + Hyrax.index_adapter.save(resource: Hyrax.query_service.find_by(id: work.id)) if evaluator.with_index + end + + trait :public do + transient do + visibility_setting { Hydra::AccessControls::AccessRight::VISIBILITY_TEXT_VALUE_PUBLIC } + end + end + + trait :with_admin_set do + transient do + admin_set { valkyrie_create(:hyrax_admin_set) } + end + + after(:build) do |work, evaluator| + work.admin_set_id = evaluator.admin_set&.id + end + end + + trait :with_default_admin_set do + admin_set_id { Hyrax::EnsureWellFormedAdminSetService.call } + end + + trait :with_member_works do + transient do + members do + # If you set a depositor on the containing work, propogate that into these members + additional_attributes = {} + additional_attributes[:depositor] = depositor if depositor + [valkyrie_create(:hyrax_work, additional_attributes), valkyrie_create(:hyrax_work, additional_attributes)] + end + end + end + + trait :with_file_and_work do + transient do + members do + # If you set a depositor on the containing work, propogate that into these members + additional_attributes = {} + additional_attributes[:depositor] = depositor if depositor + [valkyrie_create(:hyrax_file_set, additional_attributes), valkyrie_create(:hyrax_work, additional_attributes)] + end + end + end + + trait :with_one_file_set do + transient do + members do + # If you set a depositor on the containing work, propogate that into this member + additional_attributes = {} + additional_attributes[:depositor] = depositor if depositor + [valkyrie_create(:hyrax_file_set, additional_attributes)] + end + end + end + + trait :with_member_file_sets do + transient do + members do + # If you set a depositor on the containing work, propogate that into these members + additional_attributes = {} + additional_attributes[:depositor] = depositor if depositor + [valkyrie_create(:hyrax_file_set, additional_attributes), valkyrie_create(:hyrax_file_set, additional_attributes)] + end + end + end + + trait :with_thumbnail do + thumbnail_id do + file_set = members.find(&:file_set?) || + valkyrie_create(:hyrax_file_set) + file_set.id + end + end + + trait :with_representative do + representative_id do + file_set = members&.find(&:file_set?) || + valkyrie_create(:hyrax_file_set) + file_set.id + end + end + + trait :with_renderings do + rendering_ids do + file_set = members.find(&:file_set?) || + valkyrie_create(:hyrax_file_set) + file_set.id + end + end + + trait :as_collection_member do + member_of_collection_ids { [valkyrie_create(:hyrax_collection).id] } + end + + trait :as_member_of_multiple_collections do + member_of_collection_ids do + [valkyrie_create(:hyrax_collection).id, + valkyrie_create(:hyrax_collection).id, + valkyrie_create(:hyrax_collection).id] + end + end + + factory :monograph, class: 'Monograph' do + factory :comet_in_moominland do + title { 'Comet in Moominland' } + creator { 'Tove Jansson' } + record_info { 'An example monograph with enough metadata fill in required fields.' } + end + + trait :with_member_works do + transient do + members { [valkyrie_create(:monograph), valkyrie_create(:monograph)] } + end + end + end + end +end diff --git a/spec/factories/object_id.rb b/spec/factories/object_id.rb new file mode 100644 index 00000000..a6209daa --- /dev/null +++ b/spec/factories/object_id.rb @@ -0,0 +1,7 @@ +# frozen_string_literal: true +# Defines a new sequence +FactoryBot.define do + sequence :object_id do |n| + "object_id_#{n}" + end +end diff --git a/spec/factories/operations.rb b/spec/factories/operations.rb new file mode 100644 index 00000000..19efbc6e --- /dev/null +++ b/spec/factories/operations.rb @@ -0,0 +1,22 @@ +# frozen_string_literal: true +FactoryBot.define do + factory :operation, class: Hyrax::Operation do + operation_type { "Test operation" } + + trait :failing do + status { Hyrax::Operation::FAILURE } + end + + trait :pending do + status { Hyrax::Operation::PENDING } + end + + trait :successful do + status { Hyrax::Operation::SUCCESS } + end + + factory :batch_create_operation, class: Hyrax::BatchCreateOperation do + operation_type { "Batch Create" } + end + end +end diff --git a/spec/factories/permission.rb b/spec/factories/permission.rb new file mode 100644 index 00000000..3d757898 --- /dev/null +++ b/spec/factories/permission.rb @@ -0,0 +1,7 @@ +# frozen_string_literal: true +FactoryBot.define do + factory :permission, class: "Hyrax::Permission" do + agent { create(:user).user_key.to_s } + mode { :read } + end +end diff --git a/spec/factories/permission_template_accesses.rb b/spec/factories/permission_template_accesses.rb new file mode 100644 index 00000000..781ea737 --- /dev/null +++ b/spec/factories/permission_template_accesses.rb @@ -0,0 +1,17 @@ +# frozen_string_literal: true +FactoryBot.define do + factory :permission_template_access, class: Hyrax::PermissionTemplateAccess do + permission_template + trait :manage do + access { 'manage' } + end + + trait :deposit do + access { 'deposit' } + end + + trait :view do + access { 'view' } + end + end +end diff --git a/spec/factories/permission_templates.rb b/spec/factories/permission_templates.rb index e5d20226..2b70ce4a 100644 --- a/spec/factories/permission_templates.rb +++ b/spec/factories/permission_templates.rb @@ -1,24 +1,22 @@ # frozen_string_literal: true -# From https://github.com/samvera/hyrax/blob/v2.9.6/spec/factories/permission_templates.rb FactoryBot.define do factory :permission_template, class: Hyrax::PermissionTemplate do # Given that there is a one to one strong relation between permission_template and admin_set, # with a unique index on the source_id, I don't want to have duplication in source_id - sequence(:source_id) { |n| format('%010d', n) } + sequence(:source_id) { |n| format("%010d", n) } + + trait :with_immediate_release do + release_period { Hyrax::PermissionTemplate::RELEASE_TEXT_VALUE_NO_DELAY } + end + + trait :with_delayed_release do + release_period { Hyrax::PermissionTemplate::RELEASE_TEXT_VALUE_6_MONTHS } + end before(:create) do |permission_template, evaluator| if evaluator.with_admin_set source_id = permission_template.source_id - admin_set = - if source_id.present? - begin - AdminSet.find(source_id) - rescue ActiveFedora::ObjectNotFoundError - create(:admin_set, id: source_id) - end - else - create(:admin_set) - end + admin_set = SourceFinder.find_or_create_admin_set(source_id) permission_template.source_id = admin_set.id elsif evaluator.with_collection source_id = permission_template.source_id @@ -39,7 +37,7 @@ after(:create) do |permission_template, evaluator| if evaluator.with_workflows Hyrax::Workflow::WorkflowImporter.load_workflow_for(permission_template: permission_template) - Sipity::Workflow.activate!(permission_template: permission_template, workflow_id: permission_template.available_workflows.pluck(:id).first) + Sipity::Workflow.activate!(permission_template: permission_template, workflow_id: permission_template.available_workflows.pick(:id)) end if evaluator.with_active_workflow workflow = create(:workflow, active: true, permission_template: permission_template) @@ -67,22 +65,6 @@ end end - factory :permission_template_access, class: Hyrax::PermissionTemplateAccess do - permission_template - trait :manage do - access { 'manage' } - end - - trait :deposit do - access { 'deposit' } - end - - trait :view do - access { 'view' } - end - end - - # rubocop:disable Lint/ConstantDefinitionInBlock class AccessHelper def self.create_access(permission_template_id, agent_type, access, agent_ids) agent_ids.each do |agent_id| @@ -94,5 +76,36 @@ def self.create_access(permission_template_id, agent_type, access, agent_ids) end end end - # rubocop:enable Lint/ConstantDefinitionInBlock -end \ No newline at end of file + + class SourceFinder + def self.find_or_create_admin_set(source_id) + Hyrax.config.use_valkyrie? ? find_or_create_admin_set_valkyrie(source_id) : find_or_create_admin_set_active_fedora(source_id) + end + + def self.find_or_create_admin_set_active_fedora(source_id) + if source_id.present? + begin + AdminSet.find(source_id) + rescue ActiveFedora::ObjectNotFoundError + FactoryBot.create(:admin_set, id: source_id) + end + else + FactoryBot.create(:admin_set) + end + end + + def self.find_or_create_admin_set_valkyrie(source_id) + if source_id.present? + begin + Hyrax.query_service.find_by(id: source_id) + rescue Valkyrie::Persistence::ObjectNotFoundError + # Creating an Administrative set with a pre-determined id will not work for all adapters + # so we're letting the adapter assign the id + FactoryBot.valkyrie_create(:hyrax_admin_set) + end + else + FactoryBot.valkyrie_create(:hyrax_admin_set) + end + end + end +end diff --git a/spec/factories/proxy_deposit_requests.rb b/spec/factories/proxy_deposit_requests.rb new file mode 100644 index 00000000..442575f1 --- /dev/null +++ b/spec/factories/proxy_deposit_requests.rb @@ -0,0 +1,7 @@ +# frozen_string_literal: true +# Read about factories at https://github.com/thoughtbot/factory_bot + +FactoryBot.define do + factory :proxy_deposit_request do + end +end diff --git a/spec/factories/single_use_links.rb b/spec/factories/single_use_links.rb new file mode 100644 index 00000000..7e25cea0 --- /dev/null +++ b/spec/factories/single_use_links.rb @@ -0,0 +1,14 @@ +# frozen_string_literal: true +FactoryBot.define do + factory :single_use_link do + factory :show_link do + item_id { 'fs-id' } + path { '/concerns/generic_work/1234' } + end + + factory :download_link do + item_id { 'fs-id' } + path { '/downloads/1234' } + end + end +end diff --git a/spec/factories/sipity_entities.rb b/spec/factories/sipity_entities.rb new file mode 100644 index 00000000..e19284ef --- /dev/null +++ b/spec/factories/sipity_entities.rb @@ -0,0 +1,17 @@ +# frozen_string_literal: true +FactoryBot.define do + factory :sipity_entity, class: Sipity::Entity do + transient do + proxy_for { nil } + end + + proxy_for_global_id { 'gid://internal/Mock/1' } + workflow { workflow_state.workflow } + workflow_state + + after(:build) do |entity, evaluator| + entity.proxy_for_global_id = Hyrax::GlobalID(evaluator.proxy_for).to_s if + evaluator.proxy_for + end + end +end diff --git a/spec/factories/strategies/json_strategy.rb b/spec/factories/strategies/json_strategy.rb new file mode 100644 index 00000000..4a63c88a --- /dev/null +++ b/spec/factories/strategies/json_strategy.rb @@ -0,0 +1,17 @@ +# frozen_string_literal: true + +class JsonStrategy + def initialize + @strategy = FactoryBot.strategy_by_name(:create).new + end + + delegate :association, to: :@strategy + + def result(evaluation) + @strategy.result(evaluation).to_json + end + + def to_sym + :json + end +end diff --git a/spec/factories/strategies/valkyrie_resource.rb b/spec/factories/strategies/valkyrie_resource.rb new file mode 100644 index 00000000..66cf8f14 --- /dev/null +++ b/spec/factories/strategies/valkyrie_resource.rb @@ -0,0 +1,31 @@ +# frozen_string_literal: true +# @see https://github.com/thoughtbot/factory_bot/blob/master/GETTING_STARTED.md#custom-strategies +# @example +# let(:resource) { FactoryBot.valkyrie_create(:hyrax_work) } +class ValkyrieCreateStrategy + def initialize + @strategy = FactoryBot.strategy_by_name(:create).new + end + + delegate :association, to: :@strategy + + def result(evaluation) + evaluation.notify(:after_build, evaluation.object) + evaluation.notify(:before_create, evaluation.object) + + result = persister.save(resource: evaluation.object) + + evaluation.notify(:after_create, result) + result + end + + def to_sym + :valkyrie_create + end + + private + + def persister + Hyrax.persister + end +end diff --git a/spec/factories/uploaded_files.rb b/spec/factories/uploaded_files.rb new file mode 100644 index 00000000..d2ab9096 --- /dev/null +++ b/spec/factories/uploaded_files.rb @@ -0,0 +1,11 @@ +# frozen_string_literal: true +FactoryBot.define do + factory :uploaded_file, class: Hyrax::UploadedFile do + user + file { File.open(Hyrax::Engine.root.join('spec', 'fixtures', 'image.jp2').to_s) } + + trait :audio do + file { File.open(Hyrax::Engine.root.join('spec', 'fixtures', 'sample_mpeg4.mp4').to_s) } + end + end +end diff --git a/spec/factories/users.rb b/spec/factories/users.rb index f7d84aaa..435adb40 100644 --- a/spec/factories/users.rb +++ b/spec/factories/users.rb @@ -1,21 +1,63 @@ +# frozen_string_literal: true + FactoryBot.define do factory :user do - email { Faker::Internet.email } - password { Faker::Internet.password } - #display_name { Faker::Name.name } - - factory :admin_user do - after :create do |user| - admin_role = Role.find_or_create_by(name: 'admin') - admin_role.users << user + sequence(:email) { |n| "user#{n}@example.com" } + password { 'password' } + + transient do + # Allow for custom groups when a user is instantiated. + # @example create(:user, groups: 'avacado') + groups { [] } + end + + after(:build) do |user, evaluator| + evaluator.groups.each do |group| + user.roles << Role.find_or_create_by(name: group) end + # This line below is directly from hyrax, but was unable to get it to + # work with the creating admin/content-admin users. Above seems to work though. + + # User.group_service.add(user: user, groups: evaluator.groups) + end + + factory :admin do + groups { ['admin'] } end - factory :content_admin_user do - after :create do |user| - content_admin_role = Role.find_or_create_by(name: 'content-admin') - content_admin_role.users << user + factory :content_admin do + groups { ['content-admin'] } + end + + factory :user_with_mail do + after(:create) do |user| + # Create examples of single file successes and failures + (1..10).each do |number| + file = MockFile.new(number.to_s, "Single File #{number}") + User.batch_user.send_message(user, 'File 1 could not be updated. You do not have sufficient privileges to edit it.', file.to_s, false) + User.batch_user.send_message(user, 'File 1 has been saved', file.to_s, false) + end + + # Create examples of mulitple file successes and failures + files = [] + (1..50).each do |number| + files << MockFile.new(number.to_s, "File #{number}") + end + User.batch_user.send_message(user, 'These files could not be updated. You do not have sufficient privileges to edit them.', 'Batch upload permission denied', false) + User.batch_user.send_message(user, 'These files have been saved', 'Batch upload complete', false) end end end -end \ No newline at end of file + + trait :guest do + guest { true } + end +end + +class MockFile + attr_accessor :to_s, :id + def initialize(id, string) + self.id = id + self.to_s = string + end +end diff --git a/spec/factories/workflow_actions.rb b/spec/factories/workflow_actions.rb new file mode 100644 index 00000000..9446e635 --- /dev/null +++ b/spec/factories/workflow_actions.rb @@ -0,0 +1,7 @@ +# frozen_string_literal: true +FactoryBot.define do + factory :workflow_action, class: Sipity::WorkflowAction do + workflow + name { 'submit' } + end +end diff --git a/spec/factories/workflow_states.rb b/spec/factories/workflow_states.rb new file mode 100644 index 00000000..ae4d0a58 --- /dev/null +++ b/spec/factories/workflow_states.rb @@ -0,0 +1,7 @@ +# frozen_string_literal: true +FactoryBot.define do + factory :workflow_state, class: Sipity::WorkflowState do + workflow + name { 'initial' } + end +end diff --git a/spec/factories/workflows.rb b/spec/factories/workflows.rb new file mode 100644 index 00000000..24c60689 --- /dev/null +++ b/spec/factories/workflows.rb @@ -0,0 +1,7 @@ +# frozen_string_literal: true +FactoryBot.define do + factory :workflow, class: Sipity::Workflow do + sequence(:name) { |n| "generic_work-#{n}" } + permission_template + end +end diff --git a/spec/features/dashboard_spec.rb b/spec/features/dashboard_spec.rb index d2a87bb1..a18b90c9 100644 --- a/spec/features/dashboard_spec.rb +++ b/spec/features/dashboard_spec.rb @@ -1,5 +1,7 @@ require 'rails_helper' + +#bundle exec rspec spec/features/dashboard_spec.rb RSpec.describe "Dashboard page" do it 'redirects to the home page if the user authenticates but lacks admin privilages' do @@ -29,7 +31,7 @@ it 'allows authenticated admin user to visit /notifications' do - admin_user = FactoryBot.create(:admin_user) + admin_user = FactoryBot.create(:admin) sign_in_user(admin_user) @@ -53,7 +55,7 @@ it 'allows authenticated admin user to visit /importers' do - admin_user = FactoryBot.create(:admin_user) + admin_user = FactoryBot.create(:admin) sign_in_user(admin_user) @@ -77,7 +79,7 @@ it 'allows authenticated admin user to visit /exporters' do - admin_user = FactoryBot.create(:admin_user) + admin_user = FactoryBot.create(:admin) sign_in_user(admin_user) @@ -88,7 +90,7 @@ end it 'displays all admin controls when logged in as an admin user' do - admin_user = FactoryBot.create(:admin_user) + admin_user = FactoryBot.create(:admin) sign_in_user(admin_user) @@ -122,7 +124,7 @@ end it 'displays all content-admin controls when logged in as a content-admin user' do - content_admin_user = FactoryBot.create(:content_admin_user) + content_admin_user = FactoryBot.create(:content_admin) sign_in_user(content_admin_user) From 70c77634bbe647bf57f4df872a349a40f7e820e7 Mon Sep 17 00:00:00 2001 From: Alex Boyd Date: Tue, 13 Aug 2024 16:23:03 +0000 Subject: [PATCH 2/7] fix visibility_spec tests, adjust generic work factory to create gw_works, add 'authenticated' visibility option to factory --- spec/factories/generic_works.rb | 8 +++++++- spec/features/dashboard_spec.rb | 2 -- spec/features/deposit_pdf_spec.rb | 2 +- spec/features/gw_indexer_spec.rb | 14 +++++--------- spec/features/sidekiq_dashboard_spec.rb | 2 +- spec/features/sort_catalog_spec.rb | 2 +- spec/features/visibility_spec.rb | 13 +++++-------- 7 files changed, 20 insertions(+), 23 deletions(-) diff --git a/spec/factories/generic_works.rb b/spec/factories/generic_works.rb index d98f28fd..92e5aad0 100644 --- a/spec/factories/generic_works.rb +++ b/spec/factories/generic_works.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true FactoryBot.define do - factory :work, aliases: [:generic_work, :private_generic_work], class: 'GenericWork' do + factory :work, aliases: [:generic_work, :private_generic_work], class: 'GwWork' do transient do user { FactoryBot.create(:user) } # Set to true (or a hash) if you want to create an admin set @@ -36,6 +36,12 @@ visibility { Hydra::AccessControls::AccessRight::VISIBILITY_TEXT_VALUE_PUBLIC } end + factory :authenticated_generic_work, aliases: [:authenticated_work], traits: [:authenticated] + + trait :authenticated do + visibility { Hydra::AccessControls::AccessRight::VISIBILITY_TEXT_VALUE_AUTHENTICATED } + end + factory :invalid_generic_work do title { nil } end diff --git a/spec/features/dashboard_spec.rb b/spec/features/dashboard_spec.rb index a18b90c9..8a1ffb09 100644 --- a/spec/features/dashboard_spec.rb +++ b/spec/features/dashboard_spec.rb @@ -1,7 +1,5 @@ require 'rails_helper' - -#bundle exec rspec spec/features/dashboard_spec.rb RSpec.describe "Dashboard page" do it 'redirects to the home page if the user authenticates but lacks admin privilages' do diff --git a/spec/features/deposit_pdf_spec.rb b/spec/features/deposit_pdf_spec.rb index 1c1630f8..ab6d5fb5 100644 --- a/spec/features/deposit_pdf_spec.rb +++ b/spec/features/deposit_pdf_spec.rb @@ -3,7 +3,7 @@ RSpec.describe "Deposit a PDF through dashboard" do let(:admin_set) { FactoryBot.create(:admin_set) } - let(:admin_user) { FactoryBot.create(:admin_user) } + let(:admin_user) { FactoryBot.create(:admin) } let(:user) { FactoryBot.create(:user) } let(:pdf_path) { "#{Rails.root}/spec/fixtures/fixture_dummy.pdf" } let(:solr) { Blacklight.default_index.connection } diff --git a/spec/features/gw_indexer_spec.rb b/spec/features/gw_indexer_spec.rb index 1d7f0c72..bb0c57fb 100644 --- a/spec/features/gw_indexer_spec.rb +++ b/spec/features/gw_indexer_spec.rb @@ -2,12 +2,11 @@ RSpec.describe "GwIndexer" do - let(:admin_user) { FactoryBot.create(:admin_user) } + let(:admin_user) { FactoryBot.create(:admin) } let(:admin_set) { FactoryBot.create(:admin_set) } let(:solr) { Blacklight.default_index.connection } - let(:gw_work) { FactoryBot.create(:gw_work, + let(:gw_work) { FactoryBot.create(:public_work, admin_set: admin_set, - visibility: "public", user: admin_user) } let(:solr_doc) { gw_work.to_solr } @@ -58,9 +57,8 @@ context "date_created_isim field" do it 'has a date_created_isim field containing a four-digit year, when date_created is filled with four digit year' do - gw_work_good_year = FactoryBot.create(:gw_work, + gw_work_good_year = FactoryBot.create(:public_work, admin_set: admin_set, - visibility: "public", date_created: ["2001"]) expect(gw_work_good_year.to_solr['date_created_isim']).to eq(2001) @@ -69,9 +67,8 @@ it 'chooses the minimum valid four-digit year if multiple date_created values' do - gw_work_multiple_date_created_values = FactoryBot.create(:gw_work, + gw_work_multiple_date_created_values = FactoryBot.create(:public_work, admin_set: admin_set, - visibility: "public", date_created: ["august", "4", "2009", "2005", "1999"]) expect(gw_work_multiple_date_created_values.to_solr['date_created_isim']).to eq(1999) @@ -80,9 +77,8 @@ it 'has a nil value if no convertable dates' do - gw_work_no_good_values = FactoryBot.create(:gw_work, + gw_work_no_good_values = FactoryBot.create(:public_work, admin_set: admin_set, - visibility: "public", date_created: ["august", "4", "garbanzo"]) expect(gw_work_no_good_values.to_solr['date_created_isim']).to eq(nil) diff --git a/spec/features/sidekiq_dashboard_spec.rb b/spec/features/sidekiq_dashboard_spec.rb index 14770119..b43dfc8f 100644 --- a/spec/features/sidekiq_dashboard_spec.rb +++ b/spec/features/sidekiq_dashboard_spec.rb @@ -3,7 +3,7 @@ RSpec.describe "Sidekiq Dashboard Access" do it 'loads sidekiq dashboard for a logged in admin user' do - admin_user = FactoryBot.create(:admin_user) + admin_user = FactoryBot.create(:admin) visit "/users/sign_in" diff --git a/spec/features/sort_catalog_spec.rb b/spec/features/sort_catalog_spec.rb index 67e8e244..8d809c20 100644 --- a/spec/features/sort_catalog_spec.rb +++ b/spec/features/sort_catalog_spec.rb @@ -4,7 +4,7 @@ # let(:solr) { Blacklight.default_index.connection } # let(:admin_set) { FactoryBot.create(:admin_set) } -# let(:admin_user) { FactoryBot.create(:admin_user) } +# let(:admin_user) { FactoryBot.create(:admin) } # let(:earliest_work) { FactoryBot.create(:gw_work, admin_set: admin_set, # date_uploaded: "2000-01-01", # date_modified: "2010-01-01") } diff --git a/spec/features/visibility_spec.rb b/spec/features/visibility_spec.rb index df994575..5a151345 100644 --- a/spec/features/visibility_spec.rb +++ b/spec/features/visibility_spec.rb @@ -6,20 +6,17 @@ let(:admin_set) { FactoryBot.create(:admin_set) } let(:basic_user) { FactoryBot.create(:user) } - let(:admin_user) { FactoryBot.create(:admin_user) } - let(:content_admin_user) { FactoryBot.create(:content_admin_user) } + let(:admin_user) { FactoryBot.create(:admin) } + let(:content_admin_user) { FactoryBot.create(:content_admin) } - let(:public_work) { FactoryBot.create(:gw_work, + let(:public_work) { FactoryBot.create(:public_work, admin_set: admin_set, - visibility: "public", user: admin_user) } - let(:auth_only_work) { FactoryBot.create(:gw_work, + let(:auth_only_work) { FactoryBot.create(:authenticated_work, admin_set: admin_set, - visibility: "authenticated", user: admin_user) } - let(:private_work) { FactoryBot.create(:gw_work, + let(:private_work) { FactoryBot.create(:private_work, admin_set: admin_set, - visibility: "private", user: admin_user) } From 7b52b91afe5f1299f9e5c0ad100e0162bf1c9be2 Mon Sep 17 00:00:00 2001 From: Alex Boyd Date: Tue, 13 Aug 2024 16:59:55 +0000 Subject: [PATCH 3/7] rework rest of tests to work with hyrax factories --- spec/features/sign_in_spec.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/spec/features/sign_in_spec.rb b/spec/features/sign_in_spec.rb index ee1e92e7..e5372068 100644 --- a/spec/features/sign_in_spec.rb +++ b/spec/features/sign_in_spec.rb @@ -2,8 +2,8 @@ RSpec.describe 'user sign-in' do - let(:admin_user) { FactoryBot.create(:admin_user) } - let(:content_admin_user) { FactoryBot.create(:content_admin_user) } + let(:admin_user) { FactoryBot.create(:admin) } + let(:content_admin_user) { FactoryBot.create(:content_admin) } it 'has link to login page on homepage' do visit root_path From 6052c43e3c8d82abe0c01edc352c50077376b20f Mon Sep 17 00:00:00 2001 From: Alex Boyd Date: Tue, 13 Aug 2024 18:45:52 +0000 Subject: [PATCH 4/7] Update seed file --- db/seeds.rb | 166 ++++++++++++++++++---------------------------------- 1 file changed, 56 insertions(+), 110 deletions(-) diff --git a/db/seeds.rb b/db/seeds.rb index 157a0163..25adeec8 100644 --- a/db/seeds.rb +++ b/db/seeds.rb @@ -1,118 +1,64 @@ -# reworking this to only create the necessary collections/roles/users for a minimally -# instance, and will move the seeding of works into a rake task +abort("The Rails environment is running in production mode!") if Rails.env.production? -def create_admin_role - @admin_role = Role.find_or_create_by(name: 'admin') -end - -def create_default_admin_user - @admin_user = User.create!(email: ENV['DEV_ADMIN_USER_EMAIL'], password: ENV['DEV_ADMIN_USER_PASSWORD']) - admin_role = Role.find_or_create_by(name: 'admin') - admin_role.users << @admin_user -end - -def create_default_admin_set - @default_admin_set = Hyrax::AdminSetCreateService.find_or_create_default_admin_set -end - -def create_collection_type(machine_id, options) - coltype = Hyrax::CollectionType.find_by_machine_id(machine_id) - return coltype if coltype.present? - default_options = { - nestable: false, discoverable: false, sharable: false, allow_multiple_membership: false, - require_membership: false, assigns_workflow: false, assigns_visibility: false, - participants: [{ agent_type: Hyrax::CollectionTypeParticipant::GROUP_TYPE, agent_id: ::Ability.admin_group_name, access: Hyrax::CollectionTypeParticipant::MANAGE_ACCESS }, - { agent_type: Hyrax::CollectionTypeParticipant::GROUP_TYPE, agent_id: ::Ability.registered_group_name, access: Hyrax::CollectionTypeParticipant::CREATE_ACCESS }] - } - final_options = default_options.merge(options.except(:title)) - Hyrax::CollectionTypes::CreateService.create_collection_type(machine_id: machine_id, title: options[:title], options: final_options) -end - -def create_admin_set_collection_type - admin_set_collection_type = Hyrax::CollectionType.find_or_create_admin_set_type -end - -def create_user_collection_type - user_collection_type = Hyrax::CollectionType.find_or_create_default_collection_type -end - -def create_public_collection(user, type_gid, id, options) - options[:visibility] = Hydra::AccessControls::AccessRight::VISIBILITY_TEXT_VALUE_PUBLIC - create_collection(user, type_gid, id, options) -end - -def create_etds_admin_set - etds_admin_set = Hyrax::AdministrativeSet.new(title: ['ETDs']) - etds_admin_set = Hyrax.persister.save(resource: etds_admin_set) - creating_user = User.where(email: ENV['DEV_ADMIN_USER_EMAIL']).first - Hyrax::AdminSetCreateService.call!(admin_set: etds_admin_set, creating_user: creating_user) - etds_admin_set -end - -def create_collection(user, type_gid, id, options) - col = Collection.where(id: id) - return col.first if col.present? - col = Collection.new(id: id) - col.attributes = options.except(:visibility) - col.apply_depositor_metadata(user.user_key) - col.collection_type_gid = type_gid - col.visibility = options[:visibility] - col.save - Hyrax::Collections::PermissionsCreateService.create_default(collection: col, creating_user: user) - col -end - - -def create_etd(user, id, options) - work = GwEtd.where(id: id) - return work.first if work.present? - actor = Hyrax::CurationConcern.actor - attributes_for_actor = options - work = GwEtd.new(id: id) - actor_environment = Hyrax::Actors::Environment.new(work, Ability.new(user), attributes_for_actor) - actor.create(actor_environment) - work -end - -def create_public_etd(user, id, options) - options[:visibility] = Hydra::AccessControls::AccessRight::VISIBILITY_TEXT_VALUE_PUBLIC - create_etd(user, id, options) -end +ActiveFedora::Cleaner.clean! -def create_private_etd(user, id, options) - options[:visibility] = Hydra::AccessControls::AccessRight::VISIBILITY_TEXT_VALUE_PRIVATE - create_etd(user, id, options) -end +# users +admin_user = FactoryBot.create(:admin, email: "admin@example.com") +content_admin_user = FactoryBot.create(:content_admin, email: "content_admin@example.com") +non_admin_user = FactoryBot.create(:user, email: "nonadminuser@example.com") -def create_authenticated_etd(user, id, options) - options[:visibility] = Hydra::AccessControls::AccessRight::VISIBILITY_TEXT_VALUE_AUTHENTICATED - create_etd(user, id, options) -end +# admin sets and collection types +default_admin_set_id = AdminSet.find_or_create_default_admin_set_id +admin_set_collection_type = FactoryBot.create(:admin_set_collection_type) +gw_etds_admin_set = FactoryBot.create(:admin_set, title: ["ETDs"]) -def create_content_admin_role - @content_admin_role = Role.find_or_create_by(name: 'content-admin') +# collections +5.times do + FactoryBot.create(:collection, user: admin_user) end -def create_content_admin_user - @content_admin_user = User.create!(email: "content-admin@example.com", password: "password") - content_admin_role = Role.find_or_create_by(name: "content-admin") - content_admin_role.users << @content_admin_user +# works with specific configurations - will need to log in as admin to see them +FactoryBot.create(:work_with_image_files, user: admin_user, title: ["A Work with an Image File"]) +FactoryBot.create(:embargoed_work, user: admin_user, title: ["An Embargoed Work"]) +FactoryBot.create(:work_with_one_file, user: admin_user, title: ["A Work with a file"]) +FactoryBot.create(:work_with_file_and_work, user: admin_user, title: ["A Work with a file and work"]) +FactoryBot.create(:work_with_files, user: admin_user, title: ["A Work with files"]) +FactoryBot.create(:work_with_one_child, user: admin_user, title: ["A Work with one child"]) +FactoryBot.create(:work_with_two_children, user: admin_user, title: ["A Work with two children"]) + +# public etds with metadata +5.times do |i| + FactoryBot.create(:public_work, + user: admin_user, + admin_set: gw_etds_admin_set, + title: ["Test work with metadata #{i}"], + gw_affiliation: ["Department of Testing"], + resource_type: ["Research Paper"], + creator: ["Professor Goodtests"], + contributor: ["Assistant Badtests"], + description: ["A work for testing with metadata"], + abstract: ["Ey I'm abstracting here"], + keyword: ["Testing", "Examining", "Prodding"], + license: ["http://www.europeana.eu/portal/rights/rr-r.html"], + rights_notes: [], + rights_statement: ["http://rightsstatements.org/vocab/InC/1.0/"], + access_right: [], + publisher: ["A Pretty Cool Publisher"], + date_created: [rand(1900..2010).to_s], + subject: ["Automated Testing"], + language: ["English"] + ) end -# -------------- - -# -- Creating admin role and user -create_admin_role -create_default_admin_user - -# -- Creating default admin sets, admin set collection type, and user collection type -- -create_default_admin_set -create_admin_set_collection_type -create_user_collection_type - -# -- Creating the ETDs admin set -@etds_admin_set = create_etds_admin_set - -# -- Creating a content-admin role and user -create_content_admin_role -create_content_admin_user \ No newline at end of file +# content blocks +ContentBlock.find_or_create_by(name: "header_background_color").update!(value: "#FFFFFF") +ContentBlock.find_or_create_by(name: "header_text_color").update!(value: "#444444") +ContentBlock.find_or_create_by(name: "link_color").update!(value: "#28659A") +ContentBlock.find_or_create_by(name: "footer_link_color").update!(value: "#FFFFFF") +ContentBlock.find_or_create_by(name: "primary_button_background_color").update!(value: "#28659A") +ContentBlock.find_or_create_by(name: "featured_researcher").update!(value: File.open("#{Rails.root}/spec/fixtures/content_blocks/featured_researcher.html").read) +ContentBlock.find_or_create_by(name: "about_page").update!(value: File.open("#{Rails.root}/spec/fixtures/content_blocks/about_page.html").read) +ContentBlock.find_or_create_by(name: "help_page").update!(value: File.open("#{Rails.root}/spec/fixtures/content_blocks/help_page.html").read) +ContentBlock.find_or_create_by(name: "share_page").update!(value: File.open("#{Rails.root}/spec/fixtures/content_blocks/share_page.html").read) + +# bundle exec rails db:drop ; bundle exec rails db:create ; bundle exec rails db:migrate ; bundle exec rails db:seed \ No newline at end of file From d14675c47b34bd7e1e1a88eafc674939d697b32c Mon Sep 17 00:00:00 2001 From: Alex Boyd Date: Tue, 13 Aug 2024 18:46:11 +0000 Subject: [PATCH 5/7] Add hyrax fixture files --- spec/factories/file_sets.rb | 8 +- spec/fixtures/1.5mb-avatar.jpg | Bin 0 -> 1570962 bytes spec/fixtures/4-20.png | Bin 0 -> 3175158 bytes spec/fixtures/Example.ogg | Bin 0 -> 105243 bytes spec/fixtures/charter.docx | Bin 0 -> 24244 bytes spec/fixtures/countdown.avi | Bin 0 -> 723678 bytes spec/fixtures/docx_fits.xml | 21 + spec/fixtures/dublin_core_rdf_descMetadata.nt | 13 + spec/fixtures/geonames.json | 577 ++++++++++++++++++ spec/fixtures/hyrax_generic_stub.txt | 1 + spec/fixtures/icons.zip | Bin 0 -> 84625 bytes spec/fixtures/image.jp2 | Bin 0 -> 11043 bytes spec/fixtures/image.jpg | Bin 0 -> 113885 bytes spec/fixtures/image.png | Bin 0 -> 19102 bytes spec/fixtures/jp2_fits.xml | 36 ++ spec/fixtures/jpg_fits.xml | 43 ++ spec/fixtures/mp3_fits.xml | 32 + spec/fixtures/pdf_fits.xml | 43 ++ spec/fixtures/piano_note.wav | Bin 0 -> 784512 bytes spec/fixtures/png_fits.xml | 29 + spec/fixtures/sample-file.pdf | Bin 0 -> 7618 bytes spec/fixtures/sample_mpeg4.mp4 | Bin 0 -> 245779 bytes spec/fixtures/small_file.txt | 1 + spec/fixtures/spoken-text.m4a | Bin 0 -> 21425 bytes spec/fixtures/txt_fits.xml | 29 + spec/fixtures/updated-file.txt | 1 + spec/fixtures/world.png | Bin 0 -> 4218 bytes spec/fixtures/xls_fits.xml | 18 + spec/fixtures/xml_fits.xml | 37 ++ "spec/fixtures/\344\270\226\347\225\214.png" | Bin 0 -> 4218 bytes 30 files changed, 887 insertions(+), 2 deletions(-) create mode 100644 spec/fixtures/1.5mb-avatar.jpg create mode 100644 spec/fixtures/4-20.png create mode 100644 spec/fixtures/Example.ogg create mode 100644 spec/fixtures/charter.docx create mode 100644 spec/fixtures/countdown.avi create mode 100644 spec/fixtures/docx_fits.xml create mode 100644 spec/fixtures/dublin_core_rdf_descMetadata.nt create mode 100644 spec/fixtures/geonames.json create mode 100644 spec/fixtures/hyrax_generic_stub.txt create mode 100644 spec/fixtures/icons.zip create mode 100644 spec/fixtures/image.jp2 create mode 100644 spec/fixtures/image.jpg create mode 100644 spec/fixtures/image.png create mode 100644 spec/fixtures/jp2_fits.xml create mode 100644 spec/fixtures/jpg_fits.xml create mode 100644 spec/fixtures/mp3_fits.xml create mode 100644 spec/fixtures/pdf_fits.xml create mode 100644 spec/fixtures/piano_note.wav create mode 100644 spec/fixtures/png_fits.xml create mode 100644 spec/fixtures/sample-file.pdf create mode 100644 spec/fixtures/sample_mpeg4.mp4 create mode 100644 spec/fixtures/small_file.txt create mode 100644 spec/fixtures/spoken-text.m4a create mode 100644 spec/fixtures/txt_fits.xml create mode 100644 spec/fixtures/updated-file.txt create mode 100644 spec/fixtures/world.png create mode 100644 spec/fixtures/xls_fits.xml create mode 100644 spec/fixtures/xml_fits.xml create mode 100644 "spec/fixtures/\344\270\226\347\225\214.png" diff --git a/spec/factories/file_sets.rb b/spec/factories/file_sets.rb index bd991f85..3d02612c 100644 --- a/spec/factories/file_sets.rb +++ b/spec/factories/file_sets.rb @@ -22,13 +22,17 @@ end trait :image do - content { File.open(Hyrax::Engine.root + 'spec/fixtures/world.png') } + # content { File.open(Hyrax::Engine.root + 'spec/fixtures/world.png') } + # overriding to just load from scholarspace path + content { File.open(Rails.root + 'spec/fixtures/world.png') } end trait :with_original_file do after(:create) do |file_set, _evaluator| Hydra::Works::AddFileToFileSet - .call(file_set, File.open(Hyrax::Engine.root + 'spec/fixtures/world.png'), :original_file) + # overriding to just load from scholarspace path + # .call(file_set, File.open(Hyrax::Engine.root + 'spec/fixtures/world.png'), :original_file) + .call(file_set, File.open(Rails.root + 'spec/fixtures/world.png'), :original_file) end end diff --git a/spec/fixtures/1.5mb-avatar.jpg b/spec/fixtures/1.5mb-avatar.jpg new file mode 100644 index 0000000000000000000000000000000000000000..4846008cb01c5caee6c3cb6e9ad4958450cb56e7 GIT binary patch literal 1570962 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⪚@Nno<_8 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

{>orD+O#xA9{ApB8m~ft1_hS0_B< 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