Sha256: 6031c1f3088d26ca37a1502a1717652da007f7d6bd5c4ab3e3a99dee6a6142e7

Contents?: true

Size: 1.5 KB

Versions: 3

Compression:

Stored size: 1.5 KB

Contents

# frozen_string_literal: true

require "spec_helper"

describe Decidim::FileAuthorizationHandler::Admin::Permissions do
  subject { described_class.new(user, permission_action, context).permissions.allowed? }

  let(:dummy_component) { create :dummy_component }
  let(:organization) { dummy_component.organization }
  let(:user) { create :user, organization: }
  let(:context) do
    {
      current_component: dummy_component,
    }
  end
  let(:scope) { :admin }
  let(:auth_subject) { Decidim::FileAuthorizationHandler::CensusDatum }
  let(:action) do
    { scope:, action: action_name, subject: auth_subject }
  end
  let(:permission_action) { Decidim::PermissionAction.new(**action) }

  before do
    organization.update!(available_authorizations: ["file_authorization_handler"])
  end

  context "when action is allowed" do
    [:show, :create, :destroy].each do |action_name|
      let(:action_name) { action_name }

      context "##{action_name}" do
        it { is_expected.to be true }
      end
    end
  end

  context "when action is NOT allowed" do
    [:manage, :list, :update].each do |action_name|
      let(:action_name) { action_name }

      it_behaves_like "permission is not set"
    end
  end

  context "when scope is not admin" do
    let(:scope) { :public }
    let(:action_name) { :show }

    it_behaves_like "permission is not set"
  end

  context "when subject is not :authorize" do
    let(:action_name) { :admin }
    let(:auth_subject) { :foo }

    it_behaves_like "permission is not set"
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
decidim-file_authorization_handler-0.27.1.7 spec/permissions/decidim/file_authorization_handler/admin/permissions_spec.rb
decidim-file_authorization_handler-0.27.1.6 spec/permissions/decidim/file_authorization_handler/admin/permissions_spec.rb
decidim-file_authorization_handler-0.27.1.5 spec/permissions/decidim/file_authorization_handler/admin/permissions_spec.rb