@reltio/components 1.4.1905 → 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 (105) 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/cjs/ConnectionRelationTypeSelector/ConnectionRelationTypeSelector.d.ts +3 -1
  37. package/cjs/ReactSortableTree/ReactSortableTree.js +2 -7
  38. package/cjs/RelationTypeSelector/RelationTypeSelector.d.ts +3 -1
  39. package/cjs/types/index.d.ts +1 -1
  40. package/esm/ActionsPanel/ActionsPanel.test.js +133 -49
  41. package/esm/AttributeListItem/AttributeListItem.spec.js +149 -97
  42. package/esm/AttributeSelector/AttributeSelector.specs.js +125 -193
  43. package/esm/AttributesErrorsPanel/AttributesErrorsPanel.specs.js +128 -71
  44. package/esm/AttributesErrorsPanel/components/Error/Error.specs.js +98 -72
  45. package/esm/AttributesErrorsPanel/store.test-data.d.ts +22 -0
  46. package/esm/AttributesErrorsPanel/store.test-data.js +26 -0
  47. package/esm/AttributesFilterSelector/AttributesFilterSelector.test.js +129 -84
  48. package/esm/AttributesFiltersButton/AttributesFiltersButton.test.js +218 -136
  49. package/esm/AttributesValuesEditor/AttributesValuesEditor.test.js +94 -67
  50. package/esm/AttributesView/AttributesView.test.js +67 -34
  51. package/esm/AutoSizeList/AutoSizeList.test.js +81 -59
  52. package/esm/{ActionsPanel/components/MenuItemRenderer/MenuItemRenderer.spec.js → AvatarWithFallback/AvatarWithFallback.test.js} +16 -32
  53. package/esm/BarChart/BarChart.test.js +128 -65
  54. package/esm/BasicAttributeSelector/BasicAttributeSelector.spec.js +27 -10
  55. package/esm/BasicViewContent/BasicViewContent.test.js +7 -9
  56. package/esm/BlobRenderer/BlobRenderer.test.js +28 -9
  57. package/esm/BooleanRadioEditor/BooleanRadioEditor.test.js +89 -35
  58. package/esm/BubbleChart/BubbleChart.test.js +111 -87
  59. package/esm/CloudChart/CloudChart.test.js +95 -36
  60. package/esm/CollaborationItem/CollaborationItem.test.js +67 -30
  61. package/esm/CollaborationItem/components/Comment/Comment.test.js +221 -189
  62. package/esm/CollaborationItem/components/CommentContent/CommentContent.test.js +46 -58
  63. package/esm/CollaborationItem/components/RepliedComment/RepliedComment.test.js +194 -163
  64. package/esm/CollaborationItem/components/SendMessageArea/SendMessageArea.test.js +307 -266
  65. package/esm/CollapseButton/CollapseButton.test.js +74 -15
  66. package/esm/CollapseRowButton/CollapseRowButton.test.js +82 -24
  67. package/esm/ColorBar/ColorBar.test.js +13 -15
  68. package/esm/ColumnsSettings/components/ColumnsSettingsPopup/ColumnsSettingsPopup.spec.js +207 -129
  69. package/esm/CommentsContainer/CommentsContainer.test.js +282 -211
  70. package/esm/CommentsContainer/components/CollaborationPopup/CollaborationPopup.test.js +182 -101
  71. package/esm/ConfigureColumnsPopup/ConfigureColumnsPopup.test.js +42 -41
  72. package/esm/ConfirmDeleteDialog/ConfirmDeleteDialog.test.js +77 -28
  73. package/esm/ConfirmationDialog/ConfirmationDialog.test.js +85 -48
  74. package/esm/ConnectionEditor/ConnectionEditor.test.js +300 -283
  75. package/esm/ConnectionRelationTypeSelector/ConnectionRelationTypeSelector.d.ts +3 -1
  76. package/esm/ReactSortableTree/ReactSortableTree.js +2 -7
  77. package/esm/RelationTypeSelector/RelationTypeSelector.d.ts +3 -1
  78. package/esm/types/index.d.ts +1 -1
  79. package/package.json +2 -2
  80. package/cjs/AttributesErrorsPanel/components/ErrorsPanel/ErrorsPanel.specs.js +0 -100
  81. package/cjs/AttributesFiltersButton/components/ActionButtons/ActionButtons.test.d.ts +0 -1
  82. package/cjs/AttributesFiltersButton/components/ActionButtons/ActionButtons.test.js +0 -46
  83. package/cjs/AvatarWithFallback/AvatarWithFallback.specs.d.ts +0 -1
  84. package/cjs/AvatarWithFallback/AvatarWithFallback.specs.js +0 -27
  85. package/cjs/BooleanRadioEditor/components/BooleanEditor/BooleanEditor.test.d.ts +0 -1
  86. package/cjs/BooleanRadioEditor/components/BooleanEditor/BooleanEditor.test.js +0 -27
  87. package/cjs/CollaborationItem/components/Avatar/Avatar.test.d.ts +0 -1
  88. package/cjs/CollaborationItem/components/Avatar/Avatar.test.js +0 -15
  89. package/cjs/CollaborationItem/components/TextFieldWithMentions/TextFieldWithMentions.test.d.ts +0 -1
  90. package/cjs/CollaborationItem/components/TextFieldWithMentions/TextFieldWithMentions.test.js +0 -80
  91. package/esm/ActionsPanel/components/MenuItemRenderer/MenuItemRenderer.spec.d.ts +0 -1
  92. package/esm/AttributesErrorsPanel/components/ErrorsPanel/ErrorsPanel.specs.d.ts +0 -1
  93. package/esm/AttributesErrorsPanel/components/ErrorsPanel/ErrorsPanel.specs.js +0 -95
  94. package/esm/AttributesFiltersButton/components/ActionButtons/ActionButtons.test.d.ts +0 -1
  95. package/esm/AttributesFiltersButton/components/ActionButtons/ActionButtons.test.js +0 -41
  96. package/esm/AvatarWithFallback/AvatarWithFallback.specs.d.ts +0 -1
  97. package/esm/AvatarWithFallback/AvatarWithFallback.specs.js +0 -22
  98. package/esm/BooleanRadioEditor/components/BooleanEditor/BooleanEditor.test.d.ts +0 -1
  99. package/esm/BooleanRadioEditor/components/BooleanEditor/BooleanEditor.test.js +0 -22
  100. package/esm/CollaborationItem/components/Avatar/Avatar.test.d.ts +0 -1
  101. package/esm/CollaborationItem/components/Avatar/Avatar.test.js +0 -10
  102. package/esm/CollaborationItem/components/TextFieldWithMentions/TextFieldWithMentions.test.d.ts +0 -1
  103. package/esm/CollaborationItem/components/TextFieldWithMentions/TextFieldWithMentions.test.js +0 -55
  104. /package/cjs/{ActionsPanel/components/MenuItemRenderer/MenuItemRenderer.spec.d.ts → AvatarWithFallback/AvatarWithFallback.test.d.ts} +0 -0
  105. /package/{cjs/AttributesErrorsPanel/components/ErrorsPanel/ErrorsPanel.specs.d.ts → esm/AvatarWithFallback/AvatarWithFallback.test.d.ts} +0 -0
@@ -10,76 +10,160 @@ var __assign = (this && this.__assign) || function () {
10
10
  };
11
11
  return __assign.apply(this, arguments);
12
12
  };
13
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
14
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
15
+ return new (P || (P = Promise))(function (resolve, reject) {
16
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
17
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
18
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
19
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
20
+ });
21
+ };
22
+ var __generator = (this && this.__generator) || function (thisArg, body) {
23
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
24
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
25
+ function verb(n) { return function (v) { return step([n, v]); }; }
26
+ function step(op) {
27
+ if (f) throw new TypeError("Generator is already executing.");
28
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
29
+ 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;
30
+ if (y = 0, t) op = [op[0] & 2, t.value];
31
+ switch (op[0]) {
32
+ case 0: case 1: t = op; break;
33
+ case 4: _.label++; return { value: op[1], done: false };
34
+ case 5: _.label++; y = op[1]; op = [0]; continue;
35
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
36
+ default:
37
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
38
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
39
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
40
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
41
+ if (t[2]) _.ops.pop();
42
+ _.trys.pop(); continue;
43
+ }
44
+ op = body.call(thisArg, _);
45
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
46
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
47
+ }
48
+ };
13
49
  var __importDefault = (this && this.__importDefault) || function (mod) {
14
50
  return (mod && mod.__esModule) ? mod : { "default": mod };
15
51
  };
16
52
  Object.defineProperty(exports, "__esModule", { value: true });
17
53
  var react_1 = __importDefault(require("react"));
18
- var ramda_1 = require("ramda");
19
- var enzyme_1 = require("enzyme");
20
54
  var ActionsPanel_1 = require("./ActionsPanel");
21
- var DropDownMenuButton_1 = require("../DropDownMenuButton");
55
+ var react_2 = require("@testing-library/react");
56
+ var user_event_1 = __importDefault(require("@testing-library/user-event"));
22
57
  describe('ActionsPanel tests', function () {
23
- var MergeButton = function () { return react_1.default.createElement("div", null); };
58
+ var MergeButton = function (_a) {
59
+ var mode = _a.mode, onMenuClose = _a.onMenuClose;
60
+ return (react_1.default.createElement("button", { "data-reltio-id": "testButton", "data-mode": mode, onClick: onMenuClose }));
61
+ };
24
62
  var actions = [
25
- { ActionButton: MergeButton, test: 'test', show: true },
26
- { ActionButton: MergeButton, test: 'test 2' },
27
- { ActionButton: MergeButton, test: 'test 3' },
28
- { ActionButton: MergeButton, test: 'test 4', show: false }
63
+ { ActionButton: MergeButton, show: true },
64
+ { ActionButton: MergeButton },
65
+ { ActionButton: MergeButton },
66
+ { ActionButton: MergeButton, show: false }
29
67
  ];
68
+ var setUp = function (props) {
69
+ if (props === void 0) { props = { actions: actions }; }
70
+ var user = user_event_1.default.setup();
71
+ return __assign({ user: user }, (0, react_2.render)(react_1.default.createElement(ActionsPanel_1.ActionsPanel, __assign({}, props))));
72
+ };
30
73
  it('should render main parts', function () {
31
- var component = (0, enzyme_1.shallow)(react_1.default.createElement(ActionsPanel_1.ActionsPanel, { actions: actions }));
32
- expect(component.find(MergeButton)).toHaveLength(2);
33
- expect(component.find(DropDownMenuButton_1.DropDownMenuButton)).toHaveLength(1);
74
+ setUp();
75
+ expect(react_2.screen.getAllByTestId('testButton')).toHaveLength(2);
76
+ expect(react_2.screen.getByLabelText('More actions')).toBeInTheDocument();
34
77
  });
35
78
  it('should render empty panel if actions is empty array', function () {
36
- var component = (0, enzyme_1.shallow)(react_1.default.createElement(ActionsPanel_1.ActionsPanel, { actions: [] }));
37
- expect(component.find(MergeButton)).toHaveLength(0);
38
- expect(component.find(DropDownMenuButton_1.DropDownMenuButton)).toHaveLength(0);
79
+ setUp({ actions: [] });
80
+ expect(react_2.screen.queryByTestId('testButton')).not.toBeInTheDocument();
81
+ expect(react_2.screen.queryByLabelText('More actions')).not.toBeInTheDocument();
39
82
  });
40
83
  it('should not render DropDownMenuButton if length of actions <= numberOfButtons', function () {
41
- var component = (0, enzyme_1.shallow)(react_1.default.createElement(ActionsPanel_1.ActionsPanel, { actions: actions, numberOfButtons: actions.length }));
42
- expect(component.find(MergeButton)).toHaveLength(3);
43
- expect(component.find(DropDownMenuButton_1.DropDownMenuButton)).toHaveLength(0);
84
+ setUp({ actions: actions, numberOfButtons: actions.length });
85
+ expect(react_2.screen.getAllByTestId('testButton')).toHaveLength(3);
86
+ expect(react_2.screen.queryByLabelText('More actions')).not.toBeInTheDocument();
44
87
  });
45
88
  it('should render numberOfButtons action button from actions', function () {
46
- var numberOfButtons = 1;
47
- var component = (0, enzyme_1.shallow)(react_1.default.createElement(ActionsPanel_1.ActionsPanel, { actions: actions, numberOfButtons: numberOfButtons }));
48
- expect(component.find(MergeButton)).toHaveLength(numberOfButtons);
49
- expect(component.find(DropDownMenuButton_1.DropDownMenuButton)).toHaveLength(1);
89
+ setUp({ actions: actions, numberOfButtons: 1 });
90
+ expect(react_2.screen.queryByTestId('testButton')).toBeInTheDocument();
91
+ expect(react_2.screen.queryByLabelText('More actions')).toBeInTheDocument();
50
92
  });
51
- it('should render ActionButton with correct props if mode is normal', function () {
52
- var onActionsMenuOpen = jest.fn();
53
- var onActionsMenuClose = jest.fn();
54
- var component = (0, enzyme_1.shallow)(react_1.default.createElement(ActionsPanel_1.ActionsPanel, { actions: actions, mode: "normal", onActionsMenuOpen: onActionsMenuOpen, onActionsMenuClose: onActionsMenuClose }));
55
- var buttons = component.find(MergeButton);
56
- expect(buttons).toHaveLength(2);
57
- buttons.map(function (button, index) {
58
- expect(button.props()).toMatchObject(__assign({ mode: 'button' }, (0, ramda_1.omit)(['ActionButton', 'show'], actions[index])));
93
+ it('should call onActionsMenuOpen, onActionsMenuClose ', function () { return __awaiter(void 0, void 0, void 0, function () {
94
+ var onActionsMenuOpenSpy, onActionsMenuCloseSpy, user;
95
+ return __generator(this, function (_a) {
96
+ switch (_a.label) {
97
+ case 0:
98
+ onActionsMenuOpenSpy = jest.fn();
99
+ onActionsMenuCloseSpy = jest.fn();
100
+ user = setUp({
101
+ actions: actions,
102
+ onActionsMenuClose: onActionsMenuCloseSpy,
103
+ onActionsMenuOpen: onActionsMenuOpenSpy
104
+ }).user;
105
+ return [4 /*yield*/, user.click(react_2.screen.getByLabelText('More actions'))];
106
+ case 1:
107
+ _a.sent();
108
+ expect(onActionsMenuOpenSpy).toHaveBeenCalled();
109
+ return [4 /*yield*/, user.click(react_2.screen.getByLabelText('More actions'))];
110
+ case 2:
111
+ _a.sent();
112
+ expect(onActionsMenuCloseSpy).toHaveBeenCalled();
113
+ return [2 /*return*/];
114
+ }
59
115
  });
60
- var dropDownMenuButton = component.find(DropDownMenuButton_1.DropDownMenuButton);
61
- expect(dropDownMenuButton).toHaveLength(1);
62
- expect(dropDownMenuButton.props()).toMatchObject({
63
- menuItems: [actions[2]],
64
- onMenuOpen: onActionsMenuOpen,
65
- onMenuClose: onActionsMenuClose
116
+ }); });
117
+ it('should render buttons for default mode', function () {
118
+ setUp();
119
+ var buttons = react_2.screen.getAllByTestId('testButton');
120
+ expect(buttons).toHaveLength(2);
121
+ buttons.forEach(function (button) {
122
+ expect(button).toHaveAttribute('data-mode', 'button');
66
123
  });
67
124
  });
68
- it('should render ActionButton with correct props if mode is hover', function () {
69
- var onActionsMenuOpen = jest.fn();
70
- var onActionsMenuClose = jest.fn();
71
- var component = (0, enzyme_1.shallow)(react_1.default.createElement(ActionsPanel_1.ActionsPanel, { actions: actions, mode: "hover", onActionsMenuOpen: onActionsMenuOpen, onActionsMenuClose: onActionsMenuClose }));
72
- var buttons = component.find(MergeButton);
125
+ it('should render buttons for hover mode', function () {
126
+ setUp({ actions: actions, mode: 'hover' });
127
+ var buttons = react_2.screen.getAllByTestId('testButton');
73
128
  expect(buttons).toHaveLength(2);
74
- buttons.map(function (button, index) {
75
- expect(button.props()).toMatchObject(__assign({ mode: 'iconButton' }, (0, ramda_1.omit)(['ActionButton', 'show'], actions[index])));
76
- });
77
- var dropDownMenuButton = component.find(DropDownMenuButton_1.DropDownMenuButton);
78
- expect(dropDownMenuButton).toHaveLength(1);
79
- expect(dropDownMenuButton.props()).toMatchObject({
80
- menuItems: [actions[2]],
81
- onMenuOpen: onActionsMenuOpen,
82
- onMenuClose: onActionsMenuClose
129
+ buttons.forEach(function (button) {
130
+ expect(button).toHaveAttribute('data-mode', 'iconButton');
83
131
  });
84
132
  });
133
+ describe('menu item tests', function () {
134
+ it('should call onActionsMenuClose from menu item', function () { return __awaiter(void 0, void 0, void 0, function () {
135
+ var onActionsMenuCloseSpy, user, menu;
136
+ return __generator(this, function (_a) {
137
+ switch (_a.label) {
138
+ case 0:
139
+ onActionsMenuCloseSpy = jest.fn();
140
+ user = setUp({ actions: actions, onActionsMenuClose: onActionsMenuCloseSpy }).user;
141
+ return [4 /*yield*/, user.click(react_2.screen.getByLabelText('More actions'))];
142
+ case 1:
143
+ _a.sent();
144
+ menu = react_2.screen.getByRole('menu');
145
+ return [4 /*yield*/, user.click((0, react_2.within)(menu).getByRole('button'))];
146
+ case 2:
147
+ _a.sent();
148
+ expect(onActionsMenuCloseSpy).toHaveBeenCalled();
149
+ return [2 /*return*/];
150
+ }
151
+ });
152
+ }); });
153
+ it('should render menu button with correct mode', function () { return __awaiter(void 0, void 0, void 0, function () {
154
+ var user, menuButton;
155
+ return __generator(this, function (_a) {
156
+ switch (_a.label) {
157
+ case 0:
158
+ user = setUp().user;
159
+ return [4 /*yield*/, user.click(react_2.screen.getByLabelText('More actions'))];
160
+ case 1:
161
+ _a.sent();
162
+ menuButton = (0, react_2.within)(react_2.screen.getByRole('menu')).getByRole('button');
163
+ expect(menuButton).toHaveAttribute('data-mode', 'menuItem');
164
+ return [2 /*return*/];
165
+ }
166
+ });
167
+ }); });
168
+ });
85
169
  });
@@ -10,28 +10,41 @@ var __assign = (this && this.__assign) || function () {
10
10
  };
11
11
  return __assign.apply(this, arguments);
12
12
  };
13
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
14
- if (k2 === undefined) k2 = k;
15
- var desc = Object.getOwnPropertyDescriptor(m, k);
16
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
17
- desc = { enumerable: true, get: function() { return m[k]; } };
13
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
14
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
15
+ return new (P || (P = Promise))(function (resolve, reject) {
16
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
17
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
18
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
19
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
20
+ });
21
+ };
22
+ var __generator = (this && this.__generator) || function (thisArg, body) {
23
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
24
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
25
+ function verb(n) { return function (v) { return step([n, v]); }; }
26
+ function step(op) {
27
+ if (f) throw new TypeError("Generator is already executing.");
28
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
29
+ 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;
30
+ if (y = 0, t) op = [op[0] & 2, t.value];
31
+ switch (op[0]) {
32
+ case 0: case 1: t = op; break;
33
+ case 4: _.label++; return { value: op[1], done: false };
34
+ case 5: _.label++; y = op[1]; op = [0]; continue;
35
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
36
+ default:
37
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
38
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
39
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
40
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
41
+ if (t[2]) _.ops.pop();
42
+ _.trys.pop(); continue;
43
+ }
44
+ op = body.call(thisArg, _);
45
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
46
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
18
47
  }
19
- Object.defineProperty(o, k2, desc);
20
- }) : (function(o, m, k, k2) {
21
- if (k2 === undefined) k2 = k;
22
- o[k2] = m[k];
23
- }));
24
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
25
- Object.defineProperty(o, "default", { enumerable: true, value: v });
26
- }) : function(o, v) {
27
- o["default"] = v;
28
- });
29
- var __importStar = (this && this.__importStar) || function (mod) {
30
- if (mod && mod.__esModule) return mod;
31
- var result = {};
32
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
33
- __setModuleDefault(result, mod);
34
- return result;
35
48
  };
36
49
  var __importDefault = (this && this.__importDefault) || function (mod) {
37
50
  return (mod && mod.__esModule) ? mod : { "default": mod };
@@ -39,139 +52,155 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
39
52
  Object.defineProperty(exports, "__esModule", { value: true });
40
53
  var react_1 = __importDefault(require("react"));
41
54
  var react_2 = require("@testing-library/react");
42
- var enzyme_1 = require("enzyme");
43
- var MenuItem_1 = __importDefault(require("@mui/material/MenuItem"));
44
- var ListItemText_1 = __importDefault(require("@mui/material/ListItemText"));
45
- var AttributeListItem_1 = __importStar(require("./AttributeListItem"));
46
- var Checkbox_1 = __importDefault(require("@mui/material/Checkbox"));
47
- var SimpleAttribute_1 = __importDefault(require("../icons/SimpleAttribute"));
48
- var NestedAttribute_1 = __importDefault(require("../icons/NestedAttribute"));
49
- var ReferenceAttribute_1 = __importDefault(require("../icons//ReferenceAttribute"));
55
+ var AttributeListItem_1 = __importDefault(require("./AttributeListItem"));
50
56
  var PlayArrow_1 = __importDefault(require("@mui/icons-material/PlayArrow"));
51
- var AttrTypeIcon_1 = require("./components/AttrTypeIcon");
57
+ var test_utils_1 = require("../test-utils");
58
+ var user_event_1 = __importDefault(require("@testing-library/user-event"));
52
59
  describe('AttributeListItem tests', function () {
53
60
  var defaultProps = {
54
61
  data: {},
55
62
  checked: false,
56
63
  label: 'Some Title'
57
64
  };
58
- it('should render main components', function () {
59
- var component = (0, enzyme_1.mount)(react_1.default.createElement(AttributeListItem_1.default, __assign({}, defaultProps)));
60
- expect(component.find(Checkbox_1.default).length).toBe(1);
61
- expect(component.find(Checkbox_1.default).prop('disabled')).toBe(false);
62
- expect(component.text().includes('Some Title')).toBe(true);
65
+ var setUp = function (props) {
66
+ if (props === void 0) { props = defaultProps; }
67
+ var user = user_event_1.default.setup();
68
+ return __assign({ user: user }, (0, react_2.render)(react_1.default.createElement(AttributeListItem_1.default, __assign({}, props))));
69
+ };
70
+ it('should render default components', function () {
71
+ setUp();
72
+ expect(react_2.screen.getByText(defaultProps.label)).toBeInTheDocument();
73
+ expect(react_2.screen.getByRole('checkbox')).not.toBeDisabled();
74
+ expect(react_2.screen.getByTestId('SvgSimpleAttribute')).toBeInTheDocument();
63
75
  });
64
76
  it('should render main components with label as a node', function () {
65
- var component = (0, enzyme_1.mount)(react_1.default.createElement(AttributeListItem_1.default, __assign({}, defaultProps, { label: react_1.default.createElement("span", null, "Some Title") })));
66
- expect(component.find(ListItemText_1.default).length).toBe(1);
67
- expect(component.find(ListItemText_1.default).text()).toBe('Some Title');
77
+ var label = react_1.default.createElement("span", null, "Some Title");
78
+ setUp(__assign(__assign({}, defaultProps), { label: label }));
79
+ expect(react_2.screen.getByText('Some Title')).toBeInTheDocument();
68
80
  });
69
81
  it('should render checked checkbox', function () {
70
- var component = (0, enzyme_1.mount)(react_1.default.createElement(AttributeListItem_1.default, __assign({}, defaultProps, { checked: true })));
71
- var checkbox = component.find(Checkbox_1.default);
72
- expect(checkbox.prop('checked')).toBe(true);
73
- expect(component.find(Checkbox_1.default).prop('disabled')).toBe(false);
74
- expect(checkbox.prop('className').includes('checked')).toBe(true);
82
+ setUp(__assign(__assign({}, defaultProps), { checked: true }));
83
+ var chechbox = react_2.screen.getByRole('checkbox');
84
+ expect(chechbox).toBeChecked();
85
+ expect(chechbox).not.toBeDisabled();
86
+ expect(chechbox.parentNode).toHaveClass('checked');
75
87
  });
76
88
  it('should render unchecked checkbox', function () {
77
- var component = (0, enzyme_1.mount)(react_1.default.createElement(AttributeListItem_1.default, __assign({}, defaultProps, { checked: false })));
78
- var checkbox = component.find(Checkbox_1.default);
79
- expect(checkbox.prop('checked')).toBe(false);
80
- expect(checkbox.prop('className').includes('checked')).toBe(false);
81
- });
82
- it('should render simple attribute icon by default', function () {
83
- var component = (0, enzyme_1.mount)(react_1.default.createElement(AttributeListItem_1.default, __assign({}, defaultProps)));
84
- expect(component.find(SimpleAttribute_1.default)).toHaveLength(1);
85
- expect(component.find(NestedAttribute_1.default)).toHaveLength(0);
86
- expect(component.find(ReferenceAttribute_1.default)).toHaveLength(0);
87
- expect(component.find(AttributeListItem_1.RecommendedIconWithTooltip)).toHaveLength(0);
89
+ setUp(__assign(__assign({}, defaultProps), { checked: false }));
90
+ var chechbox = react_2.screen.getByRole('checkbox');
91
+ expect(chechbox).not.toBeChecked();
92
+ expect(chechbox).not.toBeDisabled();
93
+ expect(chechbox.parentNode).not.toHaveClass('checked');
88
94
  });
89
95
  it('should render nested attribute icon', function () {
90
- var component = (0, enzyme_1.mount)(react_1.default.createElement(AttributeListItem_1.default, __assign({}, defaultProps, { data: {
96
+ setUp(__assign(__assign({}, defaultProps), { data: {
91
97
  attrType: {
92
98
  type: 'Nested',
93
99
  name: 'name',
94
100
  uri: 'uri'
95
101
  }
96
- } })));
97
- expect(component.find(SimpleAttribute_1.default)).toHaveLength(0);
98
- expect(component.find(NestedAttribute_1.default)).toHaveLength(1);
99
- expect(component.find(ReferenceAttribute_1.default)).toHaveLength(0);
100
- expect(component.find(AttributeListItem_1.RecommendedIconWithTooltip)).toHaveLength(0);
102
+ } }));
103
+ expect(react_2.screen.getByTestId('SvgNestedAttribute')).toBeInTheDocument();
101
104
  });
102
105
  it('should render reference attribute icon', function () {
103
- var component = (0, enzyme_1.mount)(react_1.default.createElement(AttributeListItem_1.default, __assign({}, defaultProps, { data: {
106
+ setUp(__assign(__assign({}, defaultProps), { data: {
104
107
  attrType: {
105
108
  type: 'Reference',
106
109
  name: 'name',
107
110
  uri: 'uri'
108
111
  }
109
- } })));
110
- expect(component.find(SimpleAttribute_1.default)).toHaveLength(0);
111
- expect(component.find(NestedAttribute_1.default)).toHaveLength(0);
112
- expect(component.find(ReferenceAttribute_1.default)).toHaveLength(1);
113
- expect(component.find(AttributeListItem_1.RecommendedIconWithTooltip)).toHaveLength(0);
112
+ } }));
113
+ expect(react_2.screen.getByTestId('SvgReferenceAttribute')).toBeInTheDocument();
114
114
  });
115
115
  it("should render recommended icon if groupId === 'recommended'", function () {
116
- var component = (0, enzyme_1.mount)(react_1.default.createElement(AttributeListItem_1.default, __assign({}, defaultProps, { hideIcon: false, data: {}, groupId: 'recommended' })));
117
- expect(component.find(SimpleAttribute_1.default)).toHaveLength(0);
118
- expect(component.find(NestedAttribute_1.default)).toHaveLength(0);
119
- expect(component.find(ReferenceAttribute_1.default)).toHaveLength(0);
120
- expect(component.find(AttributeListItem_1.RecommendedIconWithTooltip)).toHaveLength(1);
116
+ setUp(__assign(__assign({}, defaultProps), { hideIcon: false, data: {}, groupId: 'recommended' }));
117
+ expect(react_2.screen.getByTestId('SvgRecommended')).toBeInTheDocument();
121
118
  });
122
119
  it('should not render icon if props.hideIcon === true', function () {
123
- var component = (0, enzyme_1.mount)(react_1.default.createElement(AttributeListItem_1.default, __assign({}, defaultProps, { hideIcon: true, data: {} })));
124
- expect(component.find(SimpleAttribute_1.default)).toHaveLength(0);
125
- expect(component.find(NestedAttribute_1.default)).toHaveLength(0);
126
- expect(component.find(ReferenceAttribute_1.default)).toHaveLength(0);
127
- expect(component.find(AttributeListItem_1.RecommendedIconWithTooltip)).toHaveLength(0);
120
+ setUp(__assign(__assign({}, defaultProps), { hideIcon: true }));
121
+ expect(react_2.screen.queryByTestId('SvgSimpleAttribute')).not.toBeInTheDocument();
128
122
  });
129
123
  it('should render logo attribute icon', function () {
130
- var component = (0, enzyme_1.shallow)(react_1.default.createElement(AttributeListItem_1.default, __assign({}, defaultProps, { LogoIcon: PlayArrow_1.default })));
131
- expect(component.find(AttrTypeIcon_1.AttrTypeIcon).length).toBe(1);
132
- expect(component.find('.logoIcon').length).toBe(1);
133
- expect(component.find(ListItemText_1.default).length).toBe(1);
134
- });
135
- it('should call onClick props with checked state and attributeTypes', function () {
136
- var onClick = jest.fn();
137
- var data = {};
138
- var groupId = 'tesGroupId';
139
- var component = (0, enzyme_1.mount)(react_1.default.createElement(AttributeListItem_1.default, __assign({}, defaultProps, { data: data, onClick: onClick, groupId: groupId })));
140
- component.find(MenuItem_1.default).find('li').simulate('click');
141
- expect(onClick).toBeCalledWith(data, true, groupId);
142
- component.setProps({ checked: true });
143
- component.find(MenuItem_1.default).find('li').simulate('click');
144
- expect(onClick).toBeCalledWith(data, false, groupId);
145
- });
124
+ setUp(__assign(__assign({}, defaultProps), { LogoIcon: PlayArrow_1.default }));
125
+ expect((0, test_utils_1.getMuiIconByName)('PlayArrow')).toBeInTheDocument();
126
+ });
127
+ it('should call onClick props with checked state and attributeTypes', function () { return __awaiter(void 0, void 0, void 0, function () {
128
+ var onClick, data, groupId, _a, user, rerender;
129
+ return __generator(this, function (_b) {
130
+ switch (_b.label) {
131
+ case 0:
132
+ onClick = jest.fn();
133
+ data = {};
134
+ groupId = 'tesGroupId';
135
+ _a = setUp(__assign(__assign({}, defaultProps), { data: data, onClick: onClick, groupId: groupId })), user = _a.user, rerender = _a.rerender;
136
+ return [4 /*yield*/, user.click(react_2.screen.getByRole('menuitem'))];
137
+ case 1:
138
+ _b.sent();
139
+ expect(onClick).toBeCalledWith(data, true, groupId);
140
+ rerender(react_1.default.createElement(AttributeListItem_1.default, __assign({}, defaultProps, { data: data, onClick: onClick, groupId: groupId, checked: true })));
141
+ return [4 /*yield*/, user.click(react_2.screen.getByRole('menuitem'))];
142
+ case 2:
143
+ _b.sent();
144
+ expect(onClick).toBeCalledWith(data, false, groupId);
145
+ return [2 /*return*/];
146
+ }
147
+ });
148
+ }); });
146
149
  it('should hide checkbox when hideCheckBox is set', function () {
147
- var component = (0, enzyme_1.mount)(react_1.default.createElement(AttributeListItem_1.default, __assign({}, defaultProps, { data: {}, hideCheckBox: true })));
148
- expect(component.find(Checkbox_1.default)).toHaveLength(0);
149
- });
150
- it('should unable click for nested attribute when hideCheckBox is set', function () {
151
- var component = (0, enzyme_1.mount)(react_1.default.createElement(AttributeListItem_1.default, __assign({}, defaultProps, { data: {
152
- attrType: {
153
- type: 'Nested',
154
- name: 'name',
155
- uri: 'uri'
156
- }
157
- }, hideCheckBox: true })));
158
- var menuItem = component.find(MenuItem_1.default);
159
- expect(menuItem.prop('onClick')).toBeUndefined();
160
- expect(menuItem.prop('className')).toContain('defaultCursor');
161
- });
162
- it('should do not allow to click on attribute when notSelectable is true', function () {
163
- var component = (0, enzyme_1.mount)(react_1.default.createElement(AttributeListItem_1.default, __assign({}, defaultProps, { notSelectable: true })));
164
- var menuItem = component.find(MenuItem_1.default);
165
- expect(menuItem.prop('onClick')).toBeUndefined();
166
- expect(menuItem.prop('className')).toContain('defaultCursor');
167
- expect(component.find(Checkbox_1.default).prop('disabled')).toBe(true);
168
- });
150
+ setUp(__assign(__assign({}, defaultProps), { hideCheckBox: true }));
151
+ expect(react_2.screen.queryByRole('checkbox')).not.toBeInTheDocument();
152
+ });
153
+ it('should unable click for nested attribute when hideCheckBox is set', function () { return __awaiter(void 0, void 0, void 0, function () {
154
+ var onClick, user;
155
+ return __generator(this, function (_a) {
156
+ switch (_a.label) {
157
+ case 0:
158
+ onClick = jest.fn();
159
+ user = setUp(__assign(__assign({}, defaultProps), { onClick: onClick, data: {
160
+ attrType: {
161
+ type: 'Nested',
162
+ name: 'name',
163
+ uri: 'uri'
164
+ }
165
+ }, hideCheckBox: true })).user;
166
+ return [4 /*yield*/, user.click(react_2.screen.getByRole('menuitem'))];
167
+ case 1:
168
+ _a.sent();
169
+ expect(onClick).not.toBeCalled();
170
+ return [2 /*return*/];
171
+ }
172
+ });
173
+ }); });
174
+ it('should do not allow to click on attribute when notSelectable is true', function () { return __awaiter(void 0, void 0, void 0, function () {
175
+ var onClick, user, menuItem;
176
+ return __generator(this, function (_a) {
177
+ switch (_a.label) {
178
+ case 0:
179
+ onClick = jest.fn();
180
+ user = setUp(__assign(__assign({}, defaultProps), { onClick: onClick, data: {
181
+ attrType: {
182
+ type: 'Nested',
183
+ name: 'name',
184
+ uri: 'uri'
185
+ }
186
+ }, notSelectable: true })).user;
187
+ menuItem = react_2.screen.getByRole('menuitem');
188
+ return [4 /*yield*/, user.click(menuItem)];
189
+ case 1:
190
+ _a.sent();
191
+ expect(menuItem).toHaveClass('defaultCursor');
192
+ expect(onClick).not.toBeCalled();
193
+ expect(react_2.screen.getByRole('checkbox')).toBeDisabled();
194
+ return [2 /*return*/];
195
+ }
196
+ });
197
+ }); });
169
198
  it('should render RequiredMark if isRequired=true', function () {
170
- var component = (0, enzyme_1.mount)(react_1.default.createElement(AttributeListItem_1.default, __assign({}, defaultProps, { isRequired: true })));
171
- expect(component.find('RequiredMark')).toHaveLength(1);
199
+ setUp(__assign(__assign({}, defaultProps), { isRequired: true }));
200
+ expect(react_2.screen.getByText('*')).toBeInTheDocument();
172
201
  });
173
202
  it('should disable notSelectable if disableNonSelectable=true', function () {
174
- (0, react_2.render)(react_1.default.createElement(AttributeListItem_1.default, __assign({}, defaultProps, { isRequired: true, notSelectable: true, disableNonSelectable: true })));
175
- expect(react_2.screen.getByRole('checkbox')).toHaveAttribute('disabled');
203
+ setUp(__assign(__assign({}, defaultProps), { isRequired: true, notSelectable: true, disableNonSelectable: true }));
204
+ expect(react_2.screen.getByRole('checkbox')).toBeDisabled();
176
205
  });
177
206
  });