macoolka-collection
Version:
`macoolka-collection` Define Data Collection Interface.
76 lines • 3.21 kB
JavaScript
;
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