sorting-lib
Version:
A library that makes sorting easier by introducing `Comparator`
51 lines (50 loc) • 1.94 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
var comparing_1 = require("./comparing");
describe('comparing', function () {
it('should compare by primitiveGetter', function () {
var values = [{ value: 2 }, { value: 1 }];
expect(values.sort((0, comparing_1.comparing)(function (item) { return item.value; })))
.toEqual([{ value: 1 }, { value: 2 }]);
});
it('should treat nil as Max', function () {
var values = [{ value: 2 }, {}];
expect(values.sort((0, comparing_1.comparing)(function (item) { return item.value; }, comparing_1.NilAs.Max)))
.toEqual([{ value: 2 }, {}]);
});
it('should treat nil as Min', function () {
var values = [{ value: 2 }, {}];
expect(values.sort((0, comparing_1.comparing)(function (item) { return item.value; }, comparing_1.NilAs.Min)))
.toEqual([{}, { value: 2 }]);
});
it('should compare by key', function () {
var values = [
{ value: 2 },
{ value: 1 },
];
expect(values.sort((0, comparing_1.comparing)('value')))
.toEqual([{ value: 1 }, { value: 2 }]);
});
it('should compare by complex key', function () {
var values = [
{ object: { subValue: 2 } },
{ object: { subValue: 1 } },
];
expect(values.sort((0, comparing_1.comparing)('object.subValue')))
.toEqual([
{ object: { subValue: 1 } },
{ object: { subValue: 2 } },
]);
});
it('should compare by complex key and nullable value', function () {
var values = [
{ object: { subValue: 2 } },
{ object: {} },
];
expect(values.sort((0, comparing_1.comparing)('object.subValue')))
.toEqual([
{ object: { subValue: 1 } },
{ object: { subValue: 2 } },
]);
});
});