UNPKG

@girders-elements/core

Version:

Girders Elements is an architectural framework that assists with building data-driven apps with React or React Native.

109 lines (74 loc) 1.56 kB
'use strict'; var _immutable=require('immutable'); var _=require('..');var zip=_interopRequireWildcard(_);function _interopRequireWildcard(obj){if(obj&&obj.__esModule){return obj;}else{var newObj={};if(obj!=null){for(var key in obj){if(Object.prototype.hasOwnProperty.call(obj,key))newObj[key]=obj[key];}}newObj.default=obj;return newObj;}} describe('Editing a Zipper',function(){ var organization={ kind:'pm', name:'alex', children:[ { kind:'tc', name:'zdravko', children:[ { kind:'tm', name:'emilija'}, { kind:'tm', name:'filip'}]}, { kind:'tc', name:'andon', children:[ { kind:'tm', name:'blagoja'}, { kind:'tm', name:'goran'}]}, { kind:'tc', name:'ognen'}]}; var createElementZipper=function createElementZipper(){return( zip.elementZipper({ defaultChildPositions:'children'})( (0,_immutable.fromJS)(organization)));}; it('can be done using conditions (zip.editCond)',function(){ var elementZipper=createElementZipper(); var result=zip.editCond( [ [ function(item){return item.get('name')==='andon';}, function(item){return item.set('name','sikavica');}], ['tm',function(item){return item.update('name',function(name){return'member-'+name;});}]], elementZipper); expect(result.value()).toEqualI( (0,_immutable.fromJS)({ kind:'pm', name:'alex', children:[ { kind:'tc', name:'zdravko', children:[ { kind:'tm', name:'member-emilija'}, { kind:'tm', name:'member-filip'}]}, { kind:'tc', name:'sikavica', children:[ { kind:'tm', name:'member-blagoja'}, { kind:'tm', name:'member-goran'}]}, { kind:'tc', name:'ognen'}]})); }); });