@reltio/components 1.4.1906 → 1.4.1907

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 (97) hide show
  1. package/cjs/ActionsPanel/ActionsPanel.test.js +133 -49
  2. package/cjs/AttributeListItem/AttributeListItem.spec.js +147 -118
  3. package/cjs/AttributeSelector/AttributeSelector.specs.js +125 -193
  4. package/cjs/AttributesErrorsPanel/AttributesErrorsPanel.specs.js +128 -71
  5. package/cjs/AttributesErrorsPanel/components/Error/Error.specs.js +96 -90
  6. package/cjs/AttributesErrorsPanel/store.test-data.d.ts +22 -0
  7. package/cjs/AttributesErrorsPanel/store.test-data.js +29 -0
  8. package/cjs/AttributesFilterSelector/AttributesFilterSelector.test.js +127 -105
  9. package/cjs/AttributesFiltersButton/AttributesFiltersButton.test.js +218 -136
  10. package/cjs/AttributesValuesEditor/AttributesValuesEditor.test.js +92 -88
  11. package/cjs/AttributesView/AttributesView.test.js +67 -34
  12. package/cjs/AutoSizeList/AutoSizeList.test.js +81 -59
  13. package/cjs/{ActionsPanel/components/MenuItemRenderer/MenuItemRenderer.spec.js → AvatarWithFallback/AvatarWithFallback.test.js} +15 -31
  14. package/cjs/BarChart/BarChart.test.js +128 -65
  15. package/cjs/BasicAttributeSelector/BasicAttributeSelector.spec.js +27 -10
  16. package/cjs/BasicViewContent/BasicViewContent.test.js +7 -9
  17. package/cjs/BlobRenderer/BlobRenderer.test.js +28 -9
  18. package/cjs/BooleanRadioEditor/BooleanRadioEditor.test.js +89 -35
  19. package/cjs/BubbleChart/BubbleChart.test.js +111 -87
  20. package/cjs/CloudChart/CloudChart.test.js +95 -36
  21. package/cjs/CollaborationItem/CollaborationItem.test.js +67 -30
  22. package/cjs/CollaborationItem/components/Comment/Comment.test.js +221 -189
  23. package/cjs/CollaborationItem/components/CommentContent/CommentContent.test.js +46 -81
  24. package/cjs/CollaborationItem/components/RepliedComment/RepliedComment.test.js +194 -163
  25. package/cjs/CollaborationItem/components/SendMessageArea/SendMessageArea.test.js +307 -266
  26. package/cjs/CollapseButton/CollapseButton.test.js +74 -15
  27. package/cjs/CollapseRowButton/CollapseRowButton.test.js +82 -24
  28. package/cjs/ColorBar/ColorBar.test.js +13 -15
  29. package/cjs/ColumnsSettings/components/ColumnsSettingsPopup/ColumnsSettingsPopup.spec.js +207 -129
  30. package/cjs/CommentsContainer/CommentsContainer.test.js +282 -211
  31. package/cjs/CommentsContainer/components/CollaborationPopup/CollaborationPopup.test.js +183 -122
  32. package/cjs/ConfigureColumnsPopup/ConfigureColumnsPopup.test.js +42 -41
  33. package/cjs/ConfirmDeleteDialog/ConfirmDeleteDialog.test.js +77 -28
  34. package/cjs/ConfirmationDialog/ConfirmationDialog.test.js +85 -48
  35. package/cjs/ConnectionEditor/ConnectionEditor.test.js +299 -282
  36. package/esm/ActionsPanel/ActionsPanel.test.js +133 -49
  37. package/esm/AttributeListItem/AttributeListItem.spec.js +149 -97
  38. package/esm/AttributeSelector/AttributeSelector.specs.js +125 -193
  39. package/esm/AttributesErrorsPanel/AttributesErrorsPanel.specs.js +128 -71
  40. package/esm/AttributesErrorsPanel/components/Error/Error.specs.js +98 -72
  41. package/esm/AttributesErrorsPanel/store.test-data.d.ts +22 -0
  42. package/esm/AttributesErrorsPanel/store.test-data.js +26 -0
  43. package/esm/AttributesFilterSelector/AttributesFilterSelector.test.js +129 -84
  44. package/esm/AttributesFiltersButton/AttributesFiltersButton.test.js +218 -136
  45. package/esm/AttributesValuesEditor/AttributesValuesEditor.test.js +94 -67
  46. package/esm/AttributesView/AttributesView.test.js +67 -34
  47. package/esm/AutoSizeList/AutoSizeList.test.js +81 -59
  48. package/esm/{ActionsPanel/components/MenuItemRenderer/MenuItemRenderer.spec.js → AvatarWithFallback/AvatarWithFallback.test.js} +16 -32
  49. package/esm/BarChart/BarChart.test.js +128 -65
  50. package/esm/BasicAttributeSelector/BasicAttributeSelector.spec.js +27 -10
  51. package/esm/BasicViewContent/BasicViewContent.test.js +7 -9
  52. package/esm/BlobRenderer/BlobRenderer.test.js +28 -9
  53. package/esm/BooleanRadioEditor/BooleanRadioEditor.test.js +89 -35
  54. package/esm/BubbleChart/BubbleChart.test.js +111 -87
  55. package/esm/CloudChart/CloudChart.test.js +95 -36
  56. package/esm/CollaborationItem/CollaborationItem.test.js +67 -30
  57. package/esm/CollaborationItem/components/Comment/Comment.test.js +221 -189
  58. package/esm/CollaborationItem/components/CommentContent/CommentContent.test.js +46 -58
  59. package/esm/CollaborationItem/components/RepliedComment/RepliedComment.test.js +194 -163
  60. package/esm/CollaborationItem/components/SendMessageArea/SendMessageArea.test.js +307 -266
  61. package/esm/CollapseButton/CollapseButton.test.js +74 -15
  62. package/esm/CollapseRowButton/CollapseRowButton.test.js +82 -24
  63. package/esm/ColorBar/ColorBar.test.js +13 -15
  64. package/esm/ColumnsSettings/components/ColumnsSettingsPopup/ColumnsSettingsPopup.spec.js +207 -129
  65. package/esm/CommentsContainer/CommentsContainer.test.js +282 -211
  66. package/esm/CommentsContainer/components/CollaborationPopup/CollaborationPopup.test.js +182 -101
  67. package/esm/ConfigureColumnsPopup/ConfigureColumnsPopup.test.js +42 -41
  68. package/esm/ConfirmDeleteDialog/ConfirmDeleteDialog.test.js +77 -28
  69. package/esm/ConfirmationDialog/ConfirmationDialog.test.js +85 -48
  70. package/esm/ConnectionEditor/ConnectionEditor.test.js +300 -283
  71. package/package.json +1 -1
  72. package/cjs/AttributesErrorsPanel/components/ErrorsPanel/ErrorsPanel.specs.js +0 -100
  73. package/cjs/AttributesFiltersButton/components/ActionButtons/ActionButtons.test.d.ts +0 -1
  74. package/cjs/AttributesFiltersButton/components/ActionButtons/ActionButtons.test.js +0 -46
  75. package/cjs/AvatarWithFallback/AvatarWithFallback.specs.d.ts +0 -1
  76. package/cjs/AvatarWithFallback/AvatarWithFallback.specs.js +0 -27
  77. package/cjs/BooleanRadioEditor/components/BooleanEditor/BooleanEditor.test.d.ts +0 -1
  78. package/cjs/BooleanRadioEditor/components/BooleanEditor/BooleanEditor.test.js +0 -27
  79. package/cjs/CollaborationItem/components/Avatar/Avatar.test.d.ts +0 -1
  80. package/cjs/CollaborationItem/components/Avatar/Avatar.test.js +0 -15
  81. package/cjs/CollaborationItem/components/TextFieldWithMentions/TextFieldWithMentions.test.d.ts +0 -1
  82. package/cjs/CollaborationItem/components/TextFieldWithMentions/TextFieldWithMentions.test.js +0 -80
  83. package/esm/ActionsPanel/components/MenuItemRenderer/MenuItemRenderer.spec.d.ts +0 -1
  84. package/esm/AttributesErrorsPanel/components/ErrorsPanel/ErrorsPanel.specs.d.ts +0 -1
  85. package/esm/AttributesErrorsPanel/components/ErrorsPanel/ErrorsPanel.specs.js +0 -95
  86. package/esm/AttributesFiltersButton/components/ActionButtons/ActionButtons.test.d.ts +0 -1
  87. package/esm/AttributesFiltersButton/components/ActionButtons/ActionButtons.test.js +0 -41
  88. package/esm/AvatarWithFallback/AvatarWithFallback.specs.d.ts +0 -1
  89. package/esm/AvatarWithFallback/AvatarWithFallback.specs.js +0 -22
  90. package/esm/BooleanRadioEditor/components/BooleanEditor/BooleanEditor.test.d.ts +0 -1
  91. package/esm/BooleanRadioEditor/components/BooleanEditor/BooleanEditor.test.js +0 -22
  92. package/esm/CollaborationItem/components/Avatar/Avatar.test.d.ts +0 -1
  93. package/esm/CollaborationItem/components/Avatar/Avatar.test.js +0 -10
  94. package/esm/CollaborationItem/components/TextFieldWithMentions/TextFieldWithMentions.test.d.ts +0 -1
  95. package/esm/CollaborationItem/components/TextFieldWithMentions/TextFieldWithMentions.test.js +0 -55
  96. /package/cjs/{ActionsPanel/components/MenuItemRenderer/MenuItemRenderer.spec.d.ts → AvatarWithFallback/AvatarWithFallback.test.d.ts} +0 -0
  97. /package/{cjs/AttributesErrorsPanel/components/ErrorsPanel/ErrorsPanel.specs.d.ts → esm/AvatarWithFallback/AvatarWithFallback.test.d.ts} +0 -0
@@ -9,6 +9,42 @@ var __assign = (this && this.__assign) || function () {
9
9
  };
10
10
  return __assign.apply(this, arguments);
11
11
  };
12
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
13
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
14
+ return new (P || (P = Promise))(function (resolve, reject) {
15
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
16
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
17
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
18
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
19
+ });
20
+ };
21
+ var __generator = (this && this.__generator) || function (thisArg, body) {
22
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
23
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
24
+ function verb(n) { return function (v) { return step([n, v]); }; }
25
+ function step(op) {
26
+ if (f) throw new TypeError("Generator is already executing.");
27
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
28
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
29
+ if (y = 0, t) op = [op[0] & 2, t.value];
30
+ switch (op[0]) {
31
+ case 0: case 1: t = op; break;
32
+ case 4: _.label++; return { value: op[1], done: false };
33
+ case 5: _.label++; y = op[1]; op = [0]; continue;
34
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
35
+ default:
36
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
37
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
38
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
39
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
40
+ if (t[2]) _.ops.pop();
41
+ _.trys.pop(); continue;
42
+ }
43
+ op = body.call(thisArg, _);
44
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
45
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
46
+ }
47
+ };
12
48
  var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
13
49
  if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
14
50
  if (ar || !(i in from)) {
@@ -19,113 +55,148 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
19
55
  return to.concat(ar || Array.prototype.slice.call(from));
20
56
  };
21
57
  import React from 'react';
22
- import { mount } from 'enzyme';
23
- import { act } from 'react-dom/test-utils';
24
- import Checkbox from '@mui/material/Checkbox';
25
- import MenuItem from '@mui/material/MenuItem';
26
- import { SelectionPopup } from '../../../SelectionPopup';
27
58
  import { ColumnsSettingsPopup } from './ColumnsSettingsPopup';
28
- import { AttributeListItem } from '../../../AttributeListItem';
29
59
  import { DataTypes } from '@reltio/mdm-sdk';
30
- describe('ColumnsSettingsPopup', function () {
31
- var getColumnsPopup = function (wrapper) { return wrapper.find(SelectionPopup); };
32
- var getColumnItems = function (wrapper) { return wrapper.find(MenuItem); };
33
- beforeEach(function () {
60
+ import userEvent from '@testing-library/user-event';
61
+ import { render, screen, within } from '@testing-library/react';
62
+ describe('ColumnsSettingsPopup tests', function () {
63
+ var columnsData = [
64
+ {
65
+ id: '1',
66
+ label: 'nest',
67
+ dataTypeDefinition: {
68
+ type: DataTypes.TYPE_NESTED
69
+ }
70
+ },
71
+ {
72
+ id: '1.2',
73
+ label: 'nested.number',
74
+ dataTypeDefinition: {
75
+ type: DataTypes.TYPE_NUMBER
76
+ }
77
+ },
78
+ {
79
+ id: '3',
80
+ label: 'date',
81
+ dataTypeDefinition: {
82
+ type: DataTypes.TYPE_DATE
83
+ }
84
+ },
85
+ {
86
+ id: '11',
87
+ label: 'Just simple with id starts as nested id',
88
+ dataTypeDefinition: {
89
+ type: DataTypes.TYPE_STRING
90
+ }
91
+ }
92
+ ];
93
+ var onColumnClick = jest.fn();
94
+ var onClose = jest.fn();
95
+ var defaultProps = {
96
+ columnsData: columnsData,
97
+ selectedColumns: [],
98
+ onColumnClick: onColumnClick,
99
+ onClose: onClose,
100
+ anchorEl: document.body
101
+ };
102
+ var setUp = function (props) {
103
+ if (props === void 0) { props = defaultProps; }
104
+ var user = userEvent.setup();
105
+ return __assign({ user: user }, render(React.createElement(ColumnsSettingsPopup, __assign({}, props))));
106
+ };
107
+ afterEach(function () {
34
108
  jest.clearAllMocks();
35
109
  });
36
110
  describe('plain columns data behavior', function () {
37
- var columnsData = [
38
- {
39
- id: '1',
40
- label: 'nest',
41
- dataTypeDefinition: {
42
- type: DataTypes.TYPE_NESTED
111
+ it('should open columns popup on if anchorEl exist and call on close on press tab', function () { return __awaiter(void 0, void 0, void 0, function () {
112
+ var user;
113
+ return __generator(this, function (_a) {
114
+ switch (_a.label) {
115
+ case 0:
116
+ user = setUp().user;
117
+ expect(screen.getAllByRole('menuitem')).toHaveLength(columnsData.length);
118
+ expect(onClose).not.toHaveBeenCalled();
119
+ return [4 /*yield*/, user.keyboard('{Tab}')];
120
+ case 1:
121
+ _a.sent();
122
+ expect(onClose).toHaveBeenCalled();
123
+ return [2 /*return*/];
43
124
  }
44
- },
45
- {
46
- id: '1.2',
47
- label: 'nested.number',
48
- dataTypeDefinition: {
49
- type: DataTypes.TYPE_NUMBER
50
- }
51
- },
52
- {
53
- id: '3',
54
- label: 'date',
55
- dataTypeDefinition: {
56
- type: DataTypes.TYPE_DATE
125
+ });
126
+ }); });
127
+ it('should call props.onColumnClick correctly on column click', function () { return __awaiter(void 0, void 0, void 0, function () {
128
+ var user;
129
+ return __generator(this, function (_a) {
130
+ switch (_a.label) {
131
+ case 0:
132
+ user = setUp().user;
133
+ return [4 /*yield*/, user.click(screen.getByRole('menuitem', { name: columnsData[2].label }))];
134
+ case 1:
135
+ _a.sent();
136
+ expect(onColumnClick.mock.calls[0][0]).toMatchObject({ id: columnsData[2].id });
137
+ return [2 /*return*/];
57
138
  }
58
- },
59
- {
60
- id: '11',
61
- label: 'Just simple with id starts as nested id',
62
- dataTypeDefinition: {
63
- type: DataTypes.TYPE_STRING
139
+ });
140
+ }); });
141
+ it('should call props.onColumnClick correctly on parent column click', function () { return __awaiter(void 0, void 0, void 0, function () {
142
+ var user;
143
+ return __generator(this, function (_a) {
144
+ switch (_a.label) {
145
+ case 0:
146
+ user = setUp().user;
147
+ return [4 /*yield*/, user.click(screen.getByRole('menuitem', { name: columnsData[0].label }))];
148
+ case 1:
149
+ _a.sent();
150
+ expect(onColumnClick.mock.calls[0][0]).toMatchObject({ id: columnsData[0].id });
151
+ expect(onClose).not.toHaveBeenCalled();
152
+ return [2 /*return*/];
64
153
  }
65
- }
66
- ];
67
- var props = {
68
- columnsData: columnsData,
69
- selectedColumns: [],
70
- onColumnClick: jest.fn(),
71
- onClose: jest.fn(),
72
- anchorEl: {}
73
- };
74
- it('should open columns popup on button click and close on click away', function () {
75
- var wrapper = mount(React.createElement(ColumnsSettingsPopup, __assign({}, props)));
76
- var columnsPopup = getColumnsPopup(wrapper);
77
- expect(columnsPopup.prop('open')).toBe(true);
78
- act(function () {
79
- columnsPopup.prop('onClose')();
80
154
  });
81
- expect(props.onClose).toHaveBeenCalled();
155
+ }); });
156
+ it('should show selected icon for parent node if all chidlren selected', function () {
157
+ setUp(__assign(__assign({}, defaultProps), { selectedColumns: ['1.2'] }));
158
+ expect(within(screen.getByRole('menuitem', { name: columnsData[0].label })).getByRole('checkbox')).toBeChecked();
82
159
  });
83
- it('should call props.onColumnClick correctly on column click', function () {
84
- var wrapper = mount(React.createElement(ColumnsSettingsPopup, __assign({}, props)));
85
- getColumnItems(wrapper).at(2).find('div').at(0).simulate('click');
86
- expect(props.onColumnClick.mock.calls[0][0]).toMatchObject({ id: columnsData[2].id });
87
- });
88
- it('should call props.onColumnClick correctly on parent column click', function () {
89
- var wrapper = mount(React.createElement(ColumnsSettingsPopup, __assign({}, props)));
90
- getColumnItems(wrapper).at(0).find('div').at(0).simulate('click');
91
- expect(props.onColumnClick.mock.calls[0][0]).toMatchObject({ id: columnsData[0].id });
92
- expect(wrapper.find(AttributeListItem).at(0).prop('hideCheckBox')).toBeFalsy();
93
- expect(props.onClose).not.toHaveBeenCalled();
94
- wrapper.setProps({ selectedColumns: ['1.2'] });
95
- expect(getColumnItems(wrapper).at(0).find(Checkbox).prop('checked')).toBe(true);
96
- });
97
- it('should call props.onColumnClick correctly on parent column click and call on close with hidden checkboxes', function () {
98
- var wrapper = mount(React.createElement(ColumnsSettingsPopup, __assign({ hideCheckBox: true }, props)));
99
- expect(wrapper.find(AttributeListItem).at(1).prop('hideCheckBox')).toBeTruthy();
100
- expect(getColumnItems(wrapper).at(1).find(Checkbox)).toHaveLength(0);
101
- getColumnItems(wrapper).at(1).find('div').at(0).simulate('click');
102
- expect(props.onColumnClick.mock.calls[0][0]).toMatchObject({ id: columnsData[1].id });
103
- expect(props.onClose).toHaveBeenCalled();
104
- });
105
- it('should filter columns by label on search input change', function () {
106
- var wrapper = mount(React.createElement(ColumnsSettingsPopup, __assign({}, props)));
107
- act(function () {
108
- getColumnsPopup(wrapper).prop('onSearch')('nested');
160
+ it('should call props.onColumnClick correctly on column click and call on close with hidden checkboxes', function () { return __awaiter(void 0, void 0, void 0, function () {
161
+ var user;
162
+ return __generator(this, function (_a) {
163
+ switch (_a.label) {
164
+ case 0:
165
+ user = setUp(__assign(__assign({}, defaultProps), { hideCheckBox: true })).user;
166
+ return [4 /*yield*/, user.click(screen.getByRole('menuitem', { name: columnsData[1].label }))];
167
+ case 1:
168
+ _a.sent();
169
+ expect(onColumnClick.mock.calls[0][0]).toMatchObject({ id: columnsData[1].id });
170
+ expect(onClose).toHaveBeenCalled();
171
+ return [2 /*return*/];
172
+ }
109
173
  });
110
- wrapper.update();
111
- var columnItems = getColumnItems(wrapper);
112
- expect(columnItems).toHaveLength(3);
113
- expect(columnItems.at(0).text()).toBe('nest');
114
- expect(columnItems.at(1).text()).toBe('nested.number');
115
- expect(columnItems.at(2).text()).toBe('Just simple with id starts as nested id');
116
- });
174
+ }); });
175
+ it('should filter columns by label on search input change', function () { return __awaiter(void 0, void 0, void 0, function () {
176
+ var user, menuItems;
177
+ return __generator(this, function (_a) {
178
+ switch (_a.label) {
179
+ case 0:
180
+ user = setUp().user;
181
+ return [4 /*yield*/, user.type(screen.getByPlaceholderText('Search & add attributes'), 'nested')];
182
+ case 1:
183
+ _a.sent();
184
+ menuItems = screen.getAllByRole('menuitem');
185
+ expect(menuItems[0]).toHaveTextContent('nest');
186
+ expect(menuItems[1]).toHaveTextContent('nested.number');
187
+ expect(menuItems[2]).toHaveTextContent('Just simple with id starts as nested id');
188
+ return [2 /*return*/];
189
+ }
190
+ });
191
+ }); });
117
192
  it('should show only hideable columns', function () {
118
193
  var nonHideableColumn = { id: 'NonHideable', hideable: false, label: '' };
119
- var wrapper = mount(React.createElement(ColumnsSettingsPopup, __assign({}, props, { columnsData: __spreadArray(__spreadArray([], columnsData, true), [nonHideableColumn], false) })));
120
- var columnItems = getColumnItems(wrapper);
121
- expect(columnItems.length).toEqual(props.columnsData.length);
122
- columnItems.forEach(function (item, index) {
123
- expect(item.text()).toEqual(props.columnsData[index].label);
124
- });
194
+ setUp(__assign(__assign({}, defaultProps), { columnsData: __spreadArray(__spreadArray([], columnsData, true), [nonHideableColumn], false) }));
195
+ expect(screen.getAllByRole('menuitem')).toHaveLength(columnsData.length);
125
196
  });
126
197
  });
127
198
  describe('grouped columns data behavior', function () {
128
- var columnsData = [
199
+ var groupedColumnsData = [
129
200
  {
130
201
  id: 'group1',
131
202
  label: 'Group1',
@@ -174,48 +245,55 @@ describe('ColumnsSettingsPopup', function () {
174
245
  ]
175
246
  }
176
247
  ];
177
- var props = {
178
- columnsData: columnsData,
179
- selectedColumns: [],
180
- onColumnClick: jest.fn(),
181
- onClose: jest.fn(),
182
- anchorEl: {}
183
- };
184
- beforeEach(function () {
185
- jest.clearAllMocks();
186
- });
187
248
  it('should render items correctly', function () {
188
- var wrapper = mount(React.createElement(ColumnsSettingsPopup, __assign({}, props)));
189
- var columnItems = getColumnItems(wrapper);
249
+ setUp(__assign(__assign({}, defaultProps), { columnsData: groupedColumnsData }));
250
+ var columnItems = screen.getAllByRole('menuitem');
190
251
  expect(columnItems).toHaveLength(7);
191
- expect(columnItems.at(0).text()).toBe('Group1');
192
- expect(columnItems.at(1).text()).toBe('nest');
193
- expect(columnItems.at(2).text()).toBe('nested.number');
194
- expect(columnItems.at(3).text()).toBe('column 4');
195
- expect(columnItems.at(4).text()).toBe('Group2');
196
- expect(columnItems.at(5).text()).toBe('date');
197
- expect(columnItems.at(6).text()).toBe('Just simple with id starts as nested id');
252
+ expect(columnItems[0]).toHaveTextContent('Group1');
253
+ expect(columnItems[1]).toHaveTextContent('nest');
254
+ expect(columnItems[2]).toHaveTextContent('nested.number');
255
+ expect(columnItems[3]).toHaveTextContent('column 4');
256
+ expect(columnItems[4]).toHaveTextContent('Group2');
257
+ expect(columnItems[5]).toHaveTextContent('date');
258
+ expect(columnItems[6]).toHaveTextContent('Just simple with id starts as nested id');
198
259
  });
199
- it('should call props.onChangeColumns correctly on group column click', function () {
200
- var wrapper = mount(React.createElement(ColumnsSettingsPopup, __assign({}, props)));
201
- getColumnItems(wrapper).at(0).find('div').at(0).simulate('click');
202
- expect(props.onColumnClick.mock.calls[0][0]).toMatchObject({ id: columnsData[0].id });
203
- wrapper.setProps({ selectedColumns: ['1.2', '4'] });
204
- expect(getColumnItems(wrapper).at(0).find(Checkbox).prop('checked')).toBe(true);
205
- });
206
- it('should filter columns by label on search input change', function () {
207
- var wrapper = mount(React.createElement(ColumnsSettingsPopup, __assign({}, props)));
208
- act(function () {
209
- getColumnsPopup(wrapper).prop('onSearch')('nested');
260
+ it('should call props.onColumnClick correctly on group column click', function () { return __awaiter(void 0, void 0, void 0, function () {
261
+ var user;
262
+ return __generator(this, function (_a) {
263
+ switch (_a.label) {
264
+ case 0:
265
+ user = setUp(__assign(__assign({}, defaultProps), { columnsData: groupedColumnsData })).user;
266
+ return [4 /*yield*/, user.click(screen.getByRole('menuitem', { name: groupedColumnsData[0].columns[0].label }))];
267
+ case 1:
268
+ _a.sent();
269
+ expect(onColumnClick.mock.calls[0][0]).toMatchObject({ id: groupedColumnsData[0].columns[0].id });
270
+ expect(onClose).not.toHaveBeenCalled();
271
+ return [2 /*return*/];
272
+ }
210
273
  });
211
- wrapper.update();
212
- var columnItems = getColumnItems(wrapper);
213
- expect(columnItems).toHaveLength(5);
214
- expect(columnItems.at(0).text()).toBe('Group1');
215
- expect(columnItems.at(1).text()).toBe('nest');
216
- expect(columnItems.at(2).text()).toBe('nested.number');
217
- expect(columnItems.at(3).text()).toBe('Group2');
218
- expect(columnItems.at(4).text()).toBe('Just simple with id starts as nested id');
274
+ }); });
275
+ it('should show selected icon for parent node if all chidlren selected', function () {
276
+ setUp(__assign(__assign({}, defaultProps), { columnsData: groupedColumnsData, selectedColumns: ['1.2', '4'] }));
277
+ expect(within(screen.getByRole('menuitem', { name: groupedColumnsData[0].columns[0].label })).getByRole('checkbox')).toBeChecked();
219
278
  });
279
+ it('should filter columns by label on search input change', function () { return __awaiter(void 0, void 0, void 0, function () {
280
+ var user, menuItems;
281
+ return __generator(this, function (_a) {
282
+ switch (_a.label) {
283
+ case 0:
284
+ user = setUp(__assign(__assign({}, defaultProps), { columnsData: groupedColumnsData })).user;
285
+ return [4 /*yield*/, user.type(screen.getByPlaceholderText('Search & add attributes'), 'nested')];
286
+ case 1:
287
+ _a.sent();
288
+ menuItems = screen.getAllByRole('menuitem');
289
+ expect(menuItems[0]).toHaveTextContent('Group1');
290
+ expect(menuItems[1]).toHaveTextContent('nest');
291
+ expect(menuItems[2]).toHaveTextContent('nested.number');
292
+ expect(menuItems[3]).toHaveTextContent('Group2');
293
+ expect(menuItems[4]).toHaveTextContent('Just simple with id starts as nested id');
294
+ return [2 /*return*/];
295
+ }
296
+ });
297
+ }); });
220
298
  });
221
299
  });