diff options
author | Katarzyna Kobierska <kkobierska@gmail.com> | 2016-09-05 13:42:35 +0200 |
---|---|---|
committer | Katarzyna Kobierska <kkobierska@gmail.com> | 2016-09-13 14:40:05 +0200 |
commit | 81da7f137807a9f8c35b6c96b6034975558ddf97 (patch) | |
tree | 6c2c67a840c2dded05dc31db025beac5549a83eb | |
parent | 31c37c6c38258684fc92e0d91119c33872e39034 (diff) | |
download | gitlab-ce-81da7f137807a9f8c35b6c96b6034975558ddf97.tar.gz |
Add test checking method closed_without_source_project
-rw-r--r-- | app/controllers/projects/merge_requests_controller.rb | 6 | ||||
-rw-r--r-- | spec/models/merge_request_spec.rb | 38 |
2 files changed, 38 insertions, 6 deletions
diff --git a/app/controllers/projects/merge_requests_controller.rb b/app/controllers/projects/merge_requests_controller.rb index 479b2d1d900..aa8645ba8cc 100644 --- a/app/controllers/projects/merge_requests_controller.rb +++ b/app/controllers/projects/merge_requests_controller.rb @@ -428,17 +428,11 @@ class Projects::MergeRequestsController < Projects::ApplicationController end def validates_merge_request - # If source project was removed (Ex. mr from fork to origin) - # return invalid_mr unless @merge_request.source_project - # Show git not found page # if there is no saved commits between source & target branch if @merge_request.commits.blank? # and if target branch doesn't exist return invalid_mr unless @merge_request.target_branch_exists? - - # or if source branch doesn't exist - # return invalid_mr unless @merge_request.source_branch_exists? end end diff --git a/spec/models/merge_request_spec.rb b/spec/models/merge_request_spec.rb index 5bf3b8e609e..e223d51aa6a 100644 --- a/spec/models/merge_request_spec.rb +++ b/spec/models/merge_request_spec.rb @@ -1038,4 +1038,42 @@ describe MergeRequest, models: true do end end end + + describe "#closed_without_source_project?" do + let(:project) { create(:project) } + let(:fork_project) { create(:project, forked_from_project: project) } + let(:user) { create(:user) } + let(:destroy_project) { Projects::DestroyService.new(fork_project, user, {}) } + + context "when the merge request is closed" do + let(:closed_merge_request) do + create(:closed_merge_request, + source_project: fork_project, + target_project: project) + end + + it "returns false if the source project exist" do + expect(closed_merge_request.closed_without_source_project?).to be_falsey + end + + it "returns true if the source project does not exist" do + destroy_project.async_execute + closed_merge_request.reload + + expect(closed_merge_request.closed_without_source_project?).to be_truthy + end + end + + context "when the merge request is open" do + let(:open_merge_request) do + create(:merge_request, + source_project: fork_project, + target_project: project) + end + + it "returns false" do + expect(open_merge_request.closed_without_source_project?).to be_falsey + end + end + end end |