Reorganize group_stage=true tests

This commit is contained in:
Daniel Schädler 2020-01-14 16:50:57 +01:00
parent 0eff3d382d
commit 793f750547
1 changed files with 55 additions and 53 deletions

View File

@ -215,34 +215,67 @@ RSpec.describe TournamentsController, type: :controller do
expect(included_teams).to match_array(@teams4)
end
context 'with parameter group_stage=true and groups of 4' do
before do
post :create, params: create_group_tournament_data_groups_of_4
body = deserialize_response response
@group_stage_tournament = Tournament.find(body[:id])
context 'with parameter group_stage=true' do
context 'with groups of 4' do
before do
post :create, params: create_group_tournament_data_groups_of_4
body = deserialize_response response
@group_stage_tournament = Tournament.find(body[:id])
end
it 'returns HTTP status created' do
expect(response).to have_http_status(:created)
end
it 'generates a group stage with all teams given in parameters' do
included_teams = @group_stage_tournament.stages.find_by(level: -1).teams
expect(included_teams).to match_array(@teams16)
end
it 'generates a group stage' do
group_stage = @group_stage_tournament.stages.find_by(level: -1)
expect(group_stage).to be_a(Stage)
end
it 'saves the amount of teams that advance into playoffs' do
expect(@group_stage_tournament.playoff_teams_amount)
.to eq(create_group_tournament_data_groups_of_4[:playoff_teams_amount])
end
it 'associates the given teams with the created tournament' do
expect(@group_stage_tournament.teams).to match_array(@teams16)
end
end
it 'returns HTTP status created' do
expect(response).to have_http_status(:created)
end
context 'groups of 5' do
before do
post :create, params: create_group_tournament_data_groups_of_5
body = deserialize_response response
@group_stage_tournament = Tournament.find(body[:id])
end
it 'generates a group stage with all teams given in parameters' do
included_teams = @group_stage_tournament.stages.find_by(level: -1).teams
expect(included_teams).to match_array(@teams16)
end
it 'returns HTTP status created' do
expect(response).to have_http_status(:created)
end
it 'generates a group stage' do
group_stage = @group_stage_tournament.stages.find_by(level: -1)
expect(group_stage).to be_a(Stage)
end
it 'generates a group stage with all teams given in parameters' do
included_teams = @group_stage_tournament.stages.find_by(level: -1).teams
expect(included_teams).to match_array(@teams20)
end
it 'saves the amount of teams that advance into playoffs' do
expect(@group_stage_tournament.playoff_teams_amount)
.to eq(create_group_tournament_data_groups_of_4[:playoff_teams_amount])
end
it 'generates a group stage' do
group_stage = @group_stage_tournament.stages.find_by(level: -1)
expect(group_stage).to be_a(Stage)
end
it 'associates the given teams with the created tournament' do
expect(@group_stage_tournament.teams).to match_array(@teams16)
it 'saves the amount of teams that advance into playoffs' do
expect(@group_stage_tournament.playoff_teams_amount)
.to eq(create_group_tournament_data_groups_of_5[:playoff_teams_amount])
end
it 'associates the given teams with the created tournament' do
expect(@group_stage_tournament.teams).to match_array(@teams20)
end
end
context 'playoff_teams_amount unacceptable' do
@ -282,37 +315,6 @@ RSpec.describe TournamentsController, type: :controller do
end
end
context 'with parameter group_stage=true and groups of 5' do
before do
post :create, params: create_group_tournament_data_groups_of_5
body = deserialize_response response
@group_stage_tournament = Tournament.find(body[:id])
end
it 'returns HTTP status created' do
expect(response).to have_http_status(:created)
end
it 'generates a group stage with all teams given in parameters' do
included_teams = @group_stage_tournament.stages.find_by(level: -1).teams
expect(included_teams).to match_array(@teams20)
end
it 'generates a group stage' do
group_stage = @group_stage_tournament.stages.find_by(level: -1)
expect(group_stage).to be_a(Stage)
end
it 'saves the amount of teams that advance into playoffs' do
expect(@group_stage_tournament.playoff_teams_amount)
.to eq(create_group_tournament_data_groups_of_5[:playoff_teams_amount])
end
it 'associates the given teams with the created tournament' do
expect(@group_stage_tournament.teams).to match_array(@teams20)
end
end
it 'renders a JSON response with the new tournament' do
post :create, params: create_playoff_tournament_data_4_teams
expect(response).to have_http_status(:created)