@vtex/styleguide
Version:
> VTEX Styleguide React components ([Docs](https://vtex.github.io/styleguide))
124 lines (115 loc) • 3.96 kB
JavaScript
;
var _util = require("../util");
var props = ['children', 'related', 'friends'];
var comparator = function comparator(item) {
return function (candidate) {
return item.name === candidate.name;
};
};
describe('CheckboxTree util tests', function () {
it('should flat the tree correctly', function () {
props.forEach(function (prop) {
expect((0, _util.getFlat)(treeForProp(prop), [], prop)).toEqual(flattenedTreeForProp(prop));
});
});
it('should toggle state correctly on a item without chidren', function () {
props.forEach(function (prop) {
expect((0, _util.getToggledState)([], {
name: 'Alok'
}, prop, comparator, function () {
return false;
})).toEqual([{
name: 'Alok'
}]);
expect((0, _util.getToggledState)([], {
name: 'KVSH'
}, prop, comparator, function () {
return false;
})).toEqual([{
name: 'KVSH'
}]);
});
});
it('should toggle state correctly on a item with chidren', function () {
props.forEach(function (prop) {
var _ref, _getToggledState, _ref2, _ref3, _ref4;
expect((0, _util.getToggledState)([], (_getToggledState = {
name: 'Vintage Culture'
}, _getToggledState[prop] = [{
name: 'Alok'
}, (_ref = {
name: 'Cat Dealers'
}, _ref[prop] = [{
name: 'KVSH'
}], _ref)], _getToggledState), prop, comparator, function () {
return false;
})).toEqual([(_ref3 = {
name: 'Vintage Culture'
}, _ref3[prop] = [{
name: 'Alok'
}, (_ref2 = {
name: 'Cat Dealers'
}, _ref2[prop] = [{
name: 'KVSH'
}], _ref2)], _ref3), {
name: 'Alok'
}, (_ref4 = {
name: 'Cat Dealers'
}, _ref4[prop] = [{
name: 'KVSH'
}], _ref4), {
name: 'KVSH'
}]);
});
});
});
function treeForProp(prop) {
var _ref5, _ref6, _ref7, _ref8, _ref9, _ref10;
return _ref10 = {
vtexTableTreeRoot: 'root'
}, _ref10[prop] = [(_ref6 = {
name: 'Vintage Culture'
}, _ref6[prop] = [{
name: 'Alok'
}, (_ref5 = {
name: 'Cat Dealers'
}, _ref5[prop] = [{
name: 'KVSH'
}], _ref5)], _ref6), (_ref9 = {
name: 'Metallica'
}, _ref9[prop] = [(_ref8 = {
name: 'Iron Maiden'
}, _ref8[prop] = [(_ref7 = {
name: 'Pantera'
}, _ref7[prop] = [{
name: 'Slayer'
}], _ref7)], _ref8)], _ref9)], _ref10;
}
function flattenedTreeForProp(prop) {
var _ref11, _ref12, _ref13, _ref14, _ref15, _ref16, _ref17, _ref18, _ref19, _ref20, _ref21, _ref22, _ref23, _ref24, _ref25;
return [(_ref16 = {}, _ref16[prop] = [(_ref12 = {}, _ref12[prop] = [{
name: 'Alok'
}, (_ref11 = {}, _ref11[prop] = [{
name: 'KVSH'
}], _ref11.name = 'Cat Dealers', _ref11)], _ref12.name = 'Vintage Culture', _ref12), (_ref15 = {}, _ref15[prop] = [(_ref14 = {}, _ref14[prop] = [(_ref13 = {}, _ref13[prop] = [{
name: 'Slayer'
}], _ref13.name = 'Pantera', _ref13)], _ref14.name = 'Iron Maiden', _ref14)], _ref15.name = 'Metallica', _ref15)], _ref16.vtexTableTreeRoot = 'root', _ref16), (_ref18 = {}, _ref18[prop] = [{
name: 'Alok'
}, (_ref17 = {}, _ref17[prop] = [{
name: 'KVSH'
}], _ref17.name = 'Cat Dealers', _ref17)], _ref18.name = 'Vintage Culture', _ref18), {
name: 'Alok'
}, (_ref19 = {}, _ref19[prop] = [{
name: 'KVSH'
}], _ref19.name = 'Cat Dealers', _ref19), {
name: 'KVSH'
}, (_ref22 = {}, _ref22[prop] = [(_ref21 = {}, _ref21[prop] = [(_ref20 = {}, _ref20[prop] = [{
name: 'Slayer'
}], _ref20.name = 'Pantera', _ref20)], _ref21.name = 'Iron Maiden', _ref21)], _ref22.name = 'Metallica', _ref22), (_ref24 = {}, _ref24[prop] = [(_ref23 = {}, _ref23[prop] = [{
name: 'Slayer'
}], _ref23.name = 'Pantera', _ref23)], _ref24.name = 'Iron Maiden', _ref24), (_ref25 = {}, _ref25[prop] = [{
name: 'Slayer'
}], _ref25.name = 'Pantera', _ref25), {
name: 'Slayer'
}];
}