UNPKG

sorting-lib

Version:

A library that makes sorting easier by introducing `Comparator`

53 lines (52 loc) 1.88 kB
"use strict"; 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]); }); });