Sha256: 8c98e10e0b970209287158e689cb33c4d312b8a5c20c82ad02b0183a463708e4

Contents?: true

Size: 1.94 KB

Versions: 5

Compression:

Stored size: 1.94 KB

Contents

require 'spec_helper'
use_roles_strategy :admin_flag

class User 
  include Mongoid::Document  
  include Roles::Mongoid 
  
  strategy :admin_flag, :default
  valid_roles_are :admin, :guest  

  field :name, :type => String  
end

describe "Roles for Mongoid" do
  after :each do
    Database.teardown
  end

  before :each do
    @user = User.create(:name => 'Kristian')
    @user.roles = :guest
    @user.save     

    @admin_user = User.create(:name => 'Admin user')
    @admin_user.roles = :admin    
    @admin_user.save
  end

  describe "Admin flag strategy " do

    describe '#in_role' do
      it "should return first user maching role" do
        User.in_role(:guest).first.name.should == 'Kristian'
        User.in_role(:admin).first.name.should == 'Admin user'
      end
    end

    describe 'roles API' do
      it "should have admin user role to :admin" do
        @admin_user.role.should == :admin
        @admin_user.roles.should == [:admin]      
        @admin_user.admin?.should be_true
         
        @admin_user.class.valid_roles.should == [:admin, :guest]
        
        @admin_user.has_role?(:guest).should be_false
        
        @admin_user.has_role?(:admin).should be_true
        @admin_user.is?(:admin).should be_true
        @admin_user.has_roles?(:admin).should be_true
        @admin_user.has?(:admin).should be_true      
      end

      it "should have user role to :guest" do
        @user.roles.should == [:guest]
        @user.admin?.should be_false
      
        @user.has_role?(:guest).should be_true    
        @user.has_role?(:admin).should be_false
        @user.is?(:admin).should be_false
        
        @user.has_roles?(:guest).should be_true
        @user.has?(:admin).should be_false
      end
      
      it "should set user role to :admin using =" do
        @user.roles = :admin      
        @user.role.should == :admin           
        @user.has_role?(:admin).should be_true      
      end    
    end
  end
end

Version data entries

5 entries across 5 versions & 2 rubygems

Version Path
roles_mongoid-0.2.4 spec/roles_mongoid/admin_flag_spec.rb
roles_for_mongoid-0.2.3 spec/roles_mongoid/admin_flag_spec.rb
roles_for_mongoid-0.2.2 spec/roles_mongoid/admin_flag_spec.rb
roles_for_mongoid-0.2.1 spec/roles_mongoid/admin_flag_spec.rb
roles_for_mongoid-0.2.0 spec/roles_mongoid/admin_flag_spec.rb