Sha256: f2def966fe4aafa72bddcd52a791ead0dde49e820414e3a4528cfb7b0d3cd528

Contents?: true

Size: 1.19 KB

Versions: 21

Compression:

Stored size: 1.19 KB

Contents

require 'rspec'
require 'cantango'
require 'hashie'
require 'spec_helper'
def permission_fixture
  group = 'bloggers'
  rules = Hashie::Mash.new({"can"=>{"read"=>["Article", "Comment"]}, "cannot"=>{"write"=>["Article", "Post"]}})
  CanTango::PermissionEngine::Parser::Permissions.new.parse(group, rules) do |permission|
    return permission
  end
end

describe CanTango::PermissionEngine::Compiler do
  let (:permission) { permission_fixture }

  let(:compiler) do 
    compiler = CanTango::PermissionEngine::Compiler.new
    compiler.compile! permission
  end

  it 'should raise if permission contains not-valid actions' do
    expect {compiler.can_eval}.not_to raise_error
    # Replacing static_rules with rule that has not-valid action:
    permission.static_rules.can = Hashie::Mash.new({'edit' => ["Article"]})
    expect {compiler.can_eval}.to raise_error
  end

  it 'should produce cancan statements' do
    compiler.can_eval do |statements|
      statements.should == %|can(:read, Article)\ncan(:read, Comment)|
    end
  end

  it 'should produce cancan statements' do
    compiler.cannot_eval do |statements|
      statements.should == %|cannot(:write, Article)\ncannot(:write, Post)|
    end
  end

end

Version data entries

21 entries across 21 versions & 1 rubygems

Version Path
cantango-0.9.4.7 spec/cantango/permission_engine/compiler_spec.rb
cantango-0.9.4.6 spec/cantango/permission_engine/compiler_spec.rb
cantango-0.9.4.5 spec/cantango/permission_engine/compiler_spec.rb
cantango-0.9.4.3 spec/cantango/permission_engine/compiler_spec.rb
cantango-0.9.4.2 spec/cantango/permission_engine/compiler_spec.rb
cantango-0.9.4.1 spec/cantango/permission_engine/compiler_spec.rb
cantango-0.9.4 spec/cantango/permission_engine/compiler_spec.rb
cantango-0.9.3.2 spec/cantango/permission_engine/compiler_spec.rb
cantango-0.8.9.5 spec/cantango/permission_engine/compiler_spec.rb
cantango-0.8.9.4 spec/cantango/permission_engine/compiler_spec.rb
cantango-0.8.9.3 spec/cantango/permission_engine/compiler_spec.rb
cantango-0.8.9.2 spec/cantango/permission_engine/compiler_spec.rb
cantango-0.8.9.1 spec/cantango/permission_engine/compiler_spec.rb
cantango-0.8.9 spec/cantango/permission_engine/compiler_spec.rb
cantango-0.8.8.1 spec/cantango/permission_engine/compiler_spec.rb
cantango-0.8.8 spec/cantango/permission_engine/compiler_spec.rb
cantango-0.8.7 spec/cantango/permission_engine/compiler_spec.rb
cantango-0.8.6.2 spec/cantango/permission_engine/compiler_spec.rb
cantango-0.8.6.1 spec/cantango/permission_engine/compiler_spec.rb
cantango-0.8.6 spec/cantango/permission_engine/compiler_spec.rb