Commit e653b984 authored by Dmytro Zaporozhets's avatar Dmytro Zaporozhets

Merge branch 'sh-add-issuable-nil-specs' into 'master'

Add specs for updating issuable labels in API

See merge request gitlab-org/gitlab!33464
parents ee8fdb2d 2748114e
......@@ -834,6 +834,12 @@ describe API::Issues do
end
end
describe 'PUT /projects/:id/issues/:issue_id' do
it_behaves_like 'issuable update endpoint' do
let(:entity) { issue }
end
end
describe 'DELETE /projects/:id/issues/:issue_iid' do
it 'rejects a non member from deleting an issue' do
delete api("/projects/#{project.id}/issues/#{issue.iid}", non_member)
......
......@@ -1654,6 +1654,12 @@ describe API::MergeRequests do
end
end
describe 'PUT /projects/:id/merge_reuests/:merge_request_iid' do
it_behaves_like 'issuable update endpoint' do
let(:entity) { merge_request }
end
end
describe "POST /projects/:id/merge_requests/:merge_request_iid/context_commits" do
let(:merge_request_iid) { merge_request.iid }
let(:authenticated_user) { user }
......
# frozen_string_literal: true
RSpec.shared_examples 'issuable update endpoint' do
let(:area) { entity.class.name.underscore.pluralize }
describe 'PUT /projects/:id/issues/:issue_id' do
let(:url) { "/projects/#{project.id}/#{area}/#{entity.iid}" }
it 'clears labels when labels param is nil' do
put api(url, user), params: { labels: 'label1' }
expect(response).to have_gitlab_http_status(:ok)
expect(json_response['labels']).to contain_exactly('label1')
put api(url, user), params: { labels: nil }
expect(response).to have_gitlab_http_status(:ok)
json_response = Gitlab::Json.parse(response.body)
expect(json_response['labels']).to be_empty
end
it 'updates the issuable with labels param as array' do
stub_const("Gitlab::QueryLimiting::Transaction::THRESHOLD", 110)
params = { labels: ['label1', 'label2', 'foo, bar', '&,?'] }
put api(url, user), params: params
expect(response).to have_gitlab_http_status(:ok)
expect(json_response['labels']).to include 'label1'
expect(json_response['labels']).to include 'label2'
expect(json_response['labels']).to include 'foo'
expect(json_response['labels']).to include 'bar'
expect(json_response['labels']).to include '&'
expect(json_response['labels']).to include '?'
end
end
end
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment