diff --git a/spec/services/smart_annotations/permission_eval_spec.rb b/spec/services/smart_annotations/permission_eval_spec.rb index 9436f440a..a336ed25b 100644 --- a/spec/services/smart_annotations/permission_eval_spec.rb +++ b/spec/services/smart_annotations/permission_eval_spec.rb @@ -5,8 +5,10 @@ describe SmartAnnotations::PermissionEval do let(:subject) { described_class } let(:user) { create :user } let(:team) { create :team } - let(:user_team) { create :user_team, user: user, team: team, role: 2 } - let(:project) { create :project, name: 'my project' } + let(:another_team) { create :team } + let!(:user_team) { create :user_team, user: user, team: team, role: :admin } + let(:project) { create :project, name: 'my project', team: team } + let!(:user_project) { create :user_project, :owner, project: project, user: user } let(:experiment) do create :experiment, name: 'my experiment', project: project, @@ -19,29 +21,69 @@ describe SmartAnnotations::PermissionEval do describe '#validate_prj_permissions/2' do it 'returns a boolean' do - value = subject.send(:validate_prj_permissions, user, team, project) + value = subject.__send__(:validate_prj_permissions, user, team, project) expect(value).to be_in([true, false]) end + + it 'returns false on wrong team' do + value = subject.__send__(:validate_prj_permissions, user, another_team, project) + expect(value).to be false + end + + it 'returns true on the same team' do + value = subject.__send__(:validate_prj_permissions, user, team, project) + expect(value).to be true + end end describe '#validate_exp_permissions/2' do it 'returns a boolean' do - value = subject.send(:validate_exp_permissions, user, team, experiment) + value = subject.__send__(:validate_exp_permissions, user, team, experiment) expect(value).to be_in([true, false]) end + + it 'returns false on wrong team' do + value = subject.__send__(:validate_exp_permissions, user, another_team, experiment) + expect(value).to be false + end + + it 'returns true on the same team' do + value = subject.__send__(:validate_exp_permissions, user, team, experiment) + expect(value).to be true + end end describe '#validate_tsk_permissions/2' do it 'returns a boolean' do - value = subject.send(:validate_tsk_permissions, user, team, task) + value = subject.__send__(:validate_tsk_permissions, user, team, task) expect(value).to be_in([true, false]) end + + it 'returns false on wrong team' do + value = subject.__send__(:validate_tsk_permissions, user, another_team, task) + expect(value).to be false + end + + it 'returns true on the same team' do + value = subject.__send__(:validate_tsk_permissions, user, team, task) + expect(value).to be true + end end describe '#validate_rep_item_permissions/2' do it 'returns a boolean' do - value = subject.send(:validate_rep_item_permissions, user, team, repository_item) + value = subject.__send__(:validate_rep_item_permissions, user, team, repository_item) expect(value).to be_in([true, false]) end + + it 'returns false on wrong team' do + value = subject.__send__(:validate_rep_item_permissions, user, another_team, repository_item) + expect(value).to be false + end + + it 'returns true on the same team' do + value = subject.__send__(:validate_rep_item_permissions, user, team, repository_item) + expect(value).to be true + end end end