Sha256: 074002deb6db4440eb3c0d987eb7d331fc9489906d3100d156a0773ba41e32e4

Contents?: true

Size: 706 Bytes

Versions: 3

Compression:

Stored size: 706 Bytes

Contents

describe ArticlePolicy do
  subject { described_class.new(user, article) }

  let(:article) { FactoryBot.create(:article) }

  context "being a visitor" do
    let(:user) { FactoryBot.create(:user) }

    it { is_expected.to(permit_action(:index)) }
    it { is_expected.to(permit_action(:show)) }
    it { is_expected.to(forbid_actions(%i[create update delete])) }
  end

  context "being a staff" do
    let(:user) { FactoryBot.create(:user, roles_mask: 3) }

    it { is_expected.to(permit_actions(%i[create update])) }
  end

  context "being an administrator" do
    let(:user) { FactoryBot.create(:user, roles_mask: 4) }

    it { is_expected.to(permit_actions(%i[create update delete])) }
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
souls-0.24.1 apps/api/spec/policies/article_policy_spec.rb
souls-0.22.8 hoy/spec/policies/article_policy_spec.rb
souls-0.22.7 hoy/spec/policies/article_policy_spec.rb