Sha256: 01b81400989e1da784c6b1da2c501ebae8db069d70e8ca386f394b3a456f24a7
Contents?: true
Size: 1.55 KB
Versions: 2
Compression:
Stored size: 1.55 KB
Contents
# frozen_string_literal: true require "spec_helper" RSpec.describe PostPolicy do let(:user) { double } let(:own_post) { double(user: user) } let(:other_post) { double(user: double) } subject { described_class } permissions :update?, :show? do it "is successful when all permissions match" do should permit(user, own_post) end it "fails when any permissions do not match" do expect do should permit(user, other_post) end.to raise_error(RSpec::Expectations::ExpectationNotMetError) end it "uses the default description if not overridden" do expect(permit(user, own_post).description).to eq("permit #{user.inspect} and #{own_post.inspect}") end context "when the matcher description is overridden" do after do Pundit::RSpec::Matchers.description = nil end it "sets a custom matcher description with a Proc" do allow(user).to receive(:role).and_return("default_role") allow(own_post).to receive(:id).and_return(1) Pundit::RSpec::Matchers.description = lambda { |user, record| "permit user with role #{user.role} to access record with ID #{record.id}" } description = permit(user, own_post).description expect(description).to eq("permit user with role default_role to access record with ID 1") end it "sets a custom matcher description with a string" do Pundit::RSpec::Matchers.description = "permit user" expect(permit(user, own_post).description).to eq("permit user") end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
pundit-2.5.0 | spec/policies/post_policy_spec.rb |
pundit-2.4.0 | spec/policies/post_policy_spec.rb |