From 793f750547d478ea4bc37ae55a3c121d9b6507c5 Mon Sep 17 00:00:00 2001 From: Malaber <32635600+Malaber@users.noreply.github.com> Date: Tue, 14 Jan 2020 16:50:57 +0100 Subject: [PATCH] Reorganize group_stage=true tests --- .../tournaments_controller_spec.rb | 108 +++++++++--------- 1 file changed, 55 insertions(+), 53 deletions(-) diff --git a/spec/controllers/tournaments_controller_spec.rb b/spec/controllers/tournaments_controller_spec.rb index 011e7ca..0a60944 100644 --- a/spec/controllers/tournaments_controller_spec.rb +++ b/spec/controllers/tournaments_controller_spec.rb @@ -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)