Sha256: a9a051e8a90339aed0027e4a5007c40dd732e3528d76babf079ef10ad29e562a

Contents?: true

Size: 1.4 KB

Versions: 5

Compression:

Stored size: 1.4 KB

Contents

require File.join(File.dirname(__FILE__), 'spec_helper')

describe ActsPermissive::Grouping do

  before :each do
    @user = FactoryGirl.create :user
    @admin = FactoryGirl.create :admin
    @widget = FactoryGirl.create :widget
    @thing = FactoryGirl.create :thing
    @admin_circle = @admin.build_circle :name => "blah", :objects => [@widget]
    @user_circle = @user.build_circle :name => "yada", :objects => [@thing], :mask => 31
  end

  describe "scopes" do

    it "should return groupings by circle" do
      ActsPermissive::Grouping.by_circle(@admin_circle).should have(1).item
      @user.can!(:read, :in => @admin_circle)
      @user.can?(:read, :in => @admin_circle).should be_true
      ActsPermissive::Grouping.by_circle(@admin_circle).should have(2).items
    end

    it "should return groupings by object" do
      ActsPermissive::Grouping.by_object(@thing).should have(1).item
      @admin.can!(:read, :in => @user_circle)
      @admin.can?(:read, :in => @user_circle).should be_true
      # Should now have a grouping for @thing
      ActsPermissive::Grouping.by_object(@thing).should have(2).items
      # but should not have a grouping for @widget
      ActsPermissive::Grouping.by_object(@widget).should have(1).items

      %w{one two three}.each do |o|
        Factory(:user).can!(:read, :in => @user_circle)
      end
      ActsPermissive::Grouping.by_object(@thing).should have(5).items
      end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
acts_permissive-0.3.4 spec/permissive_grouping_spec.rb
acts_permissive-0.3.3 spec/permissive_grouping_spec.rb
acts_permissive-0.3.2 spec/permissive_grouping_spec.rb
acts_permissive-0.3.1 spec/permissive_grouping_spec.rb
acts_permissive-0.3.0 spec/permissive_grouping_spec.rb