Sha256: b7b2427c17ed0123feb116d0e68ea337996a4095b2d4d72632a2c60a84cfc495

Contents?: true

Size: 1.98 KB

Versions: 8

Compression:

Stored size: 1.98 KB

Contents

# frozen_string_literal: true

require "spec_helper"

# users of this test should delare 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

8 entries across 8 versions & 1 rubygems

Version Path
decidim-core-0.28.5 lib/decidim/core/test/shared_examples/with_endorsable_permissions_examples.rb
decidim-core-0.28.4 lib/decidim/core/test/shared_examples/with_endorsable_permissions_examples.rb
decidim-core-0.28.3 lib/decidim/core/test/shared_examples/with_endorsable_permissions_examples.rb
decidim-core-0.28.2 lib/decidim/core/test/shared_examples/with_endorsable_permissions_examples.rb
decidim-core-0.28.1 lib/decidim/core/test/shared_examples/with_endorsable_permissions_examples.rb
decidim-core-0.28.0 lib/decidim/core/test/shared_examples/with_endorsable_permissions_examples.rb
decidim-core-0.28.0.rc5 lib/decidim/core/test/shared_examples/with_endorsable_permissions_examples.rb
decidim-core-0.28.0.rc4 lib/decidim/core/test/shared_examples/with_endorsable_permissions_examples.rb