DRY out group_stage_service_spec

This commit is contained in:
Daniel Schädler 2019-06-13 16:09:38 +02:00
parent 63db00b9ff
commit bb1b8798d8
1 changed files with 10 additions and 10 deletions

View File

@ -6,26 +6,26 @@ RSpec.describe GroupStageService do
@teams2 = create_list(:team, 4)
@prepared_groups = Hash[1 => @teams1, 2 => @teams2].values
end
describe '#generate_group_stage method' do
describe '#generate_group_stage' do
let(:prepared_groups_groupstage) do
GroupStageService.generate_group_stage(@prepared_groups)
end
it 'returns a stage object' do
group_stage = GroupStageService.generate_group_stage(@prepared_groups)
expect(group_stage).to be_a(Stage)
expect(prepared_groups_groupstage).to be_a(Stage)
end
it 'returns a stage object with level -1' do
group_stage_level = GroupStageService.generate_group_stage(@prepared_groups).level
expect(group_stage_level).to be(-1)
expect(prepared_groups_groupstage.level).to be(-1)
end
it 'adds the provided groups to the stage' do
group_stage_teams = GroupStageService.generate_group_stage(@prepared_groups).teams
expect(group_stage_teams).to match_array(@prepared_groups.flatten)
expect(prepared_groups_groupstage.teams).to match_array(@prepared_groups.flatten)
end
it 'adds GroupScore objects for every team present in the group' do
group_stage = GroupStageService.generate_group_stage(@prepared_groups)
teams_in_group_scores = group_stage.groups.map { |g| g.group_scores.map(&:team) }.flatten
expect(teams_in_group_scores).to match_array(@prepared_groups.flatten)
expect(prepared_groups_groupstage.groups.map { |g| g.group_scores.map(&:team) }.flatten)
.to match_array(@prepared_groups.flatten)
end
it 'raises exception when given different sizes of groups' do