spec/models/user_spec.rb in private_person-0.1.0 vs spec/models/user_spec.rb in private_person-0.2.4
- old
+ new
@@ -1,15 +1,13 @@
require 'spec_helper'
describe User do
describe PrivatePerson::Permitted do
- it { should have_many(:permissions) }
+ it { should have_many(:permissions_as_permissor) }
it { should have_many(:permissibles) }
- end
- describe PrivatePerson::Permitted do
context 'Instance Methods' do
describe '#relationship_to' do
include_context 'users support'
context 'when following and follower' do
@@ -30,10 +28,14 @@
end
context 'when follower_of_follower' do
subject { follower_of_follower_user.relationship_to(followed_user) }
it { should eq 'follower_of_followers' }
end
+ context 'when stranger' do
+ subject { stranger.relationship_to(followed_user) }
+ it { should eq 'public' }
+ end
end
describe '#permissions_by' do
include_context 'permissions support'
context 'when following' do
subject { following_user.permissions_by(followed_user) }
@@ -92,9 +94,45 @@
it { should be false }
end
context 'otherwise' do
subject { following_user.is_permitted?(followed_user, forbidden_page) }
it { should be false }
+ end
+ end
+ end
+ end
+
+ describe PrivatePerson::Permissor do
+ include_context 'users support'
+ include_context 'permissor support'
+ context 'Instance Methods' do
+
+ describe '#permits' do
+ context 'when overriding public' do
+ before do
+ public_user.permit! 'none', public_user_page
+ end
+ subject { stranger.is_permitted? public_user, public_user_page }
+ it { should be false }
+ end
+ context 'when overriding none' do
+ before do
+ private_user.permit! 'public', private_user_page
+ end
+ subject { stranger.is_permitted? private_user, private_user_page }
+ it { should be true }
+ end
+ end
+ describe '#wildcard_permits' do
+ # the support files already ran the heavy lifting,
+ # so if they worked we're golden
+ context 'with none' do
+ subject { stranger.is_permitted? private_user, private_user_page }
+ it { should be false }
+ end
+ context 'with public' do
+ subject { stranger.is_permitted? public_user, public_user_page }
+ it { should be true }
end
end
end
end
end