Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/spec
diff options
context:
space:
mode:
authorDouwe Maan <douwe@gitlab.com>2015-04-30 16:43:32 +0300
committerDouwe Maan <douwe@gitlab.com>2015-04-30 16:46:36 +0300
commit7e0eb486ed150c0447bf245bdebe250f1771f7dc (patch)
tree43480d468a2ad7ed624d67523fbed40f6b5a3e6a /spec
parent39a55bdf1a1613f362bcd7da444b291210454160 (diff)
Don't allow a merge request to be merged when its title starts with "WIP".
Diffstat (limited to 'spec')
-rw-r--r--spec/models/merge_request_spec.rb26
-rw-r--r--spec/requests/api/merge_requests_spec.rb7
2 files changed, 33 insertions, 0 deletions
diff --git a/spec/models/merge_request_spec.rb b/spec/models/merge_request_spec.rb
index 3fcd063efe8..97b8abc49dd 100644
--- a/spec/models/merge_request_spec.rb
+++ b/spec/models/merge_request_spec.rb
@@ -115,6 +115,32 @@ describe MergeRequest do
end
end
+ describe "#work_in_progress?" do
+ it "detects the 'WIP ' prefix" do
+ subject.title = "WIP #{subject.title}"
+ expect(subject).to be_work_in_progress
+ end
+
+ it "detects the 'WIP: ' prefix" do
+ subject.title = "WIP: #{subject.title}"
+ expect(subject).to be_work_in_progress
+ end
+
+ it "detects the '[WIP] ' prefix" do
+ subject.title = "[WIP] #{subject.title}"
+ expect(subject).to be_work_in_progress
+ end
+
+ it "doesn't detect WIP for words starting with WIP" do
+ subject.title = "Wipwap #{subject.title}"
+ expect(subject).not_to be_work_in_progress
+ end
+
+ it "doesn't detect WIP by default" do
+ expect(subject).not_to be_work_in_progress
+ end
+ end
+
it_behaves_like 'an editable mentionable' do
subject { create(:merge_request, source_project: project, target_project: project) }
diff --git a/spec/requests/api/merge_requests_spec.rb b/spec/requests/api/merge_requests_spec.rb
index 9e252441a4f..5fca831f9be 100644
--- a/spec/requests/api/merge_requests_spec.rb
+++ b/spec/requests/api/merge_requests_spec.rb
@@ -312,6 +312,13 @@ describe API::API, api: true do
expect(json_response['message']).to eq('405 Method Not Allowed')
end
+ it "should return 405 if merge_request is a work in progress" do
+ merge_request.update_attribute(:title, "WIP: #{merge_request.title}")
+ put api("/projects/#{project.id}/merge_request/#{merge_request.id}/merge", user)
+ expect(response.status).to eq(405)
+ expect(json_response['message']).to eq('405 Method Not Allowed')
+ end
+
it "should return 401 if user has no permissions to merge" do
user2 = create(:user)
project.team << [user2, :reporter]