No se pueden eliminar barcas si tienen consensos
This commit is contained in:
parent
a7dd195c20
commit
2bbe338065
3 changed files with 13 additions and 2 deletions
|
@ -78,14 +78,14 @@ class BarcasController < ApplicationController
|
|||
|
||||
# DELETE /barcas/:id
|
||||
#
|
||||
# Elimina una barca y su tripulación
|
||||
# Elimina una barca y su tripulación, solo si no tiene consensos
|
||||
#
|
||||
# @return hash { id: @int, created_at: @date, updated_at: @date,
|
||||
# nombre: @string, descripcion: @text, abordada: @bool }
|
||||
def destroy
|
||||
@barca = current_pirata.barcas.find(params[:id])
|
||||
|
||||
if @barca.destroy
|
||||
if @barca.consensos.count.zero? && @barca.destroy
|
||||
notify(subject: :destroy, urgency: :high)
|
||||
render status: :no_content
|
||||
else
|
||||
|
|
|
@ -3,3 +3,4 @@
|
|||
json.call(barca, :id, :created_at, :nombre, :descripcion)
|
||||
|
||||
json.abordada @current_pirata.barcas.pluck(:id).include?(barca.id)
|
||||
json.eliminable barca.consensos.count.zero?
|
||||
|
|
|
@ -75,6 +75,16 @@ class BarcasControllerTest < ActionDispatch::IntegrationTest
|
|||
end
|
||||
end
|
||||
|
||||
test 'no se pueden eliminar si ya tienen consensos' do
|
||||
barca = create :barca, piratas: [@pirata]
|
||||
barca.consensos << create(:consenso)
|
||||
|
||||
delete barca_url(barca), as: :json, headers: @auth
|
||||
|
||||
assert_equal 422, @response.status
|
||||
assert barca.reload
|
||||
end
|
||||
|
||||
test 'se pueden abandonar' do
|
||||
barca = create :barca, piratas: [@pirata]
|
||||
|
||||
|
|
Loading…
Reference in a new issue