Handle save error in API playlists/update

This commit is contained in:
Thibault Jouan 2015-05-04 02:14:37 +00:00
parent 5f993e4bd3
commit 223a6e7a85
2 changed files with 39 additions and 11 deletions

View File

@ -19,8 +19,11 @@ module API
end
def update
@playlist.update playlist_params
head :no_content
if @playlist.update playlist_params
head :no_content
else
render json: @playlist.errors, status: :unprocessable_entity
end
end
def destroy

View File

@ -56,15 +56,40 @@ describe 'API playlists' do
end
end
it 'updates a playlist' do
playlist = create :playlist
put api_playlist_path(playlist), format: :json, playlist: {
name: 'new name'
}
get api_playlist_path playlist, format: :json
expect(json[:playlist]).to include(
name: 'new name'
)
describe 'playlist update' do
let(:name) { 'new name' }
let(:playlist) { create :playlist }
before do
put api_playlist_path(playlist), format: :json, playlist: {
name: name
}
end
it 'responds with no content status' do
expect(response).to have_http_status 204
end
it 'updates the playlist' do
get api_playlist_path playlist, format: :json
expect(json[:playlist]).to include(
name: 'new name'
)
end
context 'when playlist is invalid' do
let(:name) { '' }
it 'responds with unprocessable entity status' do
expect(response).to have_http_status 422
end
it 'returns errors' do
expect(json 422).to match(
name: [an_instance_of(String)]
)
end
end
end
it 'destroys a playlist' do