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
|
# @param :id [Integer] El ID de la barca
|
||||||
# @return Hash { id: @int, created_at: @date, updated_at: @date,
|
# @return Hash { id: @int, created_at: @date, updated_at: @date,
|
||||||
# nombre: @string, descripcion: @text }
|
# nombre: @string, descripcion: @text, abordada: @bool }
|
||||||
def show
|
def show
|
||||||
@barca = Barca.find(params[:id])
|
@barca = Barca.find(params[:id])
|
||||||
return if @barca
|
return if @barca
|
||||||
|
@ -40,7 +40,7 @@ class BarcasController < ApplicationController
|
||||||
#
|
#
|
||||||
# @param barca [Hash] { barca: { nombre: @string, descripcion: @text } }
|
# @param barca [Hash] { barca: { nombre: @string, descripcion: @text } }
|
||||||
# @return Hash { id: @int, created_at: @date, updated_at: @date,
|
# @return Hash { id: @int, created_at: @date, updated_at: @date,
|
||||||
# nombre: @string, descripcion: @text }
|
# nombre: @string, descripcion: @text, abordada: @bool }
|
||||||
def create
|
def create
|
||||||
@barca = Barca.new(barca_params)
|
@barca = Barca.new(barca_params)
|
||||||
# La pirata se une a la barca que crea
|
# La pirata se une a la barca que crea
|
||||||
|
@ -62,7 +62,7 @@ class BarcasController < ApplicationController
|
||||||
#
|
#
|
||||||
# @param barca [Hash] { barca: { nombre: @string, descripcion: @text } }
|
# @param barca [Hash] { barca: { nombre: @string, descripcion: @text } }
|
||||||
# @return hash { id: @int, created_at: @date, updated_at: @date,
|
# @return hash { id: @int, created_at: @date, updated_at: @date,
|
||||||
# nombre: @string, descripcion: @text }
|
# nombre: @string, descripcion: @text, abordada: @bool }
|
||||||
def update
|
def update
|
||||||
# Las piratas solo pueden modificar sus propias barcas
|
# Las piratas solo pueden modificar sus propias barcas
|
||||||
@barca = current_pirata.barcas.find(params[:id])
|
@barca = current_pirata.barcas.find(params[:id])
|
||||||
|
@ -81,7 +81,7 @@ class BarcasController < ApplicationController
|
||||||
# Elimina una barca y su tripulación
|
# Elimina una barca y su tripulación
|
||||||
#
|
#
|
||||||
# @return hash { id: @int, created_at: @date, updated_at: @date,
|
# @return hash { id: @int, created_at: @date, updated_at: @date,
|
||||||
# nombre: @string, descripcion: @text }
|
# nombre: @string, descripcion: @text, abordada: @bool }
|
||||||
def destroy
|
def destroy
|
||||||
@barca = current_pirata.barcas.find(params[:id])
|
@barca = current_pirata.barcas.find(params[:id])
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,5 @@
|
||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
|
|
||||||
json.call(barca, :id, :created_at, :nombre, :descripcion)
|
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]
|
barca = create :barca, piratas: [@pirata]
|
||||||
nombre = SecureRandom.hex
|
nombre = SecureRandom.hex
|
||||||
|
|
||||||
put barca_url(barca), as: :json, headers: @auth,
|
put barca_url(barca),
|
||||||
params: { barca: { id: barca.id, nombre: nombre, descripcion: nombre } }
|
as: :json, headers: @auth,
|
||||||
|
params: {
|
||||||
|
barca: {
|
||||||
|
id: barca.id, nombre: nombre, descripcion: nombre
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
assert_equal 204, @response.status
|
assert_equal 204, @response.status
|
||||||
end
|
end
|
||||||
|
@ -87,4 +92,15 @@ class BarcasControllerTest < ActionDispatch::IntegrationTest
|
||||||
assert_equal 204, @response.status
|
assert_equal 204, @response.status
|
||||||
assert barca.reload.piratas.include?(@pirata)
|
assert barca.reload.piratas.include?(@pirata)
|
||||||
end
|
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
|
end
|
||||||
|
|
Loading…
Reference in a new issue