UNPKG

sorting-lib

Version:

A library that makes sorting easier by introducing `Comparator`

51 lines (50 loc) 1.94 kB
"use strict"; 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 } }, ]); }); });