Sha256: c43f2b63f821492a04a0815cfd196f040a127f46746629b11cb17bc47d8e1112

Contents?: true

Size: 1.25 KB

Versions: 7

Compression:

Stored size: 1.25 KB

Contents

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

def config_folder
  File.dirname(__FILE__)+ "/../fixtures/config/"
end

CanTango.configure do |config|
  config.clear!
  config.engines.all :off
  config.engine(:user_ac).set :on
  config.ability.mode = :cache
  config.engine(:user_ac) do |engine|
    engine.mode = :cache
  end
  config.debug!
end

class Thingy
  attr_reader :name, :id

  def initialize name
    @name = name
    @id = rand(1000)
  end
end

describe CanTango::UserAcEngine do
  context 'mode :cache' do
    before do
      @thingy = Thingy.new 'a'
      @user = User.new 'kris'
      @permission = Permission.new @user, :edit, @thingy
      @user.permissions << @permission
    end

    describe 'Permission' do
      subject { @permission }
        its(:thing_id) { should be_a(Integer) }
    end

    let (:ability) do
      CanTango::CachedAbility.new @user
    end
    subject { CanTango::UserAcEngine.new ability }

    describe '#execute!' do
      before do
        subject.execute!
      end

      it 'engine should have rules' do
        subject.send(:rules).should_not be_empty
      end

      it 'engine cache should have rules' do
        subject.cache.empty?.should be_false
      end
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
cantango-0.9.4.7 spec/cantango/user_ac_engine_cached_spec.rb
cantango-0.9.4.6 spec/cantango/user_ac_engine_cached_spec.rb
cantango-0.9.4.5 spec/cantango/user_ac_engine_cached_spec.rb
cantango-0.9.4.3 spec/cantango/user_ac_engine_cached_spec.rb
cantango-0.9.4.2 spec/cantango/user_ac_engine_cached_spec.rb
cantango-0.9.4.1 spec/cantango/user_ac_engine_cached_spec.rb
cantango-0.9.4 spec/cantango/user_ac_engine_cached_spec.rb