Sha256: feae3a1dda0e2fce50641f682ae34f9f6b7e8c9973d5bacba1ba1774b92b4511

Contents?: true

Size: 1.44 KB

Versions: 8

Compression:

Stored size: 1.44 KB

Contents

require 'spec_helper'
require 'cancan/matchers'

def all_actions
  [:index, :show, :create, :update, :destroy, :manage]
end

describe "User abilities" do

  subject(:ability)  { Ability.new(user) }
  let(:subject_user) { create :user }

  context "when site manager, I" do
    let(:user)  { create :user, admin: true}
    all_actions.each do |do_action|
      it{ should be_able_to(do_action, subject_user) }
    end
  end

  context "when myself, I" do
    let(:user) { create :user }
    let(:subject_user) { user }
    all_actions.each do |do_action|
      it{ should be_able_to(do_action, subject_user) }
    end
  end

  context "when another user, I" do
    let(:user)  { create :user }
    let(:can)    { [] }
    let(:cannot) { [:show, :create, :update, :index, :destroy, :manage] }
    it{ can.each do |do_action|
      should be_able_to(do_action, subject_user)
    end}
    it{ cannot.each do |do_action|
      should_not be_able_to(do_action, subject_user)
    end}
  end

  context "when anonymous user, I" do
    let(:user)  { nil }
    let(:can)    { [] }
    let(:cannot) { [:show, :create, :update, :index, :destroy, :manage] }
    it{ can.each do |do_action|
      should be_able_to(do_action, subject_user)
    end}
    it{ cannot.each do |do_action|
      should_not be_able_to(do_action, subject_user)
    end}

    it "and signup enabled" do
      User.stub(:can_signup?).and_return(true)
      should be_able_to(:create, User)
    end

  end

end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
fat_free_crm-0.13.6 spec/models/users/abilities/user_ability_spec.rb
fat_free_crm-0.13.5 spec/models/users/abilities/user_ability_spec.rb
fat_free_crm-0.13.4 spec/models/users/abilities/user_ability_spec.rb
fat_free_crm-0.13.3 spec/models/users/abilities/user_ability_spec.rb
fat_free_crm-0.13.2 spec/models/users/abilities/user_ability_spec.rb
fat_free_crm-0.12.3 spec/models/users/abilities/user_ability_spec.rb
fat_free_crm-0.12.2 spec/models/users/abilities/user_ability_spec.rb
fat_free_crm-0.13.1 spec/models/users/abilities/user_ability_spec.rb