Sha256: 62405942242ee36bfdd0d50d3d2fa03e6bf0d13c6d767117f8cb0b4d94c7fcc1
Contents?: true
Size: 1.2 KB
Versions: 2
Compression:
Stored size: 1.2 KB
Contents
module Accession RSpec.describe Principal do let(:correct_perm) { 'a:*' } let(:other_perm) { 'b:*' } matcher(:permit) { match { |a| a.permits?('a:b:c') } } RSpec::Matchers.define_negated_matcher :deny, :permit subject do klass = Class.new do include Principal attr_reader :permissions def initialize(permissions) @permissions = permissions end end klass.new(permissions) end context 'single permit' do let(:permissions) { [correct_perm] } it { is_expected.to permit } end context 'multiple permit' do let(:permissions) { [correct_perm, correct_perm] } it { is_expected.to permit } end context 'single deny' do let(:permissions) { [other_perm] } it { is_expected.to deny } end context 'multiple deny' do let(:permissions) { [other_perm, other_perm] } it { is_expected.to deny } end context 'deny then permit' do let(:permissions) { [other_perm, correct_perm] } it { is_expected.to permit } end context 'permit then deny' do let(:permissions) { [correct_perm, other_perm] } it { is_expected.to permit } end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
accession-1.0.0 | spec/lib/accession/principal_spec.rb |
accession-0.0.2 | spec/lib/accession/principal_spec.rb |