Skip to content

Commit f734020

Browse files
authored
Fix get.currentMatches() returning [] on initial state with consolation final and 4 participants (#226)
* Fix bug in `get.currentMatches()` * Add more unit tests
1 parent f17c431 commit f734020

2 files changed

Lines changed: 43 additions & 2 deletions

File tree

src/get.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -162,13 +162,12 @@ export class Get extends BaseGetter {
162162
currentRoundIndex++;
163163

164164
if (stage.settings.consolationFinal && currentRoundIndex === roundCount - 1) {
165-
// We are on the final of the single elimination.
166165
const [final] = roundMatches;
167166
const [consolationFinal] = matchesByRound[currentRoundIndex + 1];
168167

169168
const finals = [final, consolationFinal];
170169
if (finals.every(match => !helpers.isMatchOngoing(match)))
171-
return [];
170+
return currentMatches;
172171

173172
return finals.filter(match => helpers.isMatchOngoing(match));
174173
}

test/unit/get.spec.js

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -136,6 +136,48 @@ describe('Unit - get', () => {
136136
[{ stage_id: 1, round_id: 100, status: Status.Completed }, { stage_id: 2, round_id: 0, status: Status.Completed }, { stage_id: 2, round_id: 1, status: Status.Completed }],
137137
[],
138138
],
139+
[
140+
'one stage - initial state',
141+
{ id: 2, type: 'single_elimination', settings: { size: 4 } },
142+
[{ stage_id: 2, group_id: 0, id: 0 }, { stage_id: 2, group_id: 0, id: 1 }, { stage_id: 2, group_id: 1, id: 2 }],
143+
[{ stage_id: 2, round_id: 0, status: Status.Ready }, { stage_id: 2, round_id: 0, status: Status.Ready }, { stage_id: 2, round_id: 1, status: Status.Locked }, { stage_id: 2, round_id: 2, status: Status.Locked }],
144+
[{ stage_id: 2, round_id: 0, status: Status.Ready }, { stage_id: 2, round_id: 0, status: Status.Ready }],
145+
],
146+
[
147+
'one stage - matches of 1st round completed and 2nd round ready',
148+
{ id: 2, type: 'single_elimination', settings: { size: 4 } },
149+
[{ stage_id: 2, group_id: 0, id: 0 }, { stage_id: 2, group_id: 0, id: 1 }, { stage_id: 2, group_id: 1, id: 2 }],
150+
[{ stage_id: 2, round_id: 0, status: Status.Completed }, { stage_id: 2, round_id: 0, status: Status.Completed }, { stage_id: 2, round_id: 1, status: Status.Ready }, { stage_id: 2, round_id: 2, status: Status.Locked }],
151+
[{ stage_id: 2, round_id: 1, status: Status.Ready }],
152+
],
153+
[
154+
'one stage - matches of 1st round completed and 2nd round running',
155+
{ id: 2, type: 'single_elimination', settings: { size: 4 } },
156+
[{ stage_id: 2, group_id: 0, id: 0 }, { stage_id: 2, group_id: 0, id: 1 }, { stage_id: 2, group_id: 1, id: 2 }],
157+
[{ stage_id: 2, round_id: 0, status: Status.Archived }, { stage_id: 2, round_id: 0, status: Status.Archived }, { stage_id: 2, round_id: 1, status: Status.Running }, { stage_id: 2, round_id: 2, status: Status.Locked }],
158+
[{ stage_id: 2, round_id: 1, status: Status.Running }],
159+
],
160+
[
161+
'one stage, with consolation final - initial state',
162+
{ id: 2, type: 'single_elimination', settings: { size: 4, consolationFinal: true } },
163+
[{ stage_id: 2, group_id: 0, id: 0 }, { stage_id: 2, group_id: 0, id: 1 }, { stage_id: 2, group_id: 1, id: 2 }],
164+
[{ stage_id: 2, round_id: 0, status: Status.Ready }, { stage_id: 2, round_id: 0, status: Status.Ready }, { stage_id: 2, round_id: 1, status: Status.Locked }, { stage_id: 2, round_id: 2, status: Status.Locked }],
165+
[{ stage_id: 2, round_id: 0, status: Status.Ready }, { stage_id: 2, round_id: 0, status: Status.Ready }],
166+
],
167+
[
168+
'one stage, with consolation final - matches of 1st round completed and 2nd round ready',
169+
{ id: 2, type: 'single_elimination', settings: { size: 4, consolationFinal: true } },
170+
[{ stage_id: 2, group_id: 0, id: 0 }, { stage_id: 2, group_id: 0, id: 1 }, { stage_id: 2, group_id: 1, id: 2 }],
171+
[{ stage_id: 2, round_id: 0, status: Status.Completed }, { stage_id: 2, round_id: 0, status: Status.Completed }, { stage_id: 2, round_id: 1, status: Status.Ready }, { stage_id: 2, round_id: 2, status: Status.Locked }],
172+
[{ stage_id: 2, round_id: 1, status: Status.Ready }],
173+
],
174+
[
175+
'one stage, with consolation final - matches of 1st round completed and 2nd round running',
176+
{ id: 2, type: 'single_elimination', settings: { size: 4, consolationFinal: true } },
177+
[{ stage_id: 2, group_id: 0, id: 0 }, { stage_id: 2, group_id: 0, id: 1 }, { stage_id: 2, group_id: 1, id: 2 }],
178+
[{ stage_id: 2, round_id: 0, status: Status.Archived }, { stage_id: 2, round_id: 0, status: Status.Archived }, { stage_id: 2, round_id: 1, status: Status.Running }, { stage_id: 2, round_id: 2, status: Status.Locked }],
179+
[{ stage_id: 2, round_id: 1, status: Status.Running }],
180+
],
139181
[
140182
'one stage, with consolation final - both finals running',
141183
{ id: 2, type: 'single_elimination', settings: { size: 4, consolationFinal: true } },

0 commit comments

Comments
 (0)