linear-react-components-ui 0.4.75 → 0.4.76-beta.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (131) hide show
  1. package/.eslintrc.js +2 -5
  2. package/.tool-versions +1 -0
  3. package/.vscode/settings.json +8 -9
  4. package/README.md +33 -0
  5. package/config/jest/cssTransform.js +14 -0
  6. package/config/jest/fileTransform.js +12 -0
  7. package/config/jest/storageMock.js +40 -0
  8. package/jest.config.js +18 -0
  9. package/lib/alerts/alert.spec.js +133 -0
  10. package/lib/assets/styles/dropdown.scss +28 -2
  11. package/lib/assets/styles/effects.scss +12 -0
  12. package/lib/assets/styles/floatMenu.scss +0 -1
  13. package/lib/assets/styles/multiSelect.scss +105 -0
  14. package/lib/assets/styles/panel.scss +0 -1
  15. package/lib/assets/styles/periodpicker.scss +65 -0
  16. package/lib/assets/styles/popover.scss +9 -11
  17. package/lib/assets/styles/progress.scss +8 -1
  18. package/lib/assets/styles/select.scss +1 -0
  19. package/lib/assets/styles/table.scss +13 -5
  20. package/lib/assets/styles/tabs.scss +79 -44
  21. package/lib/assets/styles/treeview.scss +32 -0
  22. package/lib/avatar/avatar.spec.js +190 -0
  23. package/lib/avatar/index.js +6 -2
  24. package/lib/badge/badge.spec.js +127 -0
  25. package/lib/badge/index.js +3 -5
  26. package/lib/buttons/DefaultButton.js +7 -1
  27. package/lib/buttons/buttons.spec.js +504 -0
  28. package/lib/calendar/calendar.spec.js +171 -0
  29. package/lib/checkbox/Label.js +37 -0
  30. package/lib/checkbox/checkbox.spec.js +215 -0
  31. package/lib/checkbox/index.js +21 -6
  32. package/lib/dialog/Custom.js +7 -1
  33. package/lib/dialog/base/index.js +18 -6
  34. package/lib/dialog/dialog.spec.js +488 -0
  35. package/lib/dialog/form/index.js +23 -4
  36. package/lib/drawer/Drawer.js +3 -0
  37. package/lib/drawer/Drawer.spec.js +258 -0
  38. package/lib/drawer/Header.js +4 -1
  39. package/lib/drawer/index.js +4 -1
  40. package/lib/dropdown/Popup.js +1 -0
  41. package/lib/dropdown/dropdown.spec.js +168 -0
  42. package/lib/dropdown/withDropdown.js +10 -4
  43. package/lib/fieldset/fieldset.spec.js +329 -0
  44. package/lib/form/Field.js +2 -0
  45. package/lib/form/FieldNumber.js +10 -2
  46. package/lib/form/FieldPeriod.js +100 -0
  47. package/lib/form/form.spec.js +285 -0
  48. package/lib/form/helpers.js +9 -1
  49. package/lib/form/index.js +209 -222
  50. package/lib/form/withFieldHOC.js +2 -0
  51. package/lib/form/withFormSecurity.js +106 -0
  52. package/lib/gridlayout/GridRow.js +1 -1
  53. package/lib/gridlayout/gridLayout.spec.js +169 -0
  54. package/lib/icons/helper.js +16 -0
  55. package/lib/icons/icons.spec.js +86 -0
  56. package/lib/icons/index.js +2 -0
  57. package/lib/inputs/base/InputTextBase.js +24 -5
  58. package/lib/inputs/base/base.spec.js +690 -0
  59. package/lib/inputs/base/helpers.js +19 -3
  60. package/lib/inputs/color/color_input.spec.js +174 -0
  61. package/lib/inputs/color/index.js +2 -2
  62. package/lib/inputs/date/Dropdown.js +3 -3
  63. package/lib/inputs/date/date.spec.js +344 -0
  64. package/lib/inputs/date/helpers.js +36 -0
  65. package/lib/inputs/date/index.js +11 -9
  66. package/lib/inputs/mask/Cpf.js +9 -9
  67. package/lib/inputs/mask/input_mask.spec.js +590 -0
  68. package/lib/inputs/multiSelect/ActionButtons.js +68 -0
  69. package/lib/inputs/multiSelect/Dropdown.js +200 -0
  70. package/lib/inputs/multiSelect/helper.js +18 -0
  71. package/lib/inputs/multiSelect/index.js +343 -0
  72. package/lib/inputs/number/BaseNumber.js +1 -1
  73. package/lib/inputs/number/index.js +7 -5
  74. package/lib/inputs/number/numberfield.spec.js +215 -0
  75. package/lib/inputs/period/Dialog.js +38 -0
  76. package/lib/inputs/period/Dropdown.js +90 -0
  77. package/lib/inputs/period/PeriodList.js +79 -0
  78. package/lib/inputs/period/helper.js +118 -0
  79. package/lib/inputs/period/index.js +490 -0
  80. package/lib/inputs/search/search_input.spec.js +209 -0
  81. package/lib/inputs/select/Dropdown.js +4 -4
  82. package/lib/inputs/select/index.js +26 -3
  83. package/lib/inputs/select/multiple/index.js +9 -7
  84. package/lib/inputs/select/select.spec.js +391 -0
  85. package/lib/inputs/select/simple/index.js +30 -18
  86. package/lib/inputs/text/textfield.spec.js +215 -0
  87. package/lib/inputs/textarea/textarea.spec.js +59 -0
  88. package/lib/internals/withTooltip.js +86 -82
  89. package/lib/labelMessages/index.js +3 -2
  90. package/lib/labelMessages/labelMessages.spec.js +176 -0
  91. package/lib/labels/label.spec.js +162 -0
  92. package/lib/list/Item.js +3 -3
  93. package/lib/list/index.js +21 -10
  94. package/lib/list/list.spec.js +611 -0
  95. package/lib/menus/float/MenuItem.js +25 -8
  96. package/lib/menus/float/float-menu.spec.js +221 -0
  97. package/lib/menus/sidenav/index.js +7 -3
  98. package/lib/menus/sidenav/popup_menu_search/index.js +1 -1
  99. package/lib/menus/sidenav/sidenav.spec.js +312 -0
  100. package/lib/noPermission/index.js +2 -1
  101. package/lib/panel/panel.spec.js +216 -0
  102. package/lib/popover/index.js +2 -1
  103. package/lib/popover/popover.spec.js +146 -0
  104. package/lib/progress/Bar.js +40 -9
  105. package/lib/progress/index.js +12 -4
  106. package/lib/progress/progress.spec.js +86 -0
  107. package/lib/radio/radio.spec.js +189 -0
  108. package/lib/spinner/SpinnerLoading.js +14 -24
  109. package/lib/spinner/index.js +6 -1
  110. package/lib/spinner/spinner.spec.js +152 -0
  111. package/lib/split/Split.js +10 -12
  112. package/lib/split/split.spec.js +151 -0
  113. package/lib/table/Header.js +3 -1
  114. package/lib/table/Row.js +2 -5
  115. package/lib/table/index.js +1 -4
  116. package/lib/table/table.spec.js +352 -0
  117. package/lib/tabs/DropdownItems.js +84 -0
  118. package/lib/tabs/Menu.js +18 -5
  119. package/lib/tabs/MenuItems.js +7 -7
  120. package/lib/tabs/Panel.js +1 -3
  121. package/lib/tabs/index.js +151 -20
  122. package/lib/tabs/tabs.spec.js +349 -0
  123. package/lib/toolbar/index.js +8 -4
  124. package/lib/toolbar/toolbar.spec.js +394 -0
  125. package/lib/tooltip/index.js +20 -6
  126. package/lib/tooltip/tooltip.spec.js +203 -0
  127. package/lib/treeview/Node.js +347 -48
  128. package/lib/treeview/index.js +456 -35
  129. package/lib/treeview/treeview.spec.js +261 -0
  130. package/package.json +19 -9
  131. package/.DS_Store +0 -0
package/lib/list/index.js CHANGED
@@ -58,27 +58,34 @@ function _iterableToArrayLimit(arr, i) { var _i = arr && (typeof Symbol !== "und
58
58
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
59
59
 
60
60
  var List = function List(props) {
61
- var _useState = (0, _react.useState)(''),
62
- _useState2 = _slicedToArray(_useState, 2),
63
- selectedItemId = _useState2[0],
64
- setSelectedItemId = _useState2[1];
65
-
66
61
  var children = props.children,
67
62
  customClass = props.customClass,
68
63
  condensed = props.condensed,
69
64
  transparent = props.transparent,
70
65
  style = props.style,
71
- selectable = props.selectable;
66
+ selectable = props.selectable,
67
+ onSelectItem = props.onSelectItem;
68
+
69
+ var _useState = (0, _react.useState)(''),
70
+ _useState2 = _slicedToArray(_useState, 2),
71
+ selectedItemId = _useState2[0],
72
+ setSelectedItemId = _useState2[1];
73
+
72
74
  var contextValues = {
73
75
  selectable: selectable,
74
76
  selectedItemId: selectedItemId,
75
- handleSelectItem: function handleSelectItem(selectedId) {
76
- setSelectedItemId(selectedId);
77
+ handleSelectItem: function handleSelectItem(selectedId, onClick) {
78
+ if (!onSelectItem && onClick) setSelectedItemId(selectedId);
79
+ if (onSelectItem) onSelectItem(selectedId);
77
80
  }
78
81
  };
82
+ (0, _react.useEffect)(function () {
83
+ if (onSelectItem && props.selectedItemId) setSelectedItemId(props.selectedItemId);
84
+ }, [props.selectedItemId]);
79
85
  return /*#__PURE__*/_react["default"].createElement(_helpers["default"].Provider, {
80
86
  value: contextValues
81
87
  }, /*#__PURE__*/_react["default"].createElement("ul", {
88
+ "data-testid": "list-component",
82
89
  style: style,
83
90
  className: "list-component ".concat(condensed && '-condensed', " ").concat(customClass, " ").concat(!transparent && '-listbackground')
84
91
  }, children));
@@ -90,14 +97,18 @@ List.propTypes = {
90
97
  customClass: _propTypes["default"].string,
91
98
  condensed: _propTypes["default"].bool,
92
99
  selectable: _propTypes["default"].bool,
93
- style: _propTypes["default"].object
100
+ style: _propTypes["default"].object,
101
+ onSelectItem: _propTypes["default"].func,
102
+ selectedItemId: _propTypes["default"].string
94
103
  };
95
104
  List.defaultProps = {
96
105
  customClass: '',
97
106
  condensed: false,
98
107
  transparent: false,
99
108
  selectable: false,
100
- style: {}
109
+ style: {},
110
+ onSelectItem: undefined,
111
+ selectedItemId: ''
101
112
  };
102
113
  var _default = List;
103
114
  exports["default"] = _default;
@@ -0,0 +1,611 @@
1
+ "use strict";
2
+
3
+ function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
4
+
5
+ var _react = _interopRequireDefault(require("react"));
6
+
7
+ var _react2 = require("@testing-library/react");
8
+
9
+ require("@testing-library/jest-dom/extend-expect");
10
+
11
+ var _reactRouterDom = require("react-router-dom");
12
+
13
+ var _index = _interopRequireWildcard(require("./index"));
14
+
15
+ var _buttons = _interopRequireDefault(require("../buttons"));
16
+
17
+ var _icons = _interopRequireDefault(require("../icons"));
18
+
19
+ var _storageMock = _interopRequireWildcard(require("../../../config/jest/storageMock"));
20
+
21
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
22
+
23
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
24
+
25
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
26
+
27
+ function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
28
+
29
+ describe('Components', function () {
30
+ // O componente BrowserRouter foi adicionado devido a thread:
31
+ // https://stackoverflow.com/questions/48640280/you-should-not-use-link-outside-a-router
32
+ var list = function list(listProps, listHeaderProps, listItemProps) {
33
+ return /*#__PURE__*/_react["default"].createElement(_reactRouterDom.BrowserRouter, null, /*#__PURE__*/_react["default"].createElement(_index["default"], listProps, /*#__PURE__*/_react["default"].createElement(_index.ListHeader, _extends({
34
+ title: "defaut"
35
+ }, listHeaderProps), /*#__PURE__*/_react["default"].createElement("p", {
36
+ className: "listheader-child"
37
+ }, "saas")), /*#__PURE__*/_react["default"].createElement(_index.ListItem, listItemProps, /*#__PURE__*/_react["default"].createElement(_buttons["default"], {
38
+ customClass: "childbuttontest",
39
+ label: "Teste Child"
40
+ }))));
41
+ };
42
+
43
+ var setSessionStorageMock = function setSessionStorageMock() {
44
+ Object.defineProperty(window, 'sessionStorage', {
45
+ value: (0, _storageMock["default"])()
46
+ });
47
+ };
48
+
49
+ describe('List', function () {
50
+ it('should render correctly', function () {
51
+ var _render = (0, _react2.render)(list()),
52
+ container = _render.container;
53
+
54
+ expect(container.firstChild).toHaveClass('list-component');
55
+ });
56
+ it('prop transparent should remove css class -listbackground', function () {
57
+ var _render2 = (0, _react2.render)(list({
58
+ transparent: true
59
+ })),
60
+ container = _render2.container;
61
+
62
+ expect(container.firstChild).not.toHaveClass('-listbackground');
63
+ });
64
+ it('should apply customClass', function () {
65
+ var customClass = 'teste';
66
+
67
+ var _render3 = (0, _react2.render)(list({
68
+ customClass: customClass
69
+ })),
70
+ container = _render3.container;
71
+
72
+ expect(container.firstChild).toHaveClass(customClass);
73
+ });
74
+ it('prop condensed should apply css class -condensed', function () {
75
+ var _render4 = (0, _react2.render)(list({
76
+ condensed: true
77
+ })),
78
+ container = _render4.container;
79
+
80
+ expect(container.firstChild).toHaveClass('-condensed');
81
+ });
82
+ it('should apply style', function () {
83
+ var style = {
84
+ marginTop: '10px',
85
+ paddingBottom: '2px'
86
+ };
87
+
88
+ var _render5 = (0, _react2.render)(list({
89
+ style: style
90
+ })),
91
+ container = _render5.container;
92
+
93
+ expect(container.firstChild).toHaveStyle(style);
94
+ });
95
+ it('should select item by id', function () {
96
+ var listItemProps = {
97
+ itemId: '1'
98
+ };
99
+
100
+ var _render6 = (0, _react2.render)(list({
101
+ selectable: true,
102
+ onSelectItem: jest.fn(),
103
+ selectedItemId: '1'
104
+ }, {}, listItemProps)),
105
+ container = _render6.container;
106
+
107
+ var listItem = container.querySelector('.item-container');
108
+ expect(listItem).toHaveClass('-activedlist');
109
+ });
110
+ describe('prop selectable', function () {
111
+ it('should allow ListItem to be selected', function () {
112
+ var listItemProps = {
113
+ itemId: '1',
114
+ onClick: jest.fn()
115
+ };
116
+
117
+ var _render7 = (0, _react2.render)(list({
118
+ selectable: true
119
+ }, {}, listItemProps)),
120
+ container = _render7.container;
121
+
122
+ var listItem = container.querySelector('.item-container');
123
+
124
+ _react2.fireEvent.click(listItem);
125
+
126
+ expect(listItem).toHaveClass('-activedlist');
127
+ });
128
+ it('should call onSelectItem', function () {
129
+ var mockOnSelectItem = jest.fn();
130
+
131
+ var mockList = /*#__PURE__*/_react["default"].createElement(_index["default"], {
132
+ selectable: true,
133
+ onSelectItem: function onSelectItem(itemId) {
134
+ return mockOnSelectItem(itemId);
135
+ }
136
+ }, /*#__PURE__*/_react["default"].createElement(_index.ListItem, {
137
+ itemId: "1",
138
+ text: "Teste Foo"
139
+ }));
140
+
141
+ var _render8 = (0, _react2.render)(mockList),
142
+ container = _render8.container;
143
+
144
+ var listItem = container.querySelector('.item-container');
145
+
146
+ _react2.fireEvent.click(listItem);
147
+
148
+ expect(mockOnSelectItem).toHaveBeenCalledWith('1');
149
+ });
150
+ });
151
+ });
152
+ describe('ListHeader', function () {
153
+ it('should render correctly', function () {
154
+ var _render9 = (0, _react2.render)(list()),
155
+ container = _render9.container;
156
+
157
+ expect(container.querySelector('.list-header')).toBeTruthy();
158
+ });
159
+ it('should apply title', function () {
160
+ var title = 'Teste Header';
161
+
162
+ var _render10 = (0, _react2.render)(list({}, {
163
+ title: title
164
+ })),
165
+ container = _render10.container;
166
+
167
+ var listHeaderTitle = container.querySelector('.list-header > .title');
168
+ expect(listHeaderTitle).toBeTruthy();
169
+ expect(listHeaderTitle).toHaveTextContent(title);
170
+ });
171
+ it('should apply style', function () {
172
+ var style = {
173
+ marginTop: '10px',
174
+ paddingBottom: '2px'
175
+ };
176
+
177
+ var _render11 = (0, _react2.render)(list({}, {
178
+ style: style
179
+ })),
180
+ container = _render11.container;
181
+
182
+ var listHeader = container.querySelector('.list-header');
183
+ expect(listHeader).toHaveStyle(style);
184
+ });
185
+ it('should apply customClass', function () {
186
+ var customClass = 'teste-listheader';
187
+
188
+ var _render12 = (0, _react2.render)(list({}, {
189
+ customClass: customClass
190
+ })),
191
+ container = _render12.container;
192
+
193
+ var listHeader = container.querySelector('.list-header');
194
+ expect(listHeader).toHaveClass(customClass);
195
+ });
196
+ it('should render children', function () {
197
+ var _render13 = (0, _react2.render)(list()),
198
+ container = _render13.container;
199
+
200
+ var listHeaderChild = container.querySelector('.list-header > .listheader-child');
201
+ expect(listHeaderChild).toBeTruthy();
202
+ });
203
+ });
204
+ describe('ListItem', function () {
205
+ it('should render correctly', function () {
206
+ var _render14 = (0, _react2.render)(list()),
207
+ container = _render14.container;
208
+
209
+ var listItem = container.querySelector('.item-container');
210
+ expect(listItem).toBeTruthy();
211
+ });
212
+ it('should apply text', function () {
213
+ var text = 'Teste Item 1';
214
+
215
+ var _render15 = (0, _react2.render)(list({}, {}, {
216
+ text: text
217
+ })),
218
+ container = _render15.container;
219
+
220
+ var listItemText = container.querySelector('.item-container .text');
221
+ expect(listItemText).toBeTruthy();
222
+ expect(listItemText).toHaveTextContent(text);
223
+ });
224
+ it('should apply subtext', function () {
225
+ var subText = 'Teste Item 1';
226
+
227
+ var _render16 = (0, _react2.render)(list({}, {}, {
228
+ subText: subText
229
+ })),
230
+ container = _render16.container;
231
+
232
+ var listItemSubText = container.querySelector('.item-container .subtext');
233
+ expect(listItemSubText).toBeTruthy();
234
+ expect(listItemSubText).toHaveTextContent(subText);
235
+ });
236
+ it('should apply style', function () {
237
+ var style = {
238
+ marginTop: '10px',
239
+ paddingBottom: '2px'
240
+ };
241
+
242
+ var _render17 = (0, _react2.render)(list({}, {}, {
243
+ style: style
244
+ })),
245
+ container = _render17.container;
246
+
247
+ var listItem = container.querySelector('.item-container');
248
+ expect(listItem).toHaveStyle(style);
249
+ });
250
+ describe('prop separator', function () {
251
+ var separator = true;
252
+ it('apply list-separator css class to text/subtext/children container', function () {
253
+ var _render18 = (0, _react2.render)(list({}, {}, {
254
+ text: 'Teste',
255
+ separator: separator
256
+ })),
257
+ container = _render18.container;
258
+
259
+ var listItemTextContainer = container.querySelector('.item-container .item');
260
+ expect(listItemTextContainer).toHaveClass('list-separator');
261
+ });
262
+ it('apply list-separator css class to leftIcon/leftElement container', function () {
263
+ var _render19 = (0, _react2.render)(list({}, {}, {
264
+ leftIconName: 'pencil',
265
+ separator: separator
266
+ })),
267
+ container = _render19.container;
268
+
269
+ var listItemLeftElContainer = container.querySelector('.item-container .item.-icon-left');
270
+ expect(listItemLeftElContainer).toHaveClass('list-separator');
271
+ });
272
+ it('apply list-separator css class to rightIcon/rightElement container', function () {
273
+ var _render20 = (0, _react2.render)(list({}, {}, {
274
+ rightIconName: 'pencil',
275
+ separator: separator
276
+ })),
277
+ container = _render20.container;
278
+
279
+ var listItemRightElContainer = container.querySelector('.item-container .item.-icon-right');
280
+ expect(listItemRightElContainer).toHaveClass('list-separator');
281
+ });
282
+ });
283
+ it('prop hovered should apply css class hovered ', function () {
284
+ var _render21 = (0, _react2.render)(list({}, {}, {
285
+ hovered: true
286
+ })),
287
+ container = _render21.container;
288
+
289
+ var listItem = container.querySelector('.item-container');
290
+ expect(listItem).toHaveClass('hovered');
291
+ });
292
+ describe('prop disabled', function () {
293
+ var disabled = true;
294
+ it('should disable onClick event', function () {
295
+ var mockFunc = jest.fn();
296
+
297
+ var _render22 = (0, _react2.render)(list({}, {}, {
298
+ disabled: disabled,
299
+ onClick: mockFunc
300
+ })),
301
+ container = _render22.container;
302
+
303
+ var listItem = container.querySelector('.item-container');
304
+
305
+ _react2.fireEvent.click(listItem);
306
+
307
+ expect(mockFunc).not.toBeCalled();
308
+ });
309
+ it('apply disabled css class to text/subtext/children container', function () {
310
+ var _render23 = (0, _react2.render)(list({}, {}, {
311
+ text: 'Teste',
312
+ disabled: disabled
313
+ })),
314
+ container = _render23.container;
315
+
316
+ var listItemTextContainer = container.querySelector('.item-container .item');
317
+ expect(listItemTextContainer).toHaveClass('disabled');
318
+ });
319
+ it('apply disabled css class to leftIcon/leftElement container', function () {
320
+ var _render24 = (0, _react2.render)(list({}, {}, {
321
+ leftIconName: 'pencil',
322
+ disabled: disabled
323
+ })),
324
+ container = _render24.container;
325
+
326
+ var listItemLeftElContainer = container.querySelector('.item-container .item.-icon-left');
327
+ expect(listItemLeftElContainer).toHaveClass('disabled');
328
+ });
329
+ it('apply disabled css class to rightIcon/rightElement container', function () {
330
+ var _render25 = (0, _react2.render)(list({}, {}, {
331
+ rightIconName: 'pencil',
332
+ disabled: disabled
333
+ })),
334
+ container = _render25.container;
335
+
336
+ var listItemRightElContainer = container.querySelector('.item-container .item.-icon-right');
337
+ expect(listItemRightElContainer).toHaveClass('disabled');
338
+ });
339
+ it('should hide url', function () {
340
+ var _render26 = (0, _react2.render)(list({}, {}, {
341
+ disabled: disabled,
342
+ url: 'saas'
343
+ })),
344
+ container = _render26.container;
345
+
346
+ var linkitem = container.querySelector('.linkitem');
347
+ expect(linkitem).not.toBeInTheDocument();
348
+ });
349
+ });
350
+ it('prop displayCheckbox should render Checkbox within subject', function () {
351
+ var _render27 = (0, _react2.render)(list({}, {}, {
352
+ displayCheckbox: true
353
+ })),
354
+ container = _render27.container;
355
+
356
+ var checkboxComponent = container.querySelector('.item-container .item.-icon-left .checkbox-component');
357
+ expect(checkboxComponent).toBeTruthy();
358
+ expect(checkboxComponent.name).toEqual('checkbox');
359
+ });
360
+ it('should render leftElement', function () {
361
+ var leftElement = /*#__PURE__*/_react["default"].createElement(_buttons["default"], {
362
+ customClass: "leftElTeste"
363
+ });
364
+
365
+ var _render28 = (0, _react2.render)(list({}, {}, {
366
+ leftElement: leftElement
367
+ })),
368
+ container = _render28.container;
369
+
370
+ var leftElementHTML = container.querySelector('.item-container .item.-icon-left .leftElTeste');
371
+ expect(leftElementHTML).toBeTruthy();
372
+ });
373
+ it('should render rightElement', function () {
374
+ var rightElement = /*#__PURE__*/_react["default"].createElement(_buttons["default"], {
375
+ customClass: "rightElTeste"
376
+ });
377
+
378
+ var _render29 = (0, _react2.render)(list({}, {}, {
379
+ rightElement: rightElement
380
+ })),
381
+ container = _render29.container;
382
+
383
+ var rightElementHTML = container.querySelector('.item-container .item.-icon-right .rightElTeste');
384
+ expect(rightElementHTML).toBeTruthy();
385
+ });
386
+ it('should render leftIcon', function () {
387
+ var leftIcon = /*#__PURE__*/_react["default"].createElement(_icons["default"], {
388
+ name: "code",
389
+ customClass: "iconTeste",
390
+ size: 24,
391
+ color: "#000"
392
+ });
393
+
394
+ var _render30 = (0, _react2.render)(list({}, {}, {
395
+ leftIcon: leftIcon
396
+ })),
397
+ container = _render30.container;
398
+
399
+ var leftIconHTML = container.querySelector('.item-container .item.-icon-left .icon-component.iconTeste');
400
+ expect(leftIconHTML).toBeTruthy();
401
+ });
402
+ it('should render rightIcon', function () {
403
+ var rightIcon = /*#__PURE__*/_react["default"].createElement(_icons["default"], {
404
+ name: "code",
405
+ customClass: "iconTeste",
406
+ size: 24,
407
+ color: "#000"
408
+ });
409
+
410
+ var _render31 = (0, _react2.render)(list({}, {}, {
411
+ rightIcon: rightIcon
412
+ })),
413
+ container = _render31.container;
414
+
415
+ var rightIconHTML = container.querySelector('.item-container .item.-icon-right .icon-component.iconTeste');
416
+ expect(rightIconHTML).toBeTruthy();
417
+ });
418
+ it('prop leftIconName should render Icon', function () {
419
+ var _render32 = (0, _react2.render)(list({}, {}, {
420
+ leftIconName: 'code'
421
+ })),
422
+ container = _render32.container;
423
+
424
+ var leftIcon = container.querySelector('.item-container .item.-icon-left .icon-component');
425
+ expect(leftIcon).toBeTruthy();
426
+ });
427
+ it('prop rightIconName should render Icon', function () {
428
+ var _render33 = (0, _react2.render)(list({}, {}, {
429
+ rightIconName: 'code'
430
+ })),
431
+ container = _render33.container;
432
+
433
+ var rightIcon = container.querySelector('.item-container .item.-icon-right .icon-component');
434
+ expect(rightIcon).toBeTruthy();
435
+ });
436
+ it('should apply onClick', function () {
437
+ var mockFunc = jest.fn();
438
+ var listItemId = '1';
439
+
440
+ var mockList = /*#__PURE__*/_react["default"].createElement(_index["default"], null, /*#__PURE__*/_react["default"].createElement(_index.ListItem, {
441
+ itemId: listItemId,
442
+ text: "Teste Foo",
443
+ onClick: function onClick(_, itemId) {
444
+ return mockFunc(itemId);
445
+ }
446
+ }));
447
+
448
+ var _render34 = (0, _react2.render)(mockList),
449
+ container = _render34.container;
450
+
451
+ var listItem = container.querySelector('.item-container');
452
+
453
+ _react2.fireEvent.click(listItem);
454
+
455
+ expect(mockFunc).toBeCalledWith(listItemId);
456
+ });
457
+ describe('prop customClass', function () {
458
+ var customClass = 'customclassTeste';
459
+ it('apply customClass css class to text/subtext/children container', function () {
460
+ var _render35 = (0, _react2.render)(list({}, {}, {
461
+ text: 'Teste',
462
+ customClass: customClass
463
+ })),
464
+ container = _render35.container;
465
+
466
+ var listItemTextContainer = container.querySelector('.item-container .item');
467
+ expect(listItemTextContainer).toHaveClass(customClass);
468
+ });
469
+ it('apply customClass css class to leftIcon/leftElement container', function () {
470
+ var _render36 = (0, _react2.render)(list({}, {}, {
471
+ leftIconName: 'pencil',
472
+ customClass: customClass
473
+ })),
474
+ container = _render36.container;
475
+
476
+ var listItemLeftElContainer = container.querySelector('.item-container .item.-icon-left');
477
+ expect(listItemLeftElContainer).toHaveClass(customClass);
478
+ });
479
+ it('apply customClass css class to rightIcon/rightElement container', function () {
480
+ var _render37 = (0, _react2.render)(list({}, {}, {
481
+ rightIconName: 'pencil',
482
+ customClass: customClass
483
+ })),
484
+ container = _render37.container;
485
+
486
+ var listItemRightElContainer = container.querySelector('.item-container .item.-icon-right');
487
+ expect(listItemRightElContainer).toHaveClass(customClass);
488
+ });
489
+ });
490
+ it('prop url should render Link', function () {
491
+ var _render38 = (0, _react2.render)(list({}, {}, {
492
+ url: 'saas'
493
+ })),
494
+ container = _render38.container;
495
+
496
+ var linkComponent = container.querySelector('.item-container .linkitem');
497
+ expect(linkComponent).toBeTruthy();
498
+ });
499
+ describe('prop visible', function () {
500
+ it('when true(default) should allow subject to render', function () {
501
+ var _render39 = (0, _react2.render)(list({}, {}, {
502
+ visible: true
503
+ })),
504
+ container = _render39.container;
505
+
506
+ var listItem = container.querySelector('.item-container');
507
+ expect(listItem).toBeTruthy();
508
+ });
509
+ it('when false should not let subject render', function () {
510
+ var _render40 = (0, _react2.render)(list({}, {}, {
511
+ visible: false
512
+ })),
513
+ container = _render40.container;
514
+
515
+ var listItem = container.querySelector('.item-container');
516
+ expect(listItem).not.toBeInTheDocument();
517
+ });
518
+ });
519
+ it('should render children', function () {
520
+ var _render41 = (0, _react2.render)(list()),
521
+ container = _render41.container;
522
+
523
+ var listItemButtonChild = container.querySelector('.item-container .childbuttontest');
524
+ expect(listItemButtonChild).toBeTruthy();
525
+ expect(listItemButtonChild).toHaveTextContent('Teste Child');
526
+ });
527
+ describe('prop permissionAttr', function () {
528
+ describe('when permission granted', function () {
529
+ it('should render subject', function () {
530
+ setSessionStorageMock();
531
+
532
+ var _render42 = (0, _react2.render)(list({}, {}, {
533
+ permissionAttr: (0, _storageMock.permissionAttrMockAuthorized)('disabled')
534
+ })),
535
+ container = _render42.container;
536
+
537
+ var listItem = container.querySelector('.item-container');
538
+ expect(listItem).toBeTruthy();
539
+ });
540
+ });
541
+ describe('when permission denied', function () {
542
+ it('onDenied.unvisible option should not render subject', function () {
543
+ setSessionStorageMock();
544
+
545
+ var _render43 = (0, _react2.render)(list({}, {}, {
546
+ permissionAttr: (0, _storageMock.permissionAttrMockUnauthorized)('unvisible')
547
+ })),
548
+ container = _render43.container;
549
+
550
+ var listItem = container.querySelector('.item-container');
551
+ expect(listItem).not.toBeInTheDocument();
552
+ });
553
+ describe('onDenied.disabled option should', function () {
554
+ var permissionProp = {
555
+ permissionAttr: (0, _storageMock.permissionAttrMockUnauthorized)('disabled')
556
+ };
557
+ it('disable onClick event', function () {
558
+ var mockFunc = jest.fn();
559
+
560
+ var _render44 = (0, _react2.render)(list({}, {}, _extends({}, permissionProp, {
561
+ onClick: mockFunc
562
+ }))),
563
+ container = _render44.container;
564
+
565
+ var listItem = container.querySelector('.item-container');
566
+
567
+ _react2.fireEvent.click(listItem);
568
+
569
+ expect(mockFunc).not.toBeCalled();
570
+ });
571
+ it('apply disabled css class to text/subtext/children container', function () {
572
+ var _render45 = (0, _react2.render)(list({}, {}, _extends({
573
+ text: 'Teste'
574
+ }, permissionProp))),
575
+ container = _render45.container;
576
+
577
+ var listItemTextContainer = container.querySelector('.item-container .item');
578
+ expect(listItemTextContainer).toHaveClass('disabled');
579
+ });
580
+ it('apply disabled css class to leftIcon/leftElement container', function () {
581
+ var _render46 = (0, _react2.render)(list({}, {}, _extends({
582
+ leftIconName: 'pencil'
583
+ }, permissionProp))),
584
+ container = _render46.container;
585
+
586
+ var listItemLeftElContainer = container.querySelector('.item-container .item.-icon-left');
587
+ expect(listItemLeftElContainer).toHaveClass('disabled');
588
+ });
589
+ it('apply disabled css class to rightIcon/rightElement container', function () {
590
+ var _render47 = (0, _react2.render)(list({}, {}, _extends({
591
+ rightIconName: 'pencil'
592
+ }, permissionProp))),
593
+ container = _render47.container;
594
+
595
+ var listItemRightElContainer = container.querySelector('.item-container .item.-icon-right');
596
+ expect(listItemRightElContainer).toHaveClass('disabled');
597
+ });
598
+ it('hide url', function () {
599
+ var _render48 = (0, _react2.render)(list({}, {}, _extends({}, permissionProp, {
600
+ url: 'saas'
601
+ }))),
602
+ container = _render48.container;
603
+
604
+ var linkitem = container.querySelector('.linkitem');
605
+ expect(linkitem).not.toBeInTheDocument();
606
+ });
607
+ });
608
+ });
609
+ });
610
+ });
611
+ });