Use let more effectively
This commit is contained in:
parent
fa9f47903b
commit
945ab4981a
|
|
@ -3,45 +3,47 @@
|
|||
require 'rails_helper'
|
||||
|
||||
RSpec.describe StagesController, type: :controller do
|
||||
before do
|
||||
@stage = create(:playoff_stage)
|
||||
let(:stage) do
|
||||
create(:playoff_stage)
|
||||
end
|
||||
|
||||
describe 'GET #show' do
|
||||
it 'returns a success response' do
|
||||
get :show, params: { id: @stage.to_param }
|
||||
get :show, params: { id: stage.to_param }
|
||||
expect(response).to be_successful
|
||||
end
|
||||
|
||||
it 'should return the correct stage' do
|
||||
get :show, params: { id: @stage.to_param }
|
||||
get :show, params: { id: stage.to_param }
|
||||
body = deserialize_response response
|
||||
expect(Stage.find_by(id: body[:id])).to eq(@stage)
|
||||
expect(body[:level]).to eq(@stage.level)
|
||||
expect(body[:state]).to eq(@stage.state)
|
||||
expect(Stage.find_by(id: body[:id])).to eq(stage)
|
||||
expect(body[:level]).to eq(stage.level)
|
||||
expect(body[:state]).to eq(stage.state)
|
||||
end
|
||||
end
|
||||
|
||||
describe 'PUT #update' do
|
||||
let(:finished) do
|
||||
{ state: 'finished' }
|
||||
end
|
||||
|
||||
context 'group_stage with matches that are done' do
|
||||
before do
|
||||
@running_group_stage = create(:group_stage, match_factory: :finished_group_match)
|
||||
let(:running_group_stage) do
|
||||
create(:group_stage, match_factory: :finished_group_match)
|
||||
end
|
||||
|
||||
FINISHED = { state: 'finished' }.freeze
|
||||
|
||||
it 'doesn\'t have any other stages besides it before update' do
|
||||
expect(@running_group_stage.tournament.stages.size).to eq(1)
|
||||
expect(running_group_stage.tournament.stages.size).to eq(1)
|
||||
end
|
||||
|
||||
context 'as owner' do
|
||||
before(:each) do
|
||||
apply_authentication_headers_for @running_group_stage.owner
|
||||
apply_authentication_headers_for running_group_stage.owner
|
||||
end
|
||||
|
||||
before do
|
||||
put :update, params: { id: @running_group_stage.to_param }.merge(FINISHED)
|
||||
@running_group_stage.reload
|
||||
put :update, params: { id: running_group_stage.to_param }.merge(finished)
|
||||
running_group_stage.reload
|
||||
end
|
||||
|
||||
it 'succeeds' do
|
||||
|
|
@ -49,16 +51,16 @@ RSpec.describe StagesController, type: :controller do
|
|||
end
|
||||
|
||||
it 'stops the stage' do
|
||||
expect(@running_group_stage.state).to eq(FINISHED[:state])
|
||||
expect(running_group_stage.state).to eq('finished')
|
||||
end
|
||||
|
||||
it 'adds new stages to the tournament' do
|
||||
expect(@running_group_stage.tournament.stages.size).to be > 1
|
||||
expect(running_group_stage.tournament.stages.size).to be > 1
|
||||
end
|
||||
|
||||
it 'adds the right teams' do
|
||||
expect(@running_group_stage.tournament.stages.max_by(&:level).teams)
|
||||
.to match_array(GroupStageService.get_advancing_teams(@running_group_stage))
|
||||
expect(running_group_stage.tournament.stages.max_by(&:level).teams)
|
||||
.to match_array(GroupStageService.get_advancing_teams(running_group_stage))
|
||||
end
|
||||
end
|
||||
|
||||
|
|
@ -68,7 +70,7 @@ RSpec.describe StagesController, type: :controller do
|
|||
end
|
||||
|
||||
it 'returns an error' do
|
||||
put :update, params: { id: @stage.to_param }.merge(FINISHED)
|
||||
put :update, params: { id: stage.to_param }.merge(finished)
|
||||
expect(response).to have_http_status(:forbidden)
|
||||
end
|
||||
end
|
||||
|
|
@ -81,7 +83,7 @@ RSpec.describe StagesController, type: :controller do
|
|||
|
||||
before do
|
||||
apply_authentication_headers_for group_stage.owner
|
||||
put :update, params: { id: group_stage.to_param }.merge(state: 'finished')
|
||||
put :update, params: { id: group_stage.to_param }.merge(finished)
|
||||
end
|
||||
|
||||
it 'it returns unprocessable entity' do
|
||||
|
|
@ -104,7 +106,7 @@ RSpec.describe StagesController, type: :controller do
|
|||
|
||||
before do
|
||||
apply_authentication_headers_for finished_group_stage.owner
|
||||
put :update, params: { id: finished_group_stage.to_param }.merge(state: 'finished')
|
||||
put :update, params: { id: finished_group_stage.to_param }.merge(finished)
|
||||
end
|
||||
|
||||
it 'it returns unprocessable entity' do
|
||||
|
|
|
|||
Loading…
Reference in New Issue