diff options
author | Robert Speicher <robert@gitlab.com> | 2016-03-29 18:49:08 +0000 |
---|---|---|
committer | Robert Speicher <robert@gitlab.com> | 2016-03-29 18:49:08 +0000 |
commit | a9f5df384ef8d1f21a3659b785302f87e822299d (patch) | |
tree | 217d126218449e3cf425abcac5f2c3b3d0efad35 | |
parent | b1f924c165525f24848df3a7a4119b74fefc6e21 (diff) | |
parent | 762d6ab4fd315d9d692d9df814cef206b39b9fdd (diff) | |
download | gitlab-ce-a9f5df384ef8d1f21a3659b785302f87e822299d.tar.gz |
Merge branch 'fix_wip_in_mr_api' into 'master'
Ensuring Merge Request API returns boolean values for work_in_progress
Fixes #14692.
See merge request !3432
-rw-r--r-- | app/models/merge_request.rb | 2 | ||||
-rw-r--r-- | spec/models/merge_request_spec.rb | 8 | ||||
-rw-r--r-- | spec/requests/api/merge_requests_spec.rb | 11 |
3 files changed, 16 insertions, 5 deletions
diff --git a/app/models/merge_request.rb b/app/models/merge_request.rb index ef48207f956..7c61a7ae18c 100644 --- a/app/models/merge_request.rb +++ b/app/models/merge_request.rb @@ -279,7 +279,7 @@ class MergeRequest < ActiveRecord::Base WIP_REGEX = /\A\s*(\[WIP\]\s*|WIP:\s*|WIP\s+)+\s*/i.freeze def work_in_progress? - title =~ WIP_REGEX + !!(title =~ WIP_REGEX) end def wipless_title diff --git a/spec/models/merge_request_spec.rb b/spec/models/merge_request_spec.rb index bd0a4ebe337..6f5d912fe5d 100644 --- a/spec/models/merge_request_spec.rb +++ b/spec/models/merge_request_spec.rb @@ -224,22 +224,22 @@ describe MergeRequest, models: true do ['WIP ', 'WIP:', 'WIP: ', '[WIP]', '[WIP] ', ' [WIP] WIP [WIP] WIP: WIP '].each do |wip_prefix| it "detects the '#{wip_prefix}' prefix" do subject.title = "#{wip_prefix}#{subject.title}" - expect(subject).to be_work_in_progress + expect(subject.work_in_progress?).to eq true end 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 + expect(subject.work_in_progress?).to eq false end it "doesn't detect WIP for words containing with WIP" do subject.title = "WupWipwap #{subject.title}" - expect(subject).not_to be_work_in_progress + expect(subject.work_in_progress?).to eq false end it "doesn't detect WIP by default" do - expect(subject).not_to be_work_in_progress + expect(subject.work_in_progress?).to eq false end end diff --git a/spec/requests/api/merge_requests_spec.rb b/spec/requests/api/merge_requests_spec.rb index c9175a4d6eb..25fa30b2f21 100644 --- a/spec/requests/api/merge_requests_spec.rb +++ b/spec/requests/api/merge_requests_spec.rb @@ -118,6 +118,7 @@ describe API::API, api: true do expect(response.status).to eq(200) expect(json_response['title']).to eq(merge_request.title) expect(json_response['iid']).to eq(merge_request.iid) + expect(json_response['work_in_progress']).to eq(false) expect(json_response['merge_status']).to eq('can_be_merged') end @@ -133,6 +134,16 @@ describe API::API, api: true do get api("/projects/#{project.id}/merge_requests/999", user) expect(response.status).to eq(404) end + + context 'Work in Progress' do + let!(:merge_request_wip) { create(:merge_request, author: user, assignee: user, source_project: project, target_project: project, title: "WIP: Test", created_at: base_time + 1.second) } + + it "should return merge_request" do + get api("/projects/#{project.id}/merge_requests/#{merge_request_wip.id}", user) + expect(response.status).to eq(200) + expect(json_response['work_in_progress']).to eq(true) + end + end end describe 'GET /projects/:id/merge_requests/:merge_request_id/commits' do |