From f5949fa2a79442db5709b4a9120aa366ea941939 Mon Sep 17 00:00:00 2001 From: bwatson78 Date: Mon, 8 Jan 2024 11:39:54 -0600 Subject: [PATCH] Valkyrizes spec/search_builders/hyrax/dashboard/collections_search_builder_spec.rb. --- .../collections_search_builder_spec.rb | 50 +++++++++++++++---- 1 file changed, 40 insertions(+), 10 deletions(-) diff --git a/spec/search_builders/hyrax/dashboard/collections_search_builder_spec.rb b/spec/search_builders/hyrax/dashboard/collections_search_builder_spec.rb index a430010788..26883fa192 100644 --- a/spec/search_builders/hyrax/dashboard/collections_search_builder_spec.rb +++ b/spec/search_builders/hyrax/dashboard/collections_search_builder_spec.rb @@ -9,7 +9,7 @@ let(:ability) do ::Ability.new(user) end - let(:user) { build(:user, groups: 'registered') } + let(:user) { create(:user, groups: 'registered') } let(:builder) { described_class.new(context) } describe '#models' do @@ -32,13 +32,16 @@ describe "#show_only_managed_collections_for_non_admins" do let(:solr_params) { Blacklight::Solr::Request.new } + let(:admin_text) { Hyrax.config.disable_wings ? 'Hyrax::AdministrativeSet' : 'AdminSet' } before do builder.show_only_managed_collections_for_non_admins(solr_params) end it "has filter that excludes depositor" do - expect(solr_params[:fq]).to eq ["(-_query_:\"{!raw f=depositor_ssim}#{user.user_key}\" OR -(_query_:\"{!raw f=has_model_ssim}AdminSet\" AND _query_:\"{!raw f=creator_ssim}#{user.user_key}\"))"] + expect(solr_params[:fq]).to eq( + ["(-_query_:\"{!raw f=depositor_ssim}#{user.user_key}\" OR -(_query_:\"{!raw f=has_model_ssim}#{admin_text}\" AND _query_:\"{!raw f=creator_ssim}#{user.user_key}\"))"] + ) end context "as admin" do @@ -52,37 +55,57 @@ end describe "#gated_discovery_filters" do - let(:user2) { build(:user) } - let!(:collection) { build(:collection_lw, user: user2, with_permission_template: permissions, with_solr_document: true) } + let(:user2) { create(:user) } + let!(:collection) { valkyrie_create(:hyrax_collection, user: user2, access_grants: grants) } subject { builder.gated_discovery_filters } context "user has manage access" do - let(:permissions) { { manage_users: [user] } } + let(:grants) do + [{ agent_type: Hyrax::PermissionTemplateAccess::USER, + agent_id: user.user_key, + access: Hyrax::PermissionTemplateAccess::MANAGE }] + end it { is_expected.to include ["{!terms f=id}#{collection.id}"] } end context "user has deposit access" do - let(:permissions) { { deposit_users: [user] } } + let(:grants) do + [{ agent_type: Hyrax::PermissionTemplateAccess::USER, + agent_id: user.user_key, + access: Hyrax::PermissionTemplateAccess::DEPOSIT }] + end it { is_expected.to include ["{!terms f=id}#{collection.id}"] } end context "user has view access" do - let(:permissions) { { view_users: [user] } } + let(:grants) do + [{ agent_type: Hyrax::PermissionTemplateAccess::USER, + agent_id: user.user_key, + access: Hyrax::PermissionTemplateAccess::VIEW }] + end it { is_expected.not_to include ["{!terms f=id}#{collection.id}"] } end context "does not include registered group for read access" do - let(:permissions) { { view_groups: ['registered'] } } + let(:grants) do + [{ agent_type: Hyrax::PermissionTemplateAccess::GROUP, + agent_id: 'registered', + access: Hyrax::PermissionTemplateAccess::VIEW }] + end it { is_expected.not_to include ["{!terms f=id}#{collection.id}"] } end context "does not include public group for read access" do - let(:permissions) { { view_groups: ['public'] } } + let(:grants) do + [{ agent_type: Hyrax::PermissionTemplateAccess::GROUP, + agent_id: 'public', + access: Hyrax::PermissionTemplateAccess::VIEW }] + end let(:expected_discovery_filters) do # all filters except no additional ids added for deposit collections @@ -98,7 +121,14 @@ context "user has deposit access and registered has deposit access" do # make sure that having registered deposit access, which isn't included, doesn't # remove the user specific deposit access - let(:permissions) { { deposit_users: [user], view_groups: ['registered'] } } + let(:grants) do + [{ agent_type: Hyrax::PermissionTemplateAccess::USER, + agent_id: user.user_key, + access: Hyrax::PermissionTemplateAccess::DEPOSIT }, + { agent_type: Hyrax::PermissionTemplateAccess::GROUP, + agent_id: 'registered', + access: Hyrax::PermissionTemplateAccess::VIEW }] + end it { is_expected.to include ["{!terms f=id}#{collection.id}"] } end