diff --git a/frontend/src/js/controllers/challengeCtrl.js b/frontend/src/js/controllers/challengeCtrl.js index c8bf18a82b..785cc07a87 100644 --- a/frontend/src/js/controllers/challengeCtrl.js +++ b/frontend/src/js/controllers/challengeCtrl.js @@ -933,28 +933,48 @@ parameters.method = 'GET'; parameters.data = {}; parameters.callback = { - onSuccess: function(response) { - var details = response.data; - vm.phaseSplits = details; - if (details.length == 0) { - vm.isChallengeLeaderboardPrivate = true; + onSuccess: function(response) { + var details = response.data; + var groupedPhases = {}; + + // Grouping phases by challenge_phase_name + details.forEach(function(phase) { + if (!groupedPhases[phase.challenge_phase_name]) { + groupedPhases[phase.challenge_phase_name] = []; } - for(var i=0; iLeaderboard class="fa fa-refresh text-highlight"> +
- - Phase: - {{key.challenge_phase_name}}, Split: - {{key.dataset_split_name}}   + + + {{ split.challenge_phase_name }}, {{ split.dataset_split_name }} + + + Leaderboard is private -
-
+ + +
diff --git a/frontend/tests/controllers-test/challengeCtrl.test.js b/frontend/tests/controllers-test/challengeCtrl.test.js index 1ebfa38326..9c967ac8d1 100644 --- a/frontend/tests/controllers-test/challengeCtrl.test.js +++ b/frontend/tests/controllers-test/challengeCtrl.test.js @@ -546,32 +546,45 @@ describe('Unit tests for challenge controller', function () { selectExistTeamSuccess = null; challengePhaseSuccess = null; challengePhaseSplitSuccess = true; - - challengePhaseSplit = true; - // get challenge phase split details response - successResponse = [ - { - visibility: 2, - host: 1 - } - ]; + + var successResponse = { + phaseGroupName1: [ + { + visibility: 2, + host: 1 + }, + ], + }; + var challengePhaseVisibility = { owner_and_host: 1, host: 2, public: 3, }; + spyOn(utilities, 'hideLoader'); - vm.isParticipated = true; + + // Create the controller vm = createController(); - expect(vm.phaseSplits).toEqual(successResponse); - for(var i = 0; i < successResponse.length; i++) { - if (successResponse[i].visibility != challengePhaseVisibility.public) { - expect(vm.phaseSplits[i].showPrivate).toBeTruthy(); + vm.onSuccess({ data: successResponse }); + + // Iterate over phase groups and splits to check visibility and private flags + for (var phaseName in vm.phaseSplits) { + if (vm.phaseSplits.hasOwnProperty(phaseName)) { + var phaseData = vm.phaseSplits[phaseName]; + + phaseData.forEach(function(phase) { + if (phase.visibility !== challengePhaseVisibility.public) { + expect(phase.showPrivate).toBeTruthy(); + } + }); } } + expect(utilities.hideLoader).toHaveBeenCalled(); }); - + + it('backend error of particular challenge phase split `challenges//challenge_phase_split`', function () { challengeSuccess = null; participantTeamChallengeSuccess = null; @@ -2714,4 +2727,4 @@ describe('Unit tests for challenge controller', function () { expect($mdDialogOpened).toBe(true); }); }); -}); +}); \ No newline at end of file