renderAllegation: function (categoryId, officerAllegations, allegation) { var firstOfficerAllegation = CollectionUtil.first(officerAllegations); return ( <div key={ categoryId }> <OfficerAllegationItem officerAllegation={ firstOfficerAllegation } officerAllegations={ officerAllegations } allegation={ allegation }/> </div> ); },
var ComplaintPagePresenter = function (data, categoryHashId) { var categoryId = CollectionUtil.first(HashUtil.decode(categoryHashId)); var officerAllegations = function () { var officerAllegations = u.fetch(data, 'allegation.officer_allegation_set', []); officerAllegations.sort(function (a, b) { return b.officer['allegations_count'] - a.officer['allegations_count']; }); return officerAllegations; }; var getAgainstOfficerAllegations = function () { return officerAllegations().filter(function (officerAllegation) { return u.fetch(officerAllegation, 'cat.id', 0) == categoryId; }); }; var getAccompliceOfficerAllegations = function () { return officerAllegations().filter(function (officerAllegation) { return u.fetch(officerAllegation, 'cat.id', 0) != categoryId; }); }; var currentOfficerAllegation = function () { var againstOfficerAllegations = getAgainstOfficerAllegations(); return againstOfficerAllegations && againstOfficerAllegations[0]; }; var numberOfOfficerAllegations = function () { return Object.keys(CollectionUtil.groupBy(officerAllegations(), function (officerAllegation) { return u.fetch(officerAllegation, 'cat.id'); })).length; }; return { accompliceOfficerAllegation: getAccompliceOfficerAllegations(), againstOfficerAllegations: getAgainstOfficerAllegations(), allegation: u.fetch(data, 'allegation', {}), complainingWitnesses: u.fetch(data, 'complaining_witnesses'), currentOfficerAllegation: currentOfficerAllegation(), officerAllegations: officerAllegations(), isInvalidCategory: !currentOfficerAllegation(), numberOfOfficerAllegations: numberOfOfficerAllegations() }; };
it('should return first element if collection is not empty', function () { var items = [1, 2]; CollectionUtil.first(items).should.be.equal(1); });
it('should return null if collection is empty', function () { var items = []; var first = CollectionUtil.first(items); should(first).be.exactly(null); });