Sha256: 5e847937a9d7da45386d36a448651f42954ea64d4d0170eb626711e296d1e22f

Contents?: true

Size: 1.98 KB

Versions: 7

Compression:

Stored size: 1.98 KB

Contents

# frozen_string_literal: true

require "spec_helper"

# users of this test should declare the `subject` variable.
shared_examples "with endorsable permissions can perform actions related to endorsable" do
  let(:action_subject) { :endorsement }
  let(:resource) { create :dummy_resource, component: }
  before do
    context[:current_settings] = double(current_settings)
    context[:resource] = resource
  end

  describe "endorsing" do
    describe "when endorsing" do
      let(:action_name) { :create }

      context "when endorsements are disabled" do
        let(:current_settings) do
          {
            endorsements_enabled: false,
            endorsements_blocked: false
          }
        end

        it { is_expected.to eq false }
      end

      context "when endorsements are blocked" do
        let(:current_settings) do
          {
            endorsements_enabled: true,
            endorsements_blocked: true
          }
        end

        it { is_expected.to eq false }
      end

      context "when user is authorized" do
        let(:current_settings) do
          {
            endorsements_enabled: true,
            endorsements_blocked: false
          }
        end

        it { is_expected.to eq true }
      end
    end
  end

  describe "unendorsing" do
    let(:action_name) { :unendorse }

    context "when endorsements are disabled" do
      let(:current_settings) do
        {
          endorsements_enabled: false,
          endorsements_blocked: false
        }
      end

      it { is_expected.to eq false }
    end

    context "when endorsements are blocked" do
      let(:current_settings) do
        {
          endorsements_enabled: true,
          endorsements_blocked: true
        }
      end

      it { is_expected.to eq false }
    end

    context "when user is authorized" do
      let(:current_settings) do
        {
          endorsements_enabled: true,
          endorsements_blocked: false
        }
      end

      it { is_expected.to eq true }
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
decidim-core-0.29.2 lib/decidim/core/test/shared_examples/with_endorsable_permissions_examples.rb
decidim-core-0.29.1 lib/decidim/core/test/shared_examples/with_endorsable_permissions_examples.rb
decidim-core-0.29.0 lib/decidim/core/test/shared_examples/with_endorsable_permissions_examples.rb
decidim-core-0.29.0.rc4 lib/decidim/core/test/shared_examples/with_endorsable_permissions_examples.rb
decidim-core-0.29.0.rc3 lib/decidim/core/test/shared_examples/with_endorsable_permissions_examples.rb
decidim-core-0.29.0.rc2 lib/decidim/core/test/shared_examples/with_endorsable_permissions_examples.rb
decidim-core-0.29.0.rc1 lib/decidim/core/test/shared_examples/with_endorsable_permissions_examples.rb