Sha256: 4c0b51496cb6f3cfff6ef1885c4085c0b2cca7240c7991422fc21c467ec914a7

Contents?: true

Size: 963 Bytes

Versions: 1

Compression:

Stored size: 963 Bytes

Contents

require 'rspec'
require 'cantango'
require 'fixtures/models/items'

describe CanTango::PermissionEngine::Permission do
  before(:all) do
    @permission = CanTango::PermissionEngine::Permission.new :bloggers
  end

  subject do 
    reads = ['Article' , 'Comment']
    writes = ['Article' , 'Post']
    @permission.static_rules.can = {:read => reads}
    @permission.static_rules.cannot = {:write => writes}
    @permission
  end

  its(:name) { should == :bloggers }

  context 'static rules' do
    subject { @permission.static_rules} 
    it { should include('can') }
    its(:can) { should include('read')}
    its(:cannot) { should include('write')}
  end

  context 'compiled rules' do
    subject { @permission.compiled_rules} 
    it { should include('can')}
    it { should include('cannot')}
    its(:can) { should == %|can(:read, Article)\ncan(:read, Comment)|}
    its(:cannot) { should == %|cannot(:write, Article)\ncannot(:write, Post)|}
  end

end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
cantango-0.8.0 spec/cantango/permission_engine/permission_spec.rb