sorting-lib
Version:
A library that makes sorting easier by introducing `Comparator`
53 lines (52 loc) • 1.88 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
var comparator_builder_1 = require("./comparator-builder");
var comparing_1 = require("./comparing");
describe('comparator builder', function () {
var values;
beforeEach(function () {
values = [
{ id: 1, key1: 'bcd', key2: 2 },
{ id: 2, key1: 'bcd', key2: 1 },
{ id: 3, key1: 'abc', key2: 2 },
{ id: 4, key1: 'abc', key2: 1 },
];
});
it('should build a comparator', function () {
var sorted = values
.sort((0, comparator_builder_1.comparatorBuilder)()
.add((0, comparing_1.comparing)('key1'))
.add((0, comparing_1.comparing)('key2'))
.build())
.map(function (_a) {
var id = _a.id;
return id;
});
expect(sorted).toEqual([4, 3, 2, 1]);
});
it('should invert the comparator', function () {
var sorted = values
.sort((0, comparator_builder_1.comparatorBuilder)()
.add((0, comparing_1.comparing)(function (item) { return item.key1; }))
.add((0, comparing_1.comparing)(function (item) { return item.key2; }))
.invert()
.build())
.map(function (_a) {
var id = _a.id;
return id;
});
expect(sorted).toEqual([1, 2, 3, 4]);
});
it('should chain comparators', function () {
var sorted = values
.sort((0, comparator_builder_1.chainComparators)([
(0, comparing_1.comparing)(function (item) { return item.key1; }),
(0, comparing_1.comparing)(function (item) { return item.key2; }),
]))
.map(function (_a) {
var id = _a.id;
return id;
});
expect(sorted).toEqual([4, 3, 2, 1]);
});
});