From a38bbd158706ac00e91a29fa96b3f783e8cb555f Mon Sep 17 00:00:00 2001 From: Bruno Trecenti Date: Tue, 25 Feb 2014 11:27:01 -0300 Subject: [PATCH] sorting cycles by their order --- src/models/cycle.js | 6 +++++- src/models/radar.js | 2 +- test/models/cycle-spec.js | 6 ++++++ test/models/radar-spec.js | 16 ++++++++++++++-- 4 files changed, 26 insertions(+), 4 deletions(-) diff --git a/src/models/cycle.js b/src/models/cycle.js index 5893aa2..b3f65b0 100644 --- a/src/models/cycle.js +++ b/src/models/cycle.js @@ -1,9 +1,13 @@ -tr.models.Cycle = function (name) { +tr.models.Cycle = function (name, order) { var self = {}; self.name = function () { return name; }; + self.order = function () { + return order; + }; + return self; }; diff --git a/src/models/radar.js b/src/models/radar.js index 7e48b63..c6bfdbd 100644 --- a/src/models/radar.js +++ b/src/models/radar.js @@ -54,7 +54,7 @@ tr.models.Radar = function() { } } - return cycleArray.slice(0); + return cycleArray.slice(0).sort(function (a, b) { return a.order() - b.order(); }); }; self.quadrants = function () { diff --git a/test/models/cycle-spec.js b/test/models/cycle-spec.js index ecba3d1..d02deeb 100644 --- a/test/models/cycle-spec.js +++ b/test/models/cycle-spec.js @@ -4,4 +4,10 @@ describe('tr.models.Cycle', function () { expect(cycle.name()).toEqual('My Cycle'); }); + + it('has a order', function () { + var cycle = new tr.models.Cycle('My Cycle', 0); + + expect(cycle.order()).toEqual(0); + }); }); diff --git a/test/models/radar-spec.js b/test/models/radar-spec.js index 8b565c7..09043d6 100644 --- a/test/models/radar-spec.js +++ b/test/models/radar-spec.js @@ -57,8 +57,8 @@ describe('tr.models.Radar', function () { var quadrant, radar, firstCycle, secondCycle; beforeEach(function () { - firstCycle = new tr.models.Cycle('Adopt'); - secondCycle = new tr.models.Cycle('Hold'); + firstCycle = new tr.models.Cycle('Adopt', 0); + secondCycle = new tr.models.Cycle('Hold', 1); quadrant = new tr.models.Quadrant('Fourth'); radar = new tr.models.Radar(); }); @@ -85,5 +85,17 @@ describe('tr.models.Radar', function () { expect(radar.cycles()).toEqual([firstCycle, secondCycle]); }); + + it('has sorts by the cycle order', function () { + quadrant.add([ + new tr.models.Blip('C', secondCycle), + new tr.models.Blip('A', firstCycle), + new tr.models.Blip('B', firstCycle) + ]); + + radar.setFirstQuadrant(quadrant); + + expect(radar.cycles()).toEqual([firstCycle, secondCycle]); + }); }); }); -- 2.39.2