Status code 400 is returned if body is missing on note creation.

If a note is created with a POST request via API (`/projects/:id/notes`) status
code 400 is returned instead of 404. The resource itself exists but the request
is incomplete. Specs added to check different status codes when accessing, creating
and updating notes.
This commit is contained in:
Sebastian Ziebell 2013-02-06 16:34:06 +01:00
parent b9d40d2524
commit bb24275f8d
2 changed files with 32 additions and 0 deletions

View file

@ -43,6 +43,8 @@ module Gitlab
if @note.save if @note.save
present @note, with: Entities::Note present @note, with: Entities::Note
else else
# :note is exposed as :body, but :note is set on error
error!(@note.errors[:note], 400) if @note.errors[:note].any?
not_found! not_found!
end end
end end

View file

@ -36,6 +36,11 @@ describe Gitlab::API do
response.status.should == 200 response.status.should == 200
json_response['body'].should == wall_note.note json_response['body'].should == wall_note.note
end end
it "should return a 404 error if note not found" do
get api("/projects/#{project.id}/notes/123", user)
response.status.should == 404
end
end end
describe "POST /projects/:id/notes" do describe "POST /projects/:id/notes" do
@ -44,6 +49,11 @@ describe Gitlab::API do
response.status.should == 201 response.status.should == 201
json_response['body'].should == 'hi!' json_response['body'].should == 'hi!'
end end
it "should return a 400 error if body is missing" do
post api("/projects/#{project.id}/notes", user)
response.status.should == 400
end
end end
describe "GET /projects/:id/noteable/:noteable_id/notes" do describe "GET /projects/:id/noteable/:noteable_id/notes" do
@ -54,6 +64,11 @@ describe Gitlab::API do
json_response.should be_an Array json_response.should be_an Array
json_response.first['body'].should == issue_note.note json_response.first['body'].should == issue_note.note
end end
it "should return a 404 error when issue id not found" do
get api("/projects/#{project.id}/issues/123/notes", user)
response.status.should == 404
end
end end
context "when noteable is a Snippet" do context "when noteable is a Snippet" do
@ -63,6 +78,11 @@ describe Gitlab::API do
json_response.should be_an Array json_response.should be_an Array
json_response.first['body'].should == snippet_note.note json_response.first['body'].should == snippet_note.note
end end
it "should return a 404 error when snippet id not found" do
get api("/projects/#{project.id}/snippets/42/notes", user)
response.status.should == 404
end
end end
end end
@ -73,6 +93,11 @@ describe Gitlab::API do
response.status.should == 200 response.status.should == 200
json_response['body'].should == issue_note.note json_response['body'].should == issue_note.note
end end
it "should return a 404 error if issue note not found" do
get api("/projects/#{project.id}/issues/#{issue.id}/notes/123", user)
response.status.should == 404
end
end end
context "when noteable is a Snippet" do context "when noteable is a Snippet" do
@ -81,6 +106,11 @@ describe Gitlab::API do
response.status.should == 200 response.status.should == 200
json_response['body'].should == snippet_note.note json_response['body'].should == snippet_note.note
end end
it "should return a 404 error if snippet note not found" do
get api("/projects/#{project.id}/snippets/#{snippet.id}/notes/123", user)
response.status.should == 404
end
end end
end end