summaryrefslogtreecommitdiff
path: root/spec/models/merge_request_spec.rb
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 /spec/models/merge_request_spec.rb
parent31c37c6c38258684fc92e0d91119c33872e39034 (diff)
downloadgitlab-ce-81da7f137807a9f8c35b6c96b6034975558ddf97.tar.gz
Add test checking method closed_without_source_project
Diffstat (limited to 'spec/models/merge_request_spec.rb')
-rw-r--r--spec/models/merge_request_spec.rb38
1 files changed, 38 insertions, 0 deletions
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