mirror of
https://github.com/fspc/BikeShed-1.git
synced 2025-02-28 16:53:23 -05:00
Fixed error response codes, finished bikes#create spec
This commit is contained in:
parent
e0041662d3
commit
9fa0017d36
@ -5,19 +5,17 @@ class Api::V1::BikesController < Api::V1::BaseController
|
|||||||
before_filter :check_bike_permission
|
before_filter :check_bike_permission
|
||||||
|
|
||||||
def create
|
def create
|
||||||
puts params.inspect
|
|
||||||
|
|
||||||
if bike = params[:bike]
|
if bike = params[:bike]
|
||||||
|
|
||||||
b = Bike.new(bike)
|
b = Bike.new(bike)
|
||||||
if !b.save
|
if !b.save
|
||||||
render json: { errors: b.errors }, status: 409 and return
|
render json: { errors: b.errors }, status: 422 and return
|
||||||
else
|
else
|
||||||
render json: { bike: b.as_json }, status: 200 and return
|
render json: { bike: b.as_json }, status: 200 and return
|
||||||
end
|
end
|
||||||
|
|
||||||
else
|
else
|
||||||
render json: { errors: ["Expected bike in submitted data" ]}, status: 400 and return
|
render json: { errors: ["Expected bike in submitted data" ]}, status: 422 and return
|
||||||
end
|
end
|
||||||
render json: {}, status: 200 and return
|
render json: {}, status: 200 and return
|
||||||
end
|
end
|
||||||
|
@ -29,7 +29,7 @@ describe Api::V1::BikesController do
|
|||||||
context "with no bike in json data" do
|
context "with no bike in json data" do
|
||||||
it "returns 400" do
|
it "returns 400" do
|
||||||
post :create
|
post :create
|
||||||
expect(@response.code.to_i).to eql 400
|
expect(@response.code.to_i).to eql 422
|
||||||
end
|
end
|
||||||
|
|
||||||
it "returns an error message" do
|
it "returns an error message" do
|
||||||
@ -66,6 +66,26 @@ describe Api::V1::BikesController do
|
|||||||
expect(json.to_s).to include(@submit_json[:bike][:serial_number])
|
expect(json.to_s).to include(@submit_json[:bike][:serial_number])
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
context "with invalid bike in json data" do
|
||||||
|
before(:each) do
|
||||||
|
@submit_json = { bike: {
|
||||||
|
serial_number: "XKCD",
|
||||||
|
}}
|
||||||
|
end
|
||||||
|
|
||||||
|
it "returns 422" do
|
||||||
|
post :create, @submit_json
|
||||||
|
expect(@response.code.to_i).to eql 422
|
||||||
|
end
|
||||||
|
|
||||||
|
it "returns the fields with errors" do
|
||||||
|
post :create, @submit_json
|
||||||
|
json = JSON.parse(@response.body)
|
||||||
|
expect(json).to have_key("errors")
|
||||||
|
expect(json.to_s).to include("can't be blank")
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
Loading…
x
Reference in New Issue
Block a user