Respond with validation errors in commit status API
If validation errors are present, include validation errors in the commit status API payload, instead of depending on state machine errors caused by invalid record.
This commit is contained in:
parent
53f4f84995
commit
9ce8aa31f2
|
@ -78,6 +78,8 @@ module API
|
|||
description: params[:description]
|
||||
)
|
||||
|
||||
render_validation_error!(status) if status.invalid?
|
||||
|
||||
begin
|
||||
case params[:state]
|
||||
when 'pending'
|
||||
|
|
|
@ -172,7 +172,7 @@ describe API::CommitStatuses, api: true do
|
|||
end
|
||||
end
|
||||
|
||||
context 'invalid status' do
|
||||
context 'when status is invalid' do
|
||||
before { post api(post_url, developer), state: 'invalid' }
|
||||
|
||||
it 'does not create commit status' do
|
||||
|
@ -180,7 +180,7 @@ describe API::CommitStatuses, api: true do
|
|||
end
|
||||
end
|
||||
|
||||
context 'request without state' do
|
||||
context 'when request without a state made' do
|
||||
before { post api(post_url, developer) }
|
||||
|
||||
it 'does not create commit status' do
|
||||
|
@ -188,7 +188,7 @@ describe API::CommitStatuses, api: true do
|
|||
end
|
||||
end
|
||||
|
||||
context 'invalid commit' do
|
||||
context 'when commit SHA is invalid' do
|
||||
let(:sha) { 'invalid_sha' }
|
||||
before { post api(post_url, developer), state: 'running' }
|
||||
|
||||
|
@ -196,6 +196,19 @@ describe API::CommitStatuses, api: true do
|
|||
expect(response).to have_http_status(404)
|
||||
end
|
||||
end
|
||||
|
||||
context 'when target URL is an invalid address' do
|
||||
before do
|
||||
post api(post_url, developer), state: 'pending',
|
||||
target_url: 'invalid url'
|
||||
end
|
||||
|
||||
it 'responds with bad request status and validation errors' do
|
||||
expect(response).to have_http_status(400)
|
||||
expect(json_response['message']['target_url'])
|
||||
.to include 'must be a valid URL'
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
context 'reporter user' do
|
||||
|
|
Loading…
Reference in New Issue