Add tests for permission can_read_repository

This commit is contained in:
Mojca Lorber 2019-07-24 16:23:52 +02:00 committed by Urban Rotnik
parent 7e9be932f3
commit b005f90e95
2 changed files with 30 additions and 5 deletions

View file

@ -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

View file

@ -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