UNPKG

macoolka-collection

Version:

`macoolka-collection` Define Data Collection Interface.

76 lines 3.21 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var basic_1 = require("./fixtures/basic"); var pipeable_1 = require("fp-ts/pipeable"); var macoolka_object_1 = require("macoolka-object"); function test(_a, _b) { var from = _a.from, _deleteAt = _a._deleteAt, _insertAt = _a._insertAt, _getAt = _a._getAt, difference = _a.difference, _setAt = _a._setAt, slice = _a.slice; var immutable = _b.immutable; //const as = from([1, 2, 3]) var ListData = from((0, macoolka_object_1.cloneDeep)(basic_1.data)); describe('Collection Immutalbe', function () { it('_deleteAt', function () { var first = (0, pipeable_1.pipe)(ListData, _deleteAt(0)); var second = (0, pipeable_1.pipe)(ListData, _deleteAt(1)); var different1 = difference(basic_1.basicEq)(first, second); var different2 = difference(basic_1.basicEq)(second, first); expect(different1).toEqual(from([{ id: '2', name: 'zhang', age: 34, isFemale: false, city: 'beijing' }])); expect(different2).toEqual(from([ { id: '1', name: 'john', age: 21, isFemale: false, city: 'beijing' } ])); }); it('_insertAt', function () { var a = { id: 'insert', name: 'insert_name' }; var as1 = (0, pipeable_1.pipe)(ListData, _insertAt(0, a)); var first = (0, pipeable_1.pipe)(ListData, _insertAt(0, a), _getAt(0)); expect(as1 === ListData).toEqual(false); expect(basic_1.basicEq.equals(a, first)).toEqual(true); expect(first === a).toEqual(!immutable); }); it('_getAt', function () { var a = (0, pipeable_1.pipe)(ListData, _getAt(0)); a.name = 'new'; var b = (0, pipeable_1.pipe)(ListData, _getAt(0)); expect(basic_1.basicEq.equals(a, b)).toEqual(!immutable); expect(b === a).toEqual(!immutable); }); it('_setAt', function () { var a = { id: 'insert', name: 'insert_name' }; var as1 = (0, pipeable_1.pipe)(ListData, _setAt(0, a)); var b = (0, pipeable_1.pipe)(as1, _getAt(0)); a.name = 'new'; expect(as1 === ListData).toEqual(false); expect(basic_1.basicEq.equals(a, b)).toEqual(!immutable); expect(b === a).toEqual(!immutable); }); it('slice', function () { var a = (0, pipeable_1.pipe)(ListData, _getAt(0)); var as1 = (0, pipeable_1.pipe)(ListData, slice(0, 1)); var b = (0, pipeable_1.pipe)(as1, _getAt(0)); b.name = 'new'; expect(as1 === ListData).toEqual(false); expect(basic_1.basicEq.equals(a, b)).toEqual(!immutable); expect(b === a).toEqual(!immutable); }); }); } exports.default = test; //# sourceMappingURL=immutable.js.map