gaf-mobile
Version:
GAF mobile Web site
120 lines (99 loc) • 2.92 kB
JavaScript
describe('Filter: milestoneOrderFilter', function() {
var milestoneOrderFilter;
beforeEach(module('gafMobileApp'));
beforeEach(inject(function(_$filter_) {
milestoneOrderFilter = _$filter_('milestoneOrderFilter');
}));
it('should return blank order when given no milestones', function() {
expect(milestoneOrderFilter([])).toEqual([]);
});
describe('Place by timestamp as first priority', function() {
it('should move earlier milestone created to the bottom', function() {
var earlierTop = [{
time_created: 1
}, {
time_created: 2
}];
expect(milestoneOrderFilter(earlierTop))
.toEqual(earlierTop.reverse());
});
it('should leave earlier milestone created on the bottom', function() {
var earlierBottom = [{
time_created: 2
}, {
time_created: 1
}];
expect(milestoneOrderFilter(earlierBottom))
.toEqual(earlierBottom);
});
it('should move earlier milestone requested timestamp to bottom',
function() {
var earlierBottom = [{
time_created: 2,
time_requested: 1
}, {
time_created: 1,
time_requested: 2
}];
expect(milestoneOrderFilter(earlierBottom))
.toEqual(earlierBottom.reverse());
});
it('should leave earlier milestone requested timestamp on bottom',
function() {
var earlierTop = [{
time_created: 1,
time_requested: 2
}, {
time_created: 2,
time_requested: 1
}];
expect(milestoneOrderFilter(earlierTop))
.toEqual(earlierTop);
});
});
describe('Place released milestones as last priority', function() {
it('should move cleared to bottom', function() {
var clearedTop = [{
status: 'released'
}, {
status: 'in progress'
}];
expect(milestoneOrderFilter(clearedTop))
.toEqual(clearedTop.reverse());
});
it('should leave released on the bottom', function() {
var clearedBottom = [{
status: 'requested'
}, {
status: 'released'
}];
expect(milestoneOrderFilter(clearedBottom))
.toEqual(clearedBottom);
});
});
describe('Place requested milestones as first priority', function() {
it('should move requested on top', function() {
var clearedTop = [{
status: 'requested',
time_created: 1,
}, {
status: 'requested',
time_requested: 2,
}];
expect(milestoneOrderFilter(clearedTop))
.toEqual(clearedTop.reverse());
});
it('should leave requested on top', function() {
var clearedTop = [{
status: 'requested',
time_requested: 2,
}, {
status: 'requested',
time_created: 1,
}];
expect(milestoneOrderFilter(clearedTop))
.toEqual(clearedTop);
});
});
});
;