las barcas pueden o no estar abordadas
This commit is contained in:
parent
b0ccf4f688
commit
f44abbc7c5
3 changed files with 24 additions and 6 deletions
|
@ -26,7 +26,7 @@ class BarcasController < ApplicationController
|
|||
#
|
||||
# @param :id [Integer] El ID de la barca
|
||||
# @return Hash { id: @int, created_at: @date, updated_at: @date,
|
||||
# nombre: @string, descripcion: @text }
|
||||
# nombre: @string, descripcion: @text, abordada: @bool }
|
||||
def show
|
||||
@barca = Barca.find(params[:id])
|
||||
return if @barca
|
||||
|
@ -40,7 +40,7 @@ class BarcasController < ApplicationController
|
|||
#
|
||||
# @param barca [Hash] { barca: { nombre: @string, descripcion: @text } }
|
||||
# @return Hash { id: @int, created_at: @date, updated_at: @date,
|
||||
# nombre: @string, descripcion: @text }
|
||||
# nombre: @string, descripcion: @text, abordada: @bool }
|
||||
def create
|
||||
@barca = Barca.new(barca_params)
|
||||
# La pirata se une a la barca que crea
|
||||
|
@ -62,7 +62,7 @@ class BarcasController < ApplicationController
|
|||
#
|
||||
# @param barca [Hash] { barca: { nombre: @string, descripcion: @text } }
|
||||
# @return hash { id: @int, created_at: @date, updated_at: @date,
|
||||
# nombre: @string, descripcion: @text }
|
||||
# nombre: @string, descripcion: @text, abordada: @bool }
|
||||
def update
|
||||
# Las piratas solo pueden modificar sus propias barcas
|
||||
@barca = current_pirata.barcas.find(params[:id])
|
||||
|
@ -81,7 +81,7 @@ class BarcasController < ApplicationController
|
|||
# Elimina una barca y su tripulación
|
||||
#
|
||||
# @return hash { id: @int, created_at: @date, updated_at: @date,
|
||||
# nombre: @string, descripcion: @text }
|
||||
# nombre: @string, descripcion: @text, abordada: @bool }
|
||||
def destroy
|
||||
@barca = current_pirata.barcas.find(params[:id])
|
||||
|
||||
|
|
|
@ -1,3 +1,5 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
json.call(barca, :id, :created_at, :nombre, :descripcion)
|
||||
|
||||
json.abordada @current_pirata.barcas.pluck(:id).include?(barca.id)
|
||||
|
|
|
@ -53,8 +53,13 @@ class BarcasControllerTest < ActionDispatch::IntegrationTest
|
|||
barca = create :barca, piratas: [@pirata]
|
||||
nombre = SecureRandom.hex
|
||||
|
||||
put barca_url(barca), as: :json, headers: @auth,
|
||||
params: { barca: { id: barca.id, nombre: nombre, descripcion: nombre } }
|
||||
put barca_url(barca),
|
||||
as: :json, headers: @auth,
|
||||
params: {
|
||||
barca: {
|
||||
id: barca.id, nombre: nombre, descripcion: nombre
|
||||
}
|
||||
}
|
||||
|
||||
assert_equal 204, @response.status
|
||||
end
|
||||
|
@ -87,4 +92,15 @@ class BarcasControllerTest < ActionDispatch::IntegrationTest
|
|||
assert_equal 204, @response.status
|
||||
assert barca.reload.piratas.include?(@pirata)
|
||||
end
|
||||
|
||||
test 'hay barcas abordadas' do
|
||||
create :barca, piratas: [@pirata]
|
||||
create :barca
|
||||
|
||||
get barcas_todas_url, as: :json, headers: @auth
|
||||
|
||||
body = JSON.parse @response.body
|
||||
assert body['barcas'].first['abordada']
|
||||
assert_not body['barcas'].last['abordada']
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in a new issue