summaryrefslogtreecommitdiff
path: root/spec
diff options
context:
space:
mode:
authorKatarzyna Kobierska <kkobierska@gmail.com>2016-09-08 13:25:16 +0200
committerKatarzyna Kobierska <kkobierska@gmail.com>2016-09-13 14:40:05 +0200
commit34c146a17dbb66322bc57b0755c979c05e7d4340 (patch)
tree94c876b4047f7cdff99a2a1f176891c7c39cd52e /spec
parent554baec9e8d2d077afff5502fdfa4ab78036499c (diff)
downloadgitlab-ce-34c146a17dbb66322bc57b0755c979c05e7d4340.tar.gz
Add #can_reopen? and tests
Diffstat (limited to 'spec')
-rw-r--r--spec/models/merge_request_spec.rb64
1 files changed, 45 insertions, 19 deletions
diff --git a/spec/models/merge_request_spec.rb b/spec/models/merge_request_spec.rb
index 4780d9fb3fe..d58156ba045 100644
--- a/spec/models/merge_request_spec.rb
+++ b/spec/models/merge_request_spec.rb
@@ -1039,24 +1039,24 @@ describe MergeRequest, models: true do
end
end
- describe "#closed_without_source_project?" do
+ 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
+ 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
+ it 'returns false if the source project exists' do
expect(closed_merge_request.closed_without_source_project?).to be_falsey
end
- it "returns true if the source project does not exist" do
+ it 'returns true if the source project does not exist' do
destroy_project.async_execute
closed_merge_request.reload
@@ -1064,29 +1064,55 @@ describe MergeRequest, models: true do
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
+ context 'when the merge request is open' do
+ it 'returns false' do
+ expect(subject.closed_without_source_project?).to be_falsey
end
end
end
describe '#can_reopen?' do
- it "returns true" do
- subject.close
- binding.pry
+ context 'when the merge request is closed' do
+ it 'returns true' do
+ subject.close
- expect(subject.can_reopen?).to be_truthy
+ expect(subject.can_reopen?).to be_truthy
+ end
+
+ context 'forked project' do
+ let(:project) { create(:project) }
+ let(:fork_project) { create(:project, forked_from_project: project) }
+ let(:user) { create(:user) }
+ let(:merge_request) do
+ create(:closed_merge_request,
+ source_project: fork_project,
+ target_project: project)
+ end
+
+ it 'returns false if unforked' do
+ Projects::UnlinkForkService.new(fork_project, user).execute
+
+ expect(merge_request.reload.can_reopen?).to be_falsey
+ end
+
+ it 'returns false if the source project is deleted' do
+ Projects::DestroyService.new(fork_project, user, {}).async_execute
+
+ expect(merge_request.reload.can_reopen?).to be_falsey
+ end
+
+ it 'returnes false if the merge request is merged' do
+ merge_request.update_attributes(state: 'merged')
+
+ expect(merge_request.reload.can_reopen?).to be_falsey
+ end
+ end
end
- it "returns false" do
- expect(subject.can_reopen?).to be_falsey
+ context 'when merge request is opened' do
+ it 'returns false' do
+ expect(subject.can_reopen?).to be_falsey
+ end
end
end
end