diff options
Diffstat (limited to 'spec/requests/api/merge_requests_spec.rb')
-rw-r--r-- | spec/requests/api/merge_requests_spec.rb | 45 |
1 files changed, 37 insertions, 8 deletions
diff --git a/spec/requests/api/merge_requests_spec.rb b/spec/requests/api/merge_requests_spec.rb index a13db1bb414..038c3bc552a 100644 --- a/spec/requests/api/merge_requests_spec.rb +++ b/spec/requests/api/merge_requests_spec.rb @@ -1186,7 +1186,8 @@ RSpec.describe API::MergeRequests do expect(json_response['downvotes']).to eq(1) expect(json_response['source_project_id']).to eq(merge_request.source_project.id) expect(json_response['target_project_id']).to eq(merge_request.target_project.id) - expect(json_response['work_in_progress']).to be_falsy + expect(json_response['draft']).to be false + expect(json_response['work_in_progress']).to be false expect(json_response['merge_when_pipeline_succeeds']).to be_falsy expect(json_response['merge_status']).to eq('can_be_merged') expect(json_response['should_close_merge_request']).to be_falsy @@ -1329,29 +1330,30 @@ RSpec.describe API::MergeRequests do expect(response).to have_gitlab_http_status(:not_found) end - context 'Work in Progress' do - let!(:merge_request_wip) do + context 'Draft' do + let!(:merge_request_draft) do create(:merge_request, author: user, assignees: [user], source_project: project, target_project: project, - title: "WIP: Test", + title: "Draft: Test", created_at: base_time + 1.second ) end it "returns merge request" do - get api("/projects/#{project.id}/merge_requests/#{merge_request_wip.iid}", user) + get api("/projects/#{project.id}/merge_requests/#{merge_request_draft.iid}", user) expect(response).to have_gitlab_http_status(:ok) + expect(json_response['draft']).to eq(true) expect(json_response['work_in_progress']).to eq(true) end end context 'when a merge request has more than the changes limit' do it "returns a string indicating that more changes were made" do - allow(Commit).to receive(:diff_hard_limit_files).and_return(5) + allow(Commit).to receive(:diff_max_files).and_return(5) merge_request_overflow = create(:merge_request, :simple, author: user, @@ -2174,6 +2176,12 @@ RSpec.describe API::MergeRequests do a_hash_including('name' => user2.name) ) end + + it 'creates appropriate system notes', :sidekiq_inline do + put api("/projects/#{project.id}/merge_requests/#{merge_request.iid}", user), params: params + + expect(merge_request.notes.system.last.note).to include("assigned to #{user2.to_reference}") + end end context 'when assignee_id=user2.id' do @@ -2193,6 +2201,27 @@ RSpec.describe API::MergeRequests do end end + context 'when assignee_id=0' do + let(:params) do + { + assignee_id: 0 + } + end + + it 'clears the assignees' do + put api("/projects/#{project.id}/merge_requests/#{merge_request.iid}", user), params: params + + expect(response).to have_gitlab_http_status(:ok) + expect(json_response['assignees']).to be_empty + end + + it 'creates appropriate system notes', :sidekiq_inline do + put api("/projects/#{project.id}/merge_requests/#{merge_request.iid}", user), params: params + + expect(merge_request.notes.system.last.note).to include("unassigned #{user.to_reference}") + end + end + context 'when only assignee_ids are provided, and the list is empty' do let(:params) do { @@ -2495,8 +2524,8 @@ RSpec.describe API::MergeRequests do expect(json_response['message']).to eq('405 Method Not Allowed') end - it "returns 405 if merge_request is a work in progress" do - merge_request.update_attribute(:title, "WIP: #{merge_request.title}") + it "returns 405 if merge_request is a draft" do + merge_request.update_attribute(:title, "Draft: #{merge_request.title}") put api("/projects/#{project.id}/merge_requests/#{merge_request.iid}/merge", user) expect(response).to have_gitlab_http_status(:method_not_allowed) expect(json_response['message']).to eq('405 Method Not Allowed') |