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