@wix/design-system
Version:
@wix/design-system
322 lines • 7.95 kB
JavaScript
import _extends from "@babel/runtime/helpers/extends";
import _defineProperty from "@babel/runtime/helpers/defineProperty";
var _jsxFileName = "/home/builduser/work/57e038ea7326c1ec/packages/wix-design-system/dist/esm/SidebarItemNext/test/SidebarItemNext.visual.jsx",
_this = this;
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
import React from 'react';
import { snap, story, visualize } from 'storybook-snapper';
import { sidebarSkins } from '../../SidebarNext/constants';
import { SidebarNextContext } from '../../SidebarNext/SidebarNextContext';
import SidebarItemNext from '../SidebarItemNext';
import { Smile } from '@wix/wix-ui-icons-common';
import Box from '../../Box';
var commonProps = {
// use for repeated props across the tests (e.g. {buttonText: 'example'})
};
export var TestIcon = function TestIcon() {
return /*#__PURE__*/React.createElement(Smile, {
size: 18,
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 13,
columnNumber: 31
}
});
};
var tests = [{
describe: 'Legacy sanity',
its: [{
it: 'Sidebar item selected',
props: {
selectedKey: 'first-item',
itemKey: 'first-item'
},
context: {
level: 1,
legacy: true,
selectedPath: ['first-item']
}
}, {
it: 'Sidebar item not selected',
props: {
itemKey: 'first-item'
},
context: {
level: 1,
legacy: true
}
}, {
it: 'Sidebar item disabled',
props: {
itemKey: 'first-item',
disabled: true
},
context: {
level: 1,
legacy: true
}
}, {
it: 'Sidebar item with suffix',
props: {
itemKey: 'first-item',
suffix: /*#__PURE__*/React.createElement(Smile, {
__self: this,
__source: {
fileName: _jsxFileName,
lineNumber: 56,
columnNumber: 19
}
})
},
context: {
legacy: true
}
}, {
it: 'Sidebar item with prefix',
props: {
itemKey: 'first-item',
prefix: /*#__PURE__*/React.createElement(Smile, {
__self: this,
__source: {
fileName: _jsxFileName,
lineNumber: 66,
columnNumber: 19
}
})
},
context: {
level: 1,
legacy: true
}
}, {
it: 'Sidebar item in context',
props: {
itemKey: 'first-item',
prefix: /*#__PURE__*/React.createElement(Smile, {
__self: this,
__source: {
fileName: _jsxFileName,
lineNumber: 77,
columnNumber: 19
}
})
},
context: {
level: 1,
parent: 'inContextMenu'
}
}, {
it: 'Sidebar item in 2nd level',
props: {
itemKey: 'first-item',
prefix: /*#__PURE__*/React.createElement(Smile, {
__self: this,
__source: {
fileName: _jsxFileName,
lineNumber: 88,
columnNumber: 19
}
})
},
context: {
level: 2
}
}, {
it: 'Sidebar item in 1st level with prefix',
props: {
itemKey: 'first-item',
prefix: /*#__PURE__*/React.createElement(Smile, {
__self: this,
__source: {
fileName: _jsxFileName,
lineNumber: 98,
columnNumber: 19
}
})
},
context: {
level: 1,
legacy: true
}
}]
}, {
describe: 'depth',
its: [{
it: 'first',
props: {
itemKey: 'first-item'
},
context: {
level: 1
}
}, {
it: 'first with prefix',
props: {
itemKey: 'first-item',
prefix: /*#__PURE__*/React.createElement(TestIcon, {
__self: this,
__source: {
fileName: _jsxFileName,
lineNumber: 123,
columnNumber: 19
}
})
},
context: {
level: 1
}
}, {
it: 'second',
props: {
itemKey: 'first-item'
},
context: {
level: 2
}
}, {
it: 'second with prefix',
props: {
itemKey: 'first-item',
prefix: /*#__PURE__*/React.createElement(TestIcon, {
__self: this,
__source: {
fileName: _jsxFileName,
lineNumber: 142,
columnNumber: 19
}
})
},
context: {
level: 2
}
}, {
it: 'third',
props: {
itemKey: 'first-item'
},
context: {
level: 3
}
}, {
it: 'third with prefix',
props: {
itemKey: 'first-item',
prefix: /*#__PURE__*/React.createElement(TestIcon, {
__self: this,
__source: {
fileName: _jsxFileName,
lineNumber: 161,
columnNumber: 19
}
})
},
context: {
level: 3
}
}]
}, {
describe: 'in context menu',
its: [{
it: 'first',
props: {
itemKey: 'first-item'
},
context: {
level: 1,
parent: 'inContextMenu'
}
}]
}, {
describe: 'disabled',
its: [{
it: 'disabled',
props: {
disabled: true,
prefix: /*#__PURE__*/React.createElement(Smile, {
__self: this,
__source: {
fileName: _jsxFileName,
lineNumber: 191,
columnNumber: 19
}
})
},
context: {
level: 1,
legacy: true
}
}]
}, {
describe: 'prefix',
its: [{
it: 'prefix level 1',
props: {
prefix: /*#__PURE__*/React.createElement(Smile, {
__self: this,
__source: {
fileName: _jsxFileName,
lineNumber: 206,
columnNumber: 19
}
})
},
context: {
level: 1
}
}]
}];
visualize(SidebarItemNext.displayName, function () {
tests.forEach(function (_ref) {
var describe = _ref.describe,
its = _ref.its;
story(describe, function () {
its.map(function (_ref2) {
var it = _ref2.it,
props = _ref2.props,
context = _ref2.context;
return snap(it, function () {
var skins = Object.values(sidebarSkins);
return /*#__PURE__*/React.createElement(Box, {
direction: "vertical",
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 224,
columnNumber: 13
}
}, skins.map(function (sidebarSkin) {
return /*#__PURE__*/React.createElement(SidebarNextContext.Provider, {
value: _objectSpread({
skin: sidebarSkin,
selectedKey: props.selectedKey,
level: 1
}, context),
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 226,
columnNumber: 17
}
}, /*#__PURE__*/React.createElement(SidebarItemNext, _extends({}, commonProps, props, {
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 234,
columnNumber: 19
}
}), /*#__PURE__*/React.createElement("div", {
__self: _this,
__source: {
fileName: _jsxFileName,
lineNumber: 235,
columnNumber: 21
}
}, sidebarSkin)));
}));
});
});
});
});
});