UNPKG

@skele/core

Version:

Core package of the Skele framework. Element definitions, registrations and traversal.

1 lines 3.29 kB
'use strict';var I=_interopRequireWildcard(require("immutable"));var R=_interopRequireWildcard(require("ramda"));var _=require("../../");var zip=_interopRequireWildcard(require("../"));var skeleZip=_interopRequireWildcard(require("../skele"));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)){var desc=Object.defineProperty&&Object.getOwnPropertyDescriptor?Object.getOwnPropertyDescriptor(obj,key):{};if(desc.get||desc.set){Object.defineProperty(newObj,key,desc);}else{newObj[key]=obj[key];}}}}newObj.default=obj;return newObj;}}function _toConsumableArray(arr){return _arrayWithoutHoles(arr)||_iterableToArray(arr)||_nonIterableSpread();}function _nonIterableSpread(){throw new TypeError("Invalid attempt to spread non-iterable instance");}function _iterableToArray(iter){if((typeof Symbol==="function"?Symbol.iterator:"@@iterator")in Object(iter)||Object.prototype.toString.call(iter)==="[object Arguments]")return Array.from(iter);}function _arrayWithoutHoles(arr){if(Array.isArray(arr)){for(var i=0,arr2=new Array(arr.length);i<arr.length;i++){arr2[i]=arr[i];}return arr2;}}function _defineProperty(obj,key,value){if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true});}else{obj[key]=value;}return obj;}describe('selectors',function(){var _ref,_ref2,_ref3,_I$fromJS;var nba=zip.elementZipper({})(I.fromJS((_I$fromJS={kind:'league'},_defineProperty(_I$fromJS,_.propNames.children,['teams','stats']),_defineProperty(_I$fromJS,"teams",[(_ref={kind:'team',name:'lakers'},_defineProperty(_ref,_.propNames.children,'players'),_defineProperty(_ref,"players",[{kind:'player',name:'lebron'},{kind:'player',name:'kuzma'},{kind:'player',name:'lonzo'}]),_ref),(_ref2={kind:'team',name:'dallas'},_defineProperty(_ref2,_.propNames.children,'players'),_defineProperty(_ref2,"players",[{kind:'player',name:'luka'},{kind:'player',name:'dirk'},{kind:'player',name:'jordan'}]),_ref2),(_ref3={kind:'team',name:'warriors'},_defineProperty(_ref3,_.propNames.children,'players'),_defineProperty(_ref3,"players",[{kind:'player',name:'curry'},{kind:'player',name:'kd'},{kind:'player',name:'green'}]),_ref3)]),_defineProperty(_I$fromJS,"stats",[{kind:'stat',name:'reb'},{kind:'stat',name:'ass'},{kind:'stat',name:'poi'}]),_I$fromJS)));describe('skele.childrenAt',function(){test('w/o key',function(){var elements=_toConsumableArray(_.data.flow(nba,skeleZip.childrenAt(null)));expect(elements.length).toBe(6);var teams=R.reduce(function(acc,el){return zip.ofKind('team',el)?acc.push(el)&&acc:acc;},[],elements);expect(teams.length).toBe(3);expect(zip.node(teams[0]).get('name')).toBe('lakers');var stats=R.reduce(function(acc,el){return zip.ofKind('stat',el)?acc.push(el)&&acc:acc;},[],elements);expect(stats.length).toBe(3);expect(zip.node(stats[2]).get('name')).toBe('poi');});test('w/ key',function(){var teams=_toConsumableArray(_.data.flow(nba,skeleZip.childrenAt('teams')));expect(teams.length).toBe(3);expect(zip.node(teams[1]).get('name')).toBe('dallas');var stats=_toConsumableArray(_.data.flow(nba,skeleZip.childrenAt('stats')));expect(stats.length).toBe(3);expect(zip.node(stats[1]).get('name')).toBe('ass');});});});