summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKatarzyna Kobierska <kkobierska@gmail.com>2016-09-05 13:42:35 +0200
committerKatarzyna Kobierska <kkobierska@gmail.com>2016-09-13 14:40:05 +0200
commit81da7f137807a9f8c35b6c96b6034975558ddf97 (patch)
tree6c2c67a840c2dded05dc31db025beac5549a83eb
parent31c37c6c38258684fc92e0d91119c33872e39034 (diff)
downloadgitlab-ce-81da7f137807a9f8c35b6c96b6034975558ddf97.tar.gz
Add test checking method closed_without_source_project
-rw-r--r--app/controllers/projects/merge_requests_controller.rb6
-rw-r--r--spec/models/merge_request_spec.rb38
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