From c2056df1ba3ab330e63c5315c8d03a6904d49b68 Mon Sep 17 00:00:00 2001 From: Malaber <32635600+Malaber@users.noreply.github.com> Date: Sun, 16 Jun 2019 17:43:09 +0200 Subject: [PATCH 1/2] Remove accidental focus: true --- spec/services/group_stage_service_spec.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spec/services/group_stage_service_spec.rb b/spec/services/group_stage_service_spec.rb index 2a41658..c0e0776 100644 --- a/spec/services/group_stage_service_spec.rb +++ b/spec/services/group_stage_service_spec.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -RSpec.describe GroupStageService, focus: true do +RSpec.describe GroupStageService do before do @teams1 = create_list(:team, 4) @teams2 = create_list(:team, 4) From db70e338824671804c014dc5e00b183eb1a68feb Mon Sep 17 00:00:00 2001 From: Malaber <32635600+Malaber@users.noreply.github.com> Date: Sun, 16 Jun 2019 18:04:18 +0200 Subject: [PATCH 2/2] Assign number to each group --- app/services/group_stage_service.rb | 2 +- spec/services/group_stage_service_spec.rb | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/app/services/group_stage_service.rb b/app/services/group_stage_service.rb index 504ff24..5e92a1d 100644 --- a/app/services/group_stage_service.rb +++ b/app/services/group_stage_service.rb @@ -8,7 +8,7 @@ class GroupStageService # raise an error if the average group size is not a whole number raise 'Groups need to be equal size' unless (groups.flatten.length.to_f / groups.length.to_f % 1).zero? - groups = groups.map(&method(:get_group_object_from)) + groups = groups.map(&method(:get_group_object_from)).each_with_index { |group, i| group.number = i + 1 } Stage.new level: -1, groups: groups, state: :in_progress end diff --git a/spec/services/group_stage_service_spec.rb b/spec/services/group_stage_service_spec.rb index c0e0776..b5ebf06 100644 --- a/spec/services/group_stage_service_spec.rb +++ b/spec/services/group_stage_service_spec.rb @@ -19,6 +19,13 @@ RSpec.describe GroupStageService do expect(prepared_groups_groupstage.state).to eq('in_progress') end + it 'assigns unique numbers to each group' do + groups = prepared_groups_groupstage.groups + groups.sort_by(&:number).each_with_index do |group, i| + expect(group.number).to eq(i + 1) + end + end + it 'returns a stage object with level -1' do expect(prepared_groups_groupstage.level).to be(-1) end