diff options
author | Sean McGivern <sean@gitlab.com> | 2017-04-03 18:47:14 +0000 |
---|---|---|
committer | DJ Mountney <david@twkie.net> | 2017-04-05 21:06:02 -0700 |
commit | 29d8b4ee72c28ade5006f3f1343402782c38b231 (patch) | |
tree | 04c21670190a3b210f01aaf04a4e0ab5ea542c02 /spec/services/merge_requests/build_service_spec.rb | |
parent | 2e8aa209f013d567bb3956a3e4201d3b2d63fe10 (diff) | |
download | gitlab-ce-29d8b4ee72c28ade5006f3f1343402782c38b231.tar.gz |
Merge branch '29364-private-projects-mr-fix'
Don’t show source project name when user does not have access
See merge request !2081
Diffstat (limited to 'spec/services/merge_requests/build_service_spec.rb')
-rw-r--r-- | spec/services/merge_requests/build_service_spec.rb | 42 |
1 files changed, 41 insertions, 1 deletions
diff --git a/spec/services/merge_requests/build_service_spec.rb b/spec/services/merge_requests/build_service_spec.rb index c8bd4d4601a..be9f9ea2dec 100644 --- a/spec/services/merge_requests/build_service_spec.rb +++ b/spec/services/merge_requests/build_service_spec.rb @@ -4,6 +4,8 @@ describe MergeRequests::BuildService, services: true do include RepoHelpers let(:project) { create(:project, :repository) } + let(:source_project) { nil } + let(:target_project) { nil } let(:user) { create(:user) } let(:issue_confidential) { false } let(:issue) { create(:issue, project: project, title: 'A bug', confidential: issue_confidential) } @@ -20,7 +22,9 @@ describe MergeRequests::BuildService, services: true do MergeRequests::BuildService.new(project, user, description: description, source_branch: source_branch, - target_branch: target_branch) + target_branch: target_branch, + source_project: source_project, + target_project: target_project) end before do @@ -256,5 +260,41 @@ describe MergeRequests::BuildService, services: true do ) end end + + context 'target_project is set and accessible by current_user' do + let(:target_project) { create(:project, :public, :repository)} + let(:commits) { Commit.decorate([commit_1], project) } + + it 'sets target project correctly' do + expect(merge_request.target_project).to eq(target_project) + end + end + + context 'target_project is set but not accessible by current_user' do + let(:target_project) { create(:project, :private, :repository)} + let(:commits) { Commit.decorate([commit_1], project) } + + it 'sets target project correctly' do + expect(merge_request.target_project).to eq(project) + end + end + + context 'source_project is set and accessible by current_user' do + let(:source_project) { create(:project, :public, :repository)} + let(:commits) { Commit.decorate([commit_1], project) } + + it 'sets target project correctly' do + expect(merge_request.source_project).to eq(source_project) + end + end + + context 'source_project is set but not accessible by current_user' do + let(:source_project) { create(:project, :private, :repository)} + let(:commits) { Commit.decorate([commit_1], project) } + + it 'sets target project correctly' do + expect(merge_request.source_project).to eq(project) + end + end end end |