mirror of
https://github.com/scinote-eln/scinote-web.git
synced 2024-09-20 14:45:56 +08:00
Add tests for permission can_read_repository
This commit is contained in:
parent
7e9be932f3
commit
b005f90e95
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in a new issue