Merge pull request #65 from turniere/ticket/TURNIERE-255
Fix last Match not being stopped correctly
This commit is contained in:
commit
7955425c38
|
|
@ -79,7 +79,7 @@ class PlayoffStageService
|
||||||
current_stage = current_match.stage
|
current_stage = current_match.stage
|
||||||
next_stage = current_stage.tournament.stages.find { |s| s.level == current_stage.level - 1 }
|
next_stage = current_stage.tournament.stages.find { |s| s.level == current_stage.level - 1 }
|
||||||
# return if next stage does not exist (there are no matches after the finale)
|
# return if next stage does not exist (there are no matches after the finale)
|
||||||
return if next_stage.nil?
|
return [] if next_stage.nil?
|
||||||
|
|
||||||
current_position = current_match.position
|
current_position = current_match.position
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -174,6 +174,30 @@ RSpec.describe MatchesController, type: :controller do
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
context 'on the last match in the tournament' do
|
||||||
|
let(:updated_finale) do
|
||||||
|
only_final_tournament = create(:stage_tournament, stage_count: 1)
|
||||||
|
finale = only_final_tournament.stages.first.matches.first
|
||||||
|
|
||||||
|
finale.match_scores.each_with_index do |ms, i|
|
||||||
|
ms.points = i
|
||||||
|
ms.save!
|
||||||
|
end
|
||||||
|
|
||||||
|
apply_authentication_headers_for finale.owner
|
||||||
|
put :update, params: { id: finale.to_param }.merge(finished)
|
||||||
|
finale.reload
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'response is successful' do
|
||||||
|
expect(response).to be_successful
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'updates the matches status' do
|
||||||
|
expect(updated_finale.state).to eq(finished[:state])
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue