From b005f90e95bb17d95c3c777037edd1cecbd98a80 Mon Sep 17 00:00:00 2001 From: Mojca Lorber Date: Wed, 24 Jul 2019 16:23:52 +0200 Subject: [PATCH] Add tests for permission can_read_repository --- app/permissions/repository.rb | 6 +--- .../repositroy_permissions_spec.rb | 29 +++++++++++++++++++ 2 files changed, 30 insertions(+), 5 deletions(-) diff --git a/app/permissions/repository.rb b/app/permissions/repository.rb index 072f39f8c..bb68fcab8 100644 --- a/app/permissions/repository.rb +++ b/app/permissions/repository.rb @@ -3,11 +3,7 @@ Canaid::Permissions.register_for(Repository) do # repository: read/export can :read_repository do |user, repository| - if user.teams.include?(repository.team) || repository.team_repositories.where(team: user.teams).any? - true - else - false - end + user.teams.include?(repository.team) || repository.team_repositories.where(team: user.teams).any? end # repository: update, delete diff --git a/spec/permissions/repositroy_permissions_spec.rb b/spec/permissions/repositroy_permissions_spec.rb index 225e1c6ff..1d7af8e66 100644 --- a/spec/permissions/repositroy_permissions_spec.rb +++ b/spec/permissions/repositroy_permissions_spec.rb @@ -63,4 +63,33 @@ describe 'RepositoryPermissions' do end end end + + describe 'read_repository' do + context 'when team\'s repositroy' do + it 'should be true' do + create :user_team, :normal_user, user: user, team: team + + expect(can_read_repository?(user, repository)).to be_truthy + end + end + + context 'when shared repository' do + let(:new_team) { create :team } + let(:new_repository) { create :repository, team: new_team } + + it 'should be true when have sharred repo with read' do + create :user_team, :normal_user, user: user, team: team + create :team_repository, :read, team: team, repository: new_repository + + expect(can_read_repository?(user, new_repository)).to be_truthy + end + + it 'should be false when do not have sharred repo' do + create :user_team, :normal_user, user: user, team: team + create :team_repository, :read, team: team + + expect(can_read_repository?(user, new_repository)).to be_falsey + end + end + end end