require 'spec_helper'

describe PersonPolicy do
  subject { PersonPolicy }

  let(:person) { create(:person) }
  let(:user) { create(:valid_user) }

  context 'given user\'s role activities' do

    permissions :create? do
      context 'without person:create' do
        before(:each) { user.roles << create(:role, activities: %w(person:show)) }

        it 'denies' do
          should_not permit(user, person)
        end

      end

      context 'with person:create' do
        before(:each) { user.roles << create(:role, activities: %w(person:create person:show)) }

        it 'allow' do
          should permit(user, person)
        end

      end
    end

    permissions :update? do

      context 'without person:update role activity' do
        before(:each) { user.roles << create(:role, activities: %w(person:show)) }

        it 'denies' do
          should_not permit(user, person)
        end

      end

      context 'with person:update' do
        before(:each) { user.roles << create(:role, activities: %w(person:update)) }
        it 'allow' do
          should permit(user, person)
        end
      end

    end
  end


end