Sha256: 2dfbe8f361607fb5600be625824ae3cfe0e59ae9dc556d9ba0c0e20e2bba5faf

Contents?: true

Size: 870 Bytes

Versions: 5

Compression:

Stored size: 870 Bytes

Contents

shared_examples_for "Common Read API" do
  specify { user.has_role?(:user).should be_true }
  specify { user.is_role?(:user).should be_true }
        
  specify { user.has_roles?(:user).should be_true }
  specify { user.has_roles?(:user, :admin).should be_false }
        
  specify { user.has_any_role?(:user, :admin).should be_true }
  specify { user.has_any_role?(:admin).should be_false }       

  subject { user }
    its(:role_list)     { should include(:user) }

  it 'should cache the role list' do
    # use mock expectation : don't expect strategy to be called!
    user.role_list.should include(:user)
    user.expects(:strategy).never

    # calling role_list multiple times should NOT invalidate the cache :)
    expect { user.role_list }.to_not change{user.instance_variable_get "@role_list"}      
    user.role_list.should include(:user)      
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
troles-0.6.1 spec/troles/common/api/read_api_spec.rb
troles-0.6.0 spec/troles/common/api/read_api_spec.rb
troles-0.5.2 spec/troles/common/api/read_api_spec.rb
troles-0.5.1 spec/troles/common/api/read_api_spec.rb
troles-0.5.0 spec/troles/common/api/read_api_spec.rb