Move stopping of matches test

This commit is contained in:
Daniel Schädler 2019-05-23 13:20:59 +02:00
parent d61b3b2b63
commit 9f92ca7e5b
1 changed files with 33 additions and 35 deletions

View File

@ -57,6 +57,39 @@ RSpec.describe MatchesController, type: :controller do
body = deserialize_response response body = deserialize_response response
expect(body[:state]).to eq(valid_update[:state]) expect(body[:state]).to eq(valid_update[:state])
end end
context 'on a running playoff match' do
let(:finished) do
{
state: 'finished'
}
end
before(:each) do
apply_authentication_headers_for @running_playoff_match.owner
end
before do
@running_playoff_match.match_scores.each_with_index do |ms, i|
ms.points = i
ms.save
end
put :update, params: { id: @running_playoff_match.to_param }.merge(finished)
@running_playoff_match.reload
end
it 'updates the matches status' do
expect(response).to be_successful
expect(@running_playoff_match.state).to eq(finished[:state])
end
it 'populates the match below' do
match_below = @tournament.stages.find { |s| s.level == 2 }.matches
.find { |m| m.position == @running_playoff_match.position / 2 }.reload
expect(@running_playoff_match.winner).to be_a(Team)
expect(match_below.teams).to include(@running_playoff_match.winner)
end
end
end end
context 'with invalid params' do context 'with invalid params' do
@ -67,41 +100,6 @@ RSpec.describe MatchesController, type: :controller do
end end
end end
context 'as another owner' do
let(:finished) do
{
state: 'finished'
}
end
before(:each) do
apply_authentication_headers_for @running_playoff_match.owner
end
context 'stops the match' do
before do
@running_playoff_match.match_scores.each_with_index do |ms, i|
ms.points = i
ms.save
end
put :update, params: { id: @running_playoff_match.to_param }.merge(finished)
@running_playoff_match.reload
end
it 'updates the matches status' do
expect(response).to be_successful
expect(@running_playoff_match.state).to eq(finished[:state])
end
it 'populates the match below' do
match_below = @tournament.stages.find { |s| s.level == 2 }.matches
.find { |m| m.position == @running_playoff_match.position / 2 }.reload
expect(@running_playoff_match.winner).to be_a(Team)
expect(match_below.teams).to include(@running_playoff_match.winner)
end
end
end
context 'as another user' do context 'as another user' do
context 'with valid params' do context 'with valid params' do
before(:each) do before(:each) do