@reltio/components 1.4.2071 → 1.4.2073

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 (196) hide show
  1. package/AttributesView/AttributesView.js +1 -1
  2. package/ColumnsSettings/components/ColumnsSettingsPopup/ColumnsSettingsPopup.d.ts +2 -3
  3. package/ColumnsSettings/helpers.d.ts +3 -1
  4. package/ColumnsSettings/types.d.ts +8 -0
  5. package/CommentsContainer/CommentsContainer.js +1 -1
  6. package/ConfigureColumnsPopup/ConfigureColumnsPopup.d.ts +23 -40
  7. package/ConfigureColumnsPopup/ConfigureColumnsPopup.js +6 -26
  8. package/EditModeAttributesList/EditModeAttributesList.js +1 -1
  9. package/EditModeAttributesPager/EditModeAttributesPager.test.js +1 -1
  10. package/EditModeAttributesPager/components/AttributeRenderer/AttributeRenderer.js +1 -1
  11. package/MetadataTypesSelector/MetadataTypesSelector.d.ts +2 -1
  12. package/MetadataTypesSelector/components/SelectMetadataTypesList/SelectMetadataTypesList.d.ts +5 -6
  13. package/MoreAttributesButton/useMoreAttributesItems.d.ts +1 -1
  14. package/ReadOnlyAttributesList/ReadOnlyAttributesList.js +1 -1
  15. package/ReadOnlyAttributesPager/ReadOnlyAttributesPager.js +1 -1
  16. package/ReadOnlyAttributesView/ReadOnlyAttributesView.js +1 -1
  17. package/ScrollableTabs/ScrollableTabs.test.js +69 -19
  18. package/SearchHighlighter/SearchHighlighter.test.js +18 -7
  19. package/SelectAttributesList/SelectAttributesList.d.ts +11 -6
  20. package/SelectAttributesList/SelectAttributesList.js +5 -2
  21. package/SelectorWithOnlyOptionAutoSelect/SelectorWithOnlyOptionAutoSelect.test.js +109 -60
  22. package/SidePanelContentHeader/SidePanelContentHeader.js +2 -2
  23. package/SidePanelContentHeader/SidePanelContentHeader.test.js +104 -0
  24. package/SidePanelEmptyState/SidePanelEmptyState.js +1 -1
  25. package/SidePanelEmptyState/SidePanelEmptyState.test.js +24 -0
  26. package/SimpleAttribute/SimpleAttribute.js +1 -1
  27. package/SimpleAttribute/SimpleAttribute.test.js +155 -80
  28. package/SimpleAttributeEditor/SimpleAttributeEditor.test.js +339 -330
  29. package/SimpleAttributeEditor/useAttributeValuePermissions.js +1 -1
  30. package/SimpleDropDownSelector/SimpleDropDownSelector.test.js +86 -10
  31. package/SimpleDropDownSelector/components/DropDownPlaceholder/DropDownPlaceholder.js +1 -1
  32. package/SimpleDropDownSelector/components/DropDownValue/DropDownValue.js +1 -1
  33. package/SimpleMatchRulesBlock/SimpleMatchRulesBlock.test.js +128 -32
  34. package/SmallIconButton/SmallIconButton.test.js +98 -25
  35. package/TableWithBars/TableWithBars.test.js +98 -60
  36. package/TableWithBars/components/AttributeCellRenderer/AttributeCellRenderer.js +1 -1
  37. package/TableWithBars/components/HeadCellRenderer/HeadCellRenderer.js +1 -1
  38. package/Tags/Tags.d.ts +0 -1
  39. package/Tags/Tags.test.js +8 -7
  40. package/TransitiveMatchBlock/TransitiveMatchBlock.test.js +78 -22
  41. package/TransitiveMatchRule/TransitiveMatchRule.test.js +78 -37
  42. package/TransitiveMatchRulesTooltip/TransitiveMatchRulesTooltip.js +1 -1
  43. package/TransitiveMatchRulesTooltip/TransitiveMatchRulesTooltip.test.js +12 -18
  44. package/UploadFileButton/UploadFileButton.d.ts +2 -2
  45. package/UploadFileButton/UploadFileButton.test.js +199 -0
  46. package/UploadImageDialog/UploadImageDialog.test.js +1 -0
  47. package/UploadImageDialog/components/DividerWithText/DividerWithText.js +1 -1
  48. package/UploadImageDialog/components/ErrorSnackbar/ErrorSnackbar.test.js +80 -22
  49. package/UploadImageDialog/components/ImageByUrlField/ImageByUrlField.js +1 -1
  50. package/UploadImageDialog/components/ImageByUrlField/ImageByUrlField.test.js +162 -49
  51. package/ValueChip/ValueChip.test.js +7 -23
  52. package/VirtualGroupedList/VirtualGroupedList.d.ts +19 -31
  53. package/VirtualGroupedList/VirtualGroupedList.js +11 -36
  54. package/VirtualGroupedList/VirtualGroupedList.test.js +224 -0
  55. package/VirtualGroupedList/helpers.d.ts +7 -2
  56. package/VirtualGroupedList/helpers.js +3 -1
  57. package/VirtualGroupedList/index.d.ts +1 -1
  58. package/VirtualGroupedList/types.d.ts +10 -6
  59. package/VirtualGroupedList/useScrollToFocusItem.d.ts +8 -5
  60. package/WhiteSearchInput/{WhiteSearchInput.spec.js → WhiteSearchInput.test.js} +3 -8
  61. package/cjs/AttributesView/AttributesView.js +2 -2
  62. package/cjs/ColumnsSettings/components/ColumnsSettingsPopup/ColumnsSettingsPopup.d.ts +2 -3
  63. package/cjs/ColumnsSettings/helpers.d.ts +3 -1
  64. package/cjs/ColumnsSettings/types.d.ts +8 -0
  65. package/cjs/ColumnsSettings/types.js +2 -0
  66. package/cjs/CommentsContainer/CommentsContainer.js +1 -1
  67. package/cjs/ConfigureColumnsPopup/ConfigureColumnsPopup.d.ts +23 -40
  68. package/cjs/ConfigureColumnsPopup/ConfigureColumnsPopup.js +6 -26
  69. package/cjs/EditModeAttributesList/EditModeAttributesList.js +2 -2
  70. package/cjs/EditModeAttributesPager/EditModeAttributesPager.test.js +2 -2
  71. package/cjs/EditModeAttributesPager/components/AttributeRenderer/AttributeRenderer.js +2 -2
  72. package/cjs/MetadataTypesSelector/MetadataTypesSelector.d.ts +2 -1
  73. package/cjs/MetadataTypesSelector/components/SelectMetadataTypesList/SelectMetadataTypesList.d.ts +5 -6
  74. package/cjs/MoreAttributesButton/useMoreAttributesItems.d.ts +1 -1
  75. package/cjs/ReadOnlyAttributesList/ReadOnlyAttributesList.js +2 -2
  76. package/cjs/ReadOnlyAttributesPager/ReadOnlyAttributesPager.js +2 -2
  77. package/cjs/ReadOnlyAttributesView/ReadOnlyAttributesView.js +2 -2
  78. package/cjs/ScrollableTabs/ScrollableTabs.test.js +69 -19
  79. package/cjs/SearchHighlighter/SearchHighlighter.test.js +18 -7
  80. package/cjs/SelectAttributesList/SelectAttributesList.d.ts +11 -6
  81. package/cjs/SelectAttributesList/SelectAttributesList.js +5 -2
  82. package/cjs/SelectorWithOnlyOptionAutoSelect/SelectorWithOnlyOptionAutoSelect.test.js +109 -60
  83. package/cjs/SidePanelContentHeader/SidePanelContentHeader.js +2 -2
  84. package/cjs/SidePanelContentHeader/SidePanelContentHeader.test.js +109 -0
  85. package/cjs/SidePanelEmptyState/SidePanelEmptyState.js +1 -1
  86. package/cjs/SidePanelEmptyState/SidePanelEmptyState.test.js +29 -0
  87. package/cjs/SimpleAttribute/SimpleAttribute.js +1 -1
  88. package/cjs/SimpleAttribute/SimpleAttribute.test.js +155 -80
  89. package/cjs/SimpleAttributeEditor/SimpleAttributeEditor.test.js +338 -352
  90. package/cjs/SimpleAttributeEditor/useAttributeValuePermissions.js +2 -2
  91. package/cjs/SimpleDropDownSelector/SimpleDropDownSelector.test.js +86 -10
  92. package/cjs/SimpleDropDownSelector/components/DropDownPlaceholder/DropDownPlaceholder.js +1 -1
  93. package/cjs/SimpleDropDownSelector/components/DropDownValue/DropDownValue.js +1 -1
  94. package/cjs/SimpleMatchRulesBlock/SimpleMatchRulesBlock.test.js +127 -31
  95. package/cjs/SmallIconButton/SmallIconButton.test.js +98 -25
  96. package/cjs/TableWithBars/TableWithBars.test.js +98 -60
  97. package/cjs/TableWithBars/components/AttributeCellRenderer/AttributeCellRenderer.js +1 -1
  98. package/cjs/TableWithBars/components/HeadCellRenderer/HeadCellRenderer.js +1 -1
  99. package/cjs/Tags/Tags.d.ts +0 -1
  100. package/cjs/Tags/Tags.test.js +8 -7
  101. package/cjs/TransitiveMatchBlock/TransitiveMatchBlock.test.js +77 -21
  102. package/cjs/TransitiveMatchRule/TransitiveMatchRule.test.js +78 -37
  103. package/cjs/TransitiveMatchRulesTooltip/TransitiveMatchRulesTooltip.js +1 -1
  104. package/cjs/TransitiveMatchRulesTooltip/TransitiveMatchRulesTooltip.test.js +12 -18
  105. package/cjs/UploadFileButton/UploadFileButton.d.ts +2 -2
  106. package/cjs/UploadFileButton/UploadFileButton.test.js +204 -0
  107. package/cjs/UploadImageDialog/UploadImageDialog.test.js +1 -0
  108. package/cjs/UploadImageDialog/components/DividerWithText/DividerWithText.js +1 -1
  109. package/cjs/UploadImageDialog/components/ErrorSnackbar/ErrorSnackbar.test.js +80 -22
  110. package/cjs/UploadImageDialog/components/ImageByUrlField/ImageByUrlField.js +1 -1
  111. package/cjs/UploadImageDialog/components/ImageByUrlField/ImageByUrlField.test.js +162 -49
  112. package/cjs/ValueChip/ValueChip.test.js +7 -23
  113. package/cjs/VirtualGroupedList/VirtualGroupedList.d.ts +19 -31
  114. package/cjs/VirtualGroupedList/VirtualGroupedList.js +11 -36
  115. package/cjs/VirtualGroupedList/VirtualGroupedList.test.js +252 -0
  116. package/cjs/VirtualGroupedList/helpers.d.ts +7 -2
  117. package/cjs/VirtualGroupedList/helpers.js +3 -1
  118. package/cjs/VirtualGroupedList/index.d.ts +1 -1
  119. package/cjs/VirtualGroupedList/types.d.ts +10 -6
  120. package/cjs/VirtualGroupedList/useScrollToFocusItem.d.ts +8 -5
  121. package/cjs/WhiteSearchInput/{WhiteSearchInput.spec.js → WhiteSearchInput.test.js} +3 -8
  122. package/cjs/features/activity-log/ActivitiesFactory/ActivitiesFactory.js +1 -0
  123. package/cjs/features/activity-log/ActivitiesFactory/ActivitiesFactory.test.js +5 -0
  124. package/cjs/features/activity-log/ActivityFilterEditor/helpers.js +2 -1
  125. package/cjs/features/activity-log/ActivityFilterEditor/helpers.test.js +3 -1
  126. package/cjs/features/activity-log/ActivityLogFilter/ActivityLogFilter.test.js +16 -15
  127. package/cjs/features/activity-log/types.d.ts +1 -0
  128. package/cjs/features/activity-log/types.js +1 -0
  129. package/cjs/features/activity-log/utils/activities.js +1 -0
  130. package/cjs/features/activity-log/utils/filters.js +5 -1
  131. package/cjs/features/activity-log/utils/filters.test.js +4 -2
  132. package/cjs/features/crosswalks/hooks/useAttributeActions.test.js +24 -25
  133. package/cjs/features/crosswalks/hooks/useCrosswalkActions.test.js +10 -11
  134. package/cjs/features/history/types.d.ts +1 -0
  135. package/cjs/features/workflow/hooks/useChangeRequest.test.js +5 -6
  136. package/cjs/hooks/useCommentsEntitiesMap/useCommentsEntitiesMap.test.js +8 -9
  137. package/cjs/hooks/useKeyboardNavigation/useKeyboardNavigation.d.ts +9 -13
  138. package/features/activity-log/ActivitiesFactory/ActivitiesFactory.js +1 -0
  139. package/features/activity-log/ActivitiesFactory/ActivitiesFactory.test.js +5 -0
  140. package/features/activity-log/ActivityFilterEditor/helpers.js +2 -1
  141. package/features/activity-log/ActivityFilterEditor/helpers.test.js +3 -1
  142. package/features/activity-log/ActivityLogFilter/ActivityLogFilter.test.js +16 -15
  143. package/features/activity-log/types.d.ts +1 -0
  144. package/features/activity-log/types.js +1 -0
  145. package/features/activity-log/utils/activities.js +1 -0
  146. package/features/activity-log/utils/filters.js +5 -1
  147. package/features/activity-log/utils/filters.test.js +4 -2
  148. package/features/crosswalks/hooks/useAttributeActions.test.js +1 -2
  149. package/features/crosswalks/hooks/useCrosswalkActions.test.js +1 -2
  150. package/features/history/types.d.ts +1 -0
  151. package/features/workflow/hooks/useChangeRequest.test.js +1 -2
  152. package/hooks/useCommentsEntitiesMap/useCommentsEntitiesMap.test.js +1 -2
  153. package/hooks/useKeyboardNavigation/useKeyboardNavigation.d.ts +9 -13
  154. package/package.json +1 -1
  155. package/SidePanelContentHeader/SidePanelContentHeader.spec.js +0 -49
  156. package/SidePanelEmptyState/SidePanelEmptyState.spec.js +0 -24
  157. package/SimpleAttributeEditor/SimpleAttributeEditorWithoutPermissions.test.js +0 -103
  158. package/SimpleDropDownSelector/components/DropDownPlaceholder/DropDownPlaceholder.test.js +0 -13
  159. package/TableWithBars/components/AttributeCellRenderer/AttributeCellRenderer.test.js +0 -21
  160. package/TableWithBars/components/HeadCellRenderer/HeadCellRenderer.test.js +0 -20
  161. package/UploadFileButton/UploadFileButton.spec.js +0 -219
  162. package/UploadImageDialog/components/DividerWithText/DividerWithText.test.js +0 -9
  163. package/VirtualGroupedList/VirtualGroupedList.spec.js +0 -282
  164. package/cjs/SidePanelContentHeader/SidePanelContentHeader.spec.js +0 -54
  165. package/cjs/SidePanelEmptyState/SidePanelEmptyState.spec.d.ts +0 -1
  166. package/cjs/SidePanelEmptyState/SidePanelEmptyState.spec.js +0 -29
  167. package/cjs/SimpleAttributeEditor/SimpleAttributeEditorWithoutPermissions.test.d.ts +0 -1
  168. package/cjs/SimpleAttributeEditor/SimpleAttributeEditorWithoutPermissions.test.js +0 -108
  169. package/cjs/SimpleDropDownSelector/components/DropDownPlaceholder/DropDownPlaceholder.test.d.ts +0 -1
  170. package/cjs/SimpleDropDownSelector/components/DropDownPlaceholder/DropDownPlaceholder.test.js +0 -18
  171. package/cjs/TableWithBars/components/AttributeCellRenderer/AttributeCellRenderer.test.d.ts +0 -1
  172. package/cjs/TableWithBars/components/AttributeCellRenderer/AttributeCellRenderer.test.js +0 -26
  173. package/cjs/TableWithBars/components/HeadCellRenderer/HeadCellRenderer.test.d.ts +0 -1
  174. package/cjs/TableWithBars/components/HeadCellRenderer/HeadCellRenderer.test.js +0 -25
  175. package/cjs/UploadFileButton/UploadFileButton.spec.d.ts +0 -1
  176. package/cjs/UploadFileButton/UploadFileButton.spec.js +0 -224
  177. package/cjs/UploadImageDialog/components/DividerWithText/DividerWithText.test.d.ts +0 -1
  178. package/cjs/UploadImageDialog/components/DividerWithText/DividerWithText.test.js +0 -14
  179. package/cjs/VirtualGroupedList/VirtualGroupedList.spec.d.ts +0 -1
  180. package/cjs/VirtualGroupedList/VirtualGroupedList.spec.js +0 -287
  181. package/cjs/WhiteSearchInput/WhiteSearchInput.spec.d.ts +0 -1
  182. /package/{SidePanelContentHeader/SidePanelContentHeader.spec.d.ts → ColumnsSettings/types.js} +0 -0
  183. /package/{SidePanelEmptyState/SidePanelEmptyState.spec.d.ts → SidePanelContentHeader/SidePanelContentHeader.test.d.ts} +0 -0
  184. /package/{SimpleAttributeEditor/SimpleAttributeEditorWithoutPermissions.test.d.ts → SidePanelEmptyState/SidePanelEmptyState.test.d.ts} +0 -0
  185. /package/{SimpleDropDownSelector/components/DropDownPlaceholder/DropDownPlaceholder.test.d.ts → UploadFileButton/UploadFileButton.test.d.ts} +0 -0
  186. /package/{TableWithBars/components/AttributeCellRenderer/AttributeCellRenderer.test.d.ts → VirtualGroupedList/VirtualGroupedList.test.d.ts} +0 -0
  187. /package/{TableWithBars/components/HeadCellRenderer/HeadCellRenderer.test.d.ts → WhiteSearchInput/WhiteSearchInput.test.d.ts} +0 -0
  188. /package/{UploadFileButton/UploadFileButton.spec.d.ts → cjs/SidePanelContentHeader/SidePanelContentHeader.test.d.ts} +0 -0
  189. /package/{UploadImageDialog/components/DividerWithText/DividerWithText.test.d.ts → cjs/SidePanelEmptyState/SidePanelEmptyState.test.d.ts} +0 -0
  190. /package/{VirtualGroupedList/VirtualGroupedList.spec.d.ts → cjs/UploadFileButton/UploadFileButton.test.d.ts} +0 -0
  191. /package/{WhiteSearchInput/WhiteSearchInput.spec.d.ts → cjs/VirtualGroupedList/VirtualGroupedList.test.d.ts} +0 -0
  192. /package/cjs/{SidePanelContentHeader/SidePanelContentHeader.spec.d.ts → WhiteSearchInput/WhiteSearchInput.test.d.ts} +0 -0
  193. /package/cjs/contexts/{AllwaysVisibleAttributesContext → AlwaysVisibleAttributesContext}/index.d.ts +0 -0
  194. /package/cjs/contexts/{AllwaysVisibleAttributesContext → AlwaysVisibleAttributesContext}/index.js +0 -0
  195. /package/contexts/{AllwaysVisibleAttributesContext → AlwaysVisibleAttributesContext}/index.d.ts +0 -0
  196. /package/contexts/{AllwaysVisibleAttributesContext → AlwaysVisibleAttributesContext}/index.js +0 -0
@@ -0,0 +1,204 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
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 = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
24
+ return g.next = verb(0), g["throw"] = verb(1), g["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
+ };
49
+ var __importDefault = (this && this.__importDefault) || function (mod) {
50
+ return (mod && mod.__esModule) ? mod : { "default": mod };
51
+ };
52
+ Object.defineProperty(exports, "__esModule", { value: true });
53
+ var react_1 = __importDefault(require("react"));
54
+ var react_2 = require("@testing-library/react");
55
+ var user_event_1 = __importDefault(require("@testing-library/user-event"));
56
+ var ErrorPopup_1 = require("../ErrorPopup");
57
+ var test_utils_1 = require("../test-utils");
58
+ var UploadFileButton_1 = require("./UploadFileButton");
59
+ describe('UploadFileButton tests', function () {
60
+ var defaultProps = {
61
+ onCancel: jest.fn(),
62
+ onError: jest.fn(),
63
+ onUpload: jest.fn().mockResolvedValue({ link: 'link' }),
64
+ supportedFileTypes: ['.txt', '.csv']
65
+ };
66
+ var setUp = function (props) {
67
+ if (props === void 0) { props = {}; }
68
+ var user = user_event_1.default.setup();
69
+ return __assign({ user: user }, (0, react_2.render)(react_1.default.createElement(UploadFileButton_1.UploadFileButton, __assign({}, defaultProps, props))));
70
+ };
71
+ beforeEach(function () {
72
+ jest.clearAllMocks();
73
+ });
74
+ describe('init mode behavior', function () {
75
+ it('should show upload button by default', function () {
76
+ setUp();
77
+ expect(react_2.screen.getByRole('button', { name: 'Select File' })).toBeInTheDocument();
78
+ });
79
+ it('should set correct properties for input', function () {
80
+ setUp();
81
+ expect(react_2.screen.getByText('Select File')).toBeInTheDocument();
82
+ var fileUploader = react_2.screen.getByTestId('file-uploader');
83
+ expect(fileUploader).toHaveAttribute('accept', '.txt,.csv');
84
+ expect(fileUploader).toHaveAttribute('type', 'file');
85
+ });
86
+ it('should call onUpload', function () { return __awaiter(void 0, void 0, void 0, function () {
87
+ var user, file;
88
+ return __generator(this, function (_a) {
89
+ switch (_a.label) {
90
+ case 0:
91
+ user = setUp().user;
92
+ file = new File(['file'], 'file.csv', { type: 'text/csv' });
93
+ return [4 /*yield*/, user.upload(react_2.screen.getByTestId('file-uploader'), file)];
94
+ case 1:
95
+ _a.sent();
96
+ expect(defaultProps.onUpload).toHaveBeenCalledWith(file);
97
+ return [2 /*return*/];
98
+ }
99
+ });
100
+ }); });
101
+ it('should invoke onError on file upload error', function () { return __awaiter(void 0, void 0, void 0, function () {
102
+ var errorMessage, onUpload, user, file;
103
+ return __generator(this, function (_a) {
104
+ switch (_a.label) {
105
+ case 0:
106
+ errorMessage = 'Error';
107
+ onUpload = jest.fn().mockRejectedValue(errorMessage);
108
+ user = setUp({ onUpload: onUpload }).user;
109
+ file = new File(['file'], 'file.csv', { type: 'text/csv' });
110
+ return [4 /*yield*/, user.upload(react_2.screen.getByTestId('file-uploader'), file)];
111
+ case 1:
112
+ _a.sent();
113
+ expect(defaultProps.onError).toHaveBeenCalledWith(errorMessage);
114
+ return [2 /*return*/];
115
+ }
116
+ });
117
+ }); });
118
+ it('should use default onError prop if it is not specified', function () { return __awaiter(void 0, void 0, void 0, function () {
119
+ var errorMessage, addErrorSpy, onUpload, user, file;
120
+ return __generator(this, function (_a) {
121
+ switch (_a.label) {
122
+ case 0:
123
+ errorMessage = 'Error';
124
+ addErrorSpy = jest.spyOn(ErrorPopup_1.ErrorPopup, 'addError');
125
+ onUpload = jest.fn().mockRejectedValue(errorMessage);
126
+ user = setUp({ onUpload: onUpload, onError: undefined }).user;
127
+ file = new File(['file'], 'file.csv', { type: 'text/csv' });
128
+ return [4 /*yield*/, user.upload(react_2.screen.getByTestId('file-uploader'), file)];
129
+ case 1:
130
+ _a.sent();
131
+ expect(addErrorSpy).toHaveBeenCalledWith({
132
+ title: 'File upload error',
133
+ message: errorMessage
134
+ });
135
+ return [2 /*return*/];
136
+ }
137
+ });
138
+ }); });
139
+ it('should use errorMessage for error popup if it available', function () { return __awaiter(void 0, void 0, void 0, function () {
140
+ var errorObject, addErrorSpy, onUpload, user, file;
141
+ return __generator(this, function (_a) {
142
+ switch (_a.label) {
143
+ case 0:
144
+ errorObject = { errorMessage: 'errorMessage text' };
145
+ addErrorSpy = jest.spyOn(ErrorPopup_1.ErrorPopup, 'addError');
146
+ onUpload = jest.fn().mockRejectedValue(errorObject);
147
+ user = setUp({ onUpload: onUpload, onError: undefined }).user;
148
+ file = new File(['file'], 'file.csv', { type: 'text/csv' });
149
+ return [4 /*yield*/, user.upload(react_2.screen.getByTestId('file-uploader'), file)];
150
+ case 1:
151
+ _a.sent();
152
+ expect(addErrorSpy).toHaveBeenCalledWith({
153
+ title: 'File upload error',
154
+ message: errorObject.errorMessage
155
+ });
156
+ return [2 /*return*/];
157
+ }
158
+ });
159
+ }); });
160
+ });
161
+ describe('uploaded mode behavior', function () {
162
+ it('should show link and cancel button after file uploading', function () { return __awaiter(void 0, void 0, void 0, function () {
163
+ var user, file;
164
+ return __generator(this, function (_a) {
165
+ switch (_a.label) {
166
+ case 0:
167
+ user = setUp().user;
168
+ file = new File(['file'], 'file.csv', { type: 'text/csv' });
169
+ return [4 /*yield*/, user.upload(react_2.screen.getByTestId('file-uploader'), file)];
170
+ case 1:
171
+ _a.sent();
172
+ expect(react_2.screen.getByText('file.csv').tagName).toBe('A');
173
+ expect((0, test_utils_1.getMuiIconByName)('Cancel')).toBeInTheDocument();
174
+ return [2 /*return*/];
175
+ }
176
+ });
177
+ }); });
178
+ it('should show link and cancel button in uploaded mode', function () {
179
+ setUp({ link: 'link', filename: 'filename' });
180
+ var link = react_2.screen.getByRole('link');
181
+ expect(link).toHaveTextContent('filename');
182
+ expect(link).toHaveAttribute('href', 'link');
183
+ expect((0, test_utils_1.getMuiIconByName)('Cancel')).toBeInTheDocument();
184
+ });
185
+ it('should render text instead of link if isValidLink prop is false', function () {
186
+ setUp({ link: 'link', filename: 'filename', isValidLink: false });
187
+ expect(react_2.screen.getByText('filename')).not.toHaveAttribute('href');
188
+ expect(react_2.screen.queryByRole('link')).not.toBeInTheDocument();
189
+ });
190
+ it('should invoke onCancel on cancel icon click', function () { return __awaiter(void 0, void 0, void 0, function () {
191
+ return __generator(this, function (_a) {
192
+ switch (_a.label) {
193
+ case 0:
194
+ setUp({ link: 'link', filename: 'filename' });
195
+ return [4 /*yield*/, user_event_1.default.click((0, test_utils_1.getMuiIconByName)('Cancel'))];
196
+ case 1:
197
+ _a.sent();
198
+ expect(defaultProps.onCancel).toHaveBeenCalled();
199
+ return [2 /*return*/];
200
+ }
201
+ });
202
+ }); });
203
+ });
204
+ });
@@ -90,6 +90,7 @@ describe('UploadImageDialog tests', function () {
90
90
  setUp();
91
91
  expect(react_2.screen.getByText('Drag an image here')).toBeInTheDocument();
92
92
  expect(react_2.screen.getByText("Acceptable image types would include JPG, PNG, TIFF, GIF, BMP. Maximum image size: ".concat(constants_1.MAX_IMAGE_SIZE, "Mb"))).toBeInTheDocument();
93
+ expect(react_2.screen.getByTestId('divider-with-text')).toHaveTextContent('or');
93
94
  expect(react_2.screen.getByPlaceholderText('Paste an image URL here')).toBeInTheDocument();
94
95
  expect(react_2.screen.getByText('Select image')).toBeInTheDocument();
95
96
  expect(react_2.screen.getByText('Send')).toBeInTheDocument();
@@ -12,7 +12,7 @@ var styles_1 = require("./styles");
12
12
  var DividerWithText = function (_a) {
13
13
  var children = _a.children, className = _a.className;
14
14
  var styles = (0, styles_1.useStyles)();
15
- return (react_1.default.createElement(Box_1.default, { className: (0, classnames_1.default)(styles.root, className) },
15
+ return (react_1.default.createElement(Box_1.default, { "data-reltio-id": "divider-with-text", className: (0, classnames_1.default)(styles.root, className) },
16
16
  react_1.default.createElement(Box_1.default, { className: styles.border }),
17
17
  react_1.default.createElement(Typography_1.default, { className: styles.text }, children),
18
18
  react_1.default.createElement(Box_1.default, { className: styles.border })));
@@ -1,35 +1,93 @@
1
1
  "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
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 = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
24
+ return g.next = verb(0), g["throw"] = verb(1), g["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
+ };
2
49
  var __importDefault = (this && this.__importDefault) || function (mod) {
3
50
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
51
  };
5
52
  Object.defineProperty(exports, "__esModule", { value: true });
6
53
  var react_1 = __importDefault(require("react"));
7
- var Snackbar_1 = __importDefault(require("@mui/material/Snackbar"));
8
- var enzyme_1 = require("enzyme");
54
+ var react_2 = require("@testing-library/react");
55
+ var user_event_1 = __importDefault(require("@testing-library/user-event"));
9
56
  var ErrorSnackbar_1 = require("./ErrorSnackbar");
10
57
  describe('ErrorSnackbar tests', function () {
58
+ var setUp = function (props) {
59
+ if (props === void 0) { props = {}; }
60
+ var user = user_event_1.default.setup();
61
+ return __assign({ user: user }, (0, react_2.render)(react_1.default.createElement(ErrorSnackbar_1.ErrorSnackbar, __assign({ error: null }, props))));
62
+ };
11
63
  it('should render correctly with error is "null"', function () {
12
- var component = (0, enzyme_1.shallow)(react_1.default.createElement(ErrorSnackbar_1.ErrorSnackbar, { error: null }));
13
- expect(component.find(Snackbar_1.default).props()).toMatchObject({
14
- open: false,
15
- message: null
16
- });
64
+ var container = setUp({ error: null }).container;
65
+ expect(container).toBeEmptyDOMElement();
17
66
  });
18
67
  it('should render correctly with error is not "null"', function () {
19
- var component = (0, enzyme_1.shallow)(react_1.default.createElement(ErrorSnackbar_1.ErrorSnackbar, { error: "Some error" }));
20
- expect(component.find(Snackbar_1.default).props()).toMatchObject({
21
- open: true,
22
- message: 'Some error'
23
- });
24
- });
25
- it('onClose handler work correctly', function () {
26
- var onClose = jest.fn();
27
- var component = (0, enzyme_1.shallow)(react_1.default.createElement(ErrorSnackbar_1.ErrorSnackbar, { error: "Some error", onClose: onClose }));
28
- var closeEvent = {};
29
- component.find(Snackbar_1.default).prop('onClose')(closeEvent, 'clickaway');
30
- expect(onClose).toHaveBeenCalledTimes(1);
31
- var action = component.find(Snackbar_1.default).prop('action');
32
- action.props.onClick();
33
- expect(onClose).toHaveBeenCalledTimes(2);
68
+ setUp({ error: 'Some error' });
69
+ expect(react_2.screen.getByRole('alert')).toBeInTheDocument();
70
+ expect(react_2.screen.getByText('Some error')).toBeInTheDocument();
71
+ expect(react_2.screen.getByRole('button', { name: 'Close' })).toBeInTheDocument();
34
72
  });
73
+ it('onClose handler work correctly', function () { return __awaiter(void 0, void 0, void 0, function () {
74
+ var onClose, user;
75
+ return __generator(this, function (_a) {
76
+ switch (_a.label) {
77
+ case 0:
78
+ onClose = jest.fn();
79
+ user = setUp({ error: 'Some error', onClose: onClose }).user;
80
+ expect(onClose).toHaveBeenCalledTimes(0);
81
+ return [4 /*yield*/, user.click(react_2.screen.getByRole('button', { name: 'Close' }))];
82
+ case 1:
83
+ _a.sent();
84
+ expect(onClose).toHaveBeenCalledTimes(1);
85
+ return [4 /*yield*/, user.click(react_2.screen.getByRole('presentation').parentElement)];
86
+ case 2:
87
+ _a.sent();
88
+ expect(onClose).toHaveBeenCalledTimes(2);
89
+ return [2 /*return*/];
90
+ }
91
+ });
92
+ }); });
35
93
  });
@@ -62,6 +62,6 @@ var ImageByUrlField = function (_a) {
62
62
  react_1.default.createElement(Paper_1.default, { className: styles.paper },
63
63
  react_1.default.createElement(InputBase_1.default, { value: value, onChange: handleChange, classes: { root: styles.inputRoot, input: styles.input }, placeholder: ui_i18n_1.default.text('Paste an image URL here') }),
64
64
  react_1.default.createElement(Button_1.default, { disabled: Boolean(error) || isEmptyField(value), variant: "outlined", color: "primary", onClick: handleSend }, ui_i18n_1.default.text('Send'))),
65
- error && react_1.default.createElement(Typography_1.default, { className: styles.errorMessage }, error)));
65
+ error && (react_1.default.createElement(Typography_1.default, { "data-reltio-id": "url-error-message", className: styles.errorMessage }, error))));
66
66
  };
67
67
  exports.ImageByUrlField = ImageByUrlField;
@@ -1,64 +1,177 @@
1
1
  "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
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 = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
24
+ return g.next = verb(0), g["throw"] = verb(1), g["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
+ };
2
49
  var __importDefault = (this && this.__importDefault) || function (mod) {
3
50
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
51
  };
5
52
  Object.defineProperty(exports, "__esModule", { value: true });
6
53
  var react_1 = __importDefault(require("react"));
7
- var enzyme_1 = require("enzyme");
8
- var InputBase_1 = __importDefault(require("@mui/material/InputBase"));
9
- var Button_1 = __importDefault(require("@mui/material/Button"));
54
+ var react_2 = require("@testing-library/react");
55
+ var user_event_1 = __importDefault(require("@testing-library/user-event"));
10
56
  var ImageByUrlField_1 = require("./ImageByUrlField");
11
57
  describe('ImageByUrlField tests', function () {
12
- var onSend;
58
+ var defaultProps = { onSend: jest.fn() };
13
59
  beforeEach(function () {
14
- onSend = jest.fn();
60
+ jest.clearAllMocks();
15
61
  });
62
+ var setUp = function (props) {
63
+ if (props === void 0) { props = {}; }
64
+ var user = user_event_1.default.setup();
65
+ return __assign({ user: user }, (0, react_2.render)(react_1.default.createElement(ImageByUrlField_1.ImageByUrlField, __assign({}, defaultProps, props))));
66
+ };
16
67
  it('should not render error message if error is null', function () {
17
- var component = (0, enzyme_1.shallow)(react_1.default.createElement(ImageByUrlField_1.ImageByUrlField, { onSend: onSend }));
18
- expect(component.find('.errorMessage')).toHaveLength(0);
19
- });
20
- it('should not render error message if value is correct', function () {
21
- var component = (0, enzyme_1.shallow)(react_1.default.createElement(ImageByUrlField_1.ImageByUrlField, { onSend: onSend }));
22
- component.find(InputBase_1.default).simulate('change', { target: { value: 'https://reltio.com' } });
23
- expect(component.find('.errorMessage')).toHaveLength(0);
24
- });
25
- it('should not render error message if value is empty string', function () {
26
- var component = (0, enzyme_1.shallow)(react_1.default.createElement(ImageByUrlField_1.ImageByUrlField, { onSend: onSend }));
27
- component.find(InputBase_1.default).simulate('change', { target: { value: '' } });
28
- expect(component.find('.errorMessage')).toHaveLength(0);
29
- });
30
- it('should render error message if value is not correct', function () {
31
- var component = (0, enzyme_1.shallow)(react_1.default.createElement(ImageByUrlField_1.ImageByUrlField, { onSend: onSend }));
32
- component.find(InputBase_1.default).simulate('change', { target: { value: 'wrong url' } });
33
- expect(component.find('.errorMessage').text()).toBe('URL is not correct');
34
- });
35
- it('should update input value', function () {
36
- var component = (0, enzyme_1.shallow)(react_1.default.createElement(ImageByUrlField_1.ImageByUrlField, { onSend: onSend }));
37
- expect(component.find(InputBase_1.default).prop('value')).toBe('');
38
- component.find(InputBase_1.default).simulate('change', { target: { value: 'value' } });
39
- expect(component.find(InputBase_1.default).prop('value')).toBe('value');
68
+ setUp();
69
+ expect(react_2.screen.queryByTestId('url-error-message')).not.toBeInTheDocument();
40
70
  });
71
+ it('should not render error message if value is correct', function () { return __awaiter(void 0, void 0, void 0, function () {
72
+ var user;
73
+ return __generator(this, function (_a) {
74
+ switch (_a.label) {
75
+ case 0:
76
+ user = setUp().user;
77
+ return [4 /*yield*/, user.type(react_2.screen.getByRole('textbox'), 'https://reltio.com')];
78
+ case 1:
79
+ _a.sent();
80
+ expect(react_2.screen.queryByTestId('url-error-message')).not.toBeInTheDocument();
81
+ return [2 /*return*/];
82
+ }
83
+ });
84
+ }); });
85
+ it('should not render error message if value is empty string', function () { return __awaiter(void 0, void 0, void 0, function () {
86
+ var user;
87
+ return __generator(this, function (_a) {
88
+ switch (_a.label) {
89
+ case 0:
90
+ user = setUp().user;
91
+ return [4 /*yield*/, user.clear(react_2.screen.getByRole('textbox'))];
92
+ case 1:
93
+ _a.sent();
94
+ expect(react_2.screen.queryByTestId('url-error-message')).not.toBeInTheDocument();
95
+ return [2 /*return*/];
96
+ }
97
+ });
98
+ }); });
99
+ it('should render error message if value is not correct', function () { return __awaiter(void 0, void 0, void 0, function () {
100
+ var user;
101
+ return __generator(this, function (_a) {
102
+ switch (_a.label) {
103
+ case 0:
104
+ user = setUp().user;
105
+ return [4 /*yield*/, user.type(react_2.screen.getByRole('textbox'), 'wrong url')];
106
+ case 1:
107
+ _a.sent();
108
+ expect(react_2.screen.getByTestId('url-error-message')).toHaveTextContent('URL is not correct');
109
+ return [2 /*return*/];
110
+ }
111
+ });
112
+ }); });
113
+ it('should update input value', function () { return __awaiter(void 0, void 0, void 0, function () {
114
+ var user;
115
+ return __generator(this, function (_a) {
116
+ switch (_a.label) {
117
+ case 0:
118
+ user = setUp().user;
119
+ return [4 /*yield*/, user.type(react_2.screen.getByRole('textbox'), 'value')];
120
+ case 1:
121
+ _a.sent();
122
+ expect(react_2.screen.getByRole('textbox')).toHaveValue('value');
123
+ return [2 /*return*/];
124
+ }
125
+ });
126
+ }); });
41
127
  it('should disable Send button if value is empty string', function () {
42
- var component = (0, enzyme_1.shallow)(react_1.default.createElement(ImageByUrlField_1.ImageByUrlField, { onSend: onSend }));
43
- expect(component.find(InputBase_1.default).prop('value')).toBe('');
44
- expect(component.find(Button_1.default).prop('disabled')).toBe(true);
45
- });
46
- it('should disable Send button if value is incorrect url', function () {
47
- var component = (0, enzyme_1.shallow)(react_1.default.createElement(ImageByUrlField_1.ImageByUrlField, { onSend: onSend }));
48
- component.find(InputBase_1.default).simulate('change', { target: { value: 'wrong url' } });
49
- expect(component.find(Button_1.default).prop('disabled')).toBe(true);
50
- });
51
- it('should not disable Send button if value is correct url', function () {
52
- var component = (0, enzyme_1.shallow)(react_1.default.createElement(ImageByUrlField_1.ImageByUrlField, { onSend: onSend }));
53
- component.find(InputBase_1.default).simulate('change', { target: { value: 'https://reltio.com' } });
54
- expect(component.find(Button_1.default).prop('disabled')).toBe(false);
55
- });
56
- it('onSend handler should work correctly', function () {
57
- var component = (0, enzyme_1.shallow)(react_1.default.createElement(ImageByUrlField_1.ImageByUrlField, { onSend: onSend }));
58
- component.find(InputBase_1.default).simulate('change', { target: { value: 'https://reltio.com' } });
59
- expect(component.find(InputBase_1.default).prop('value')).toBe('https://reltio.com');
60
- component.find(Button_1.default).simulate('click');
61
- expect(onSend).toHaveBeenCalledWith('https://reltio.com');
62
- expect(component.find(InputBase_1.default).prop('value')).toBe('');
128
+ setUp();
129
+ expect(react_2.screen.getByRole('textbox')).toHaveValue('');
130
+ expect(react_2.screen.getByRole('button', { name: 'Send' })).toBeDisabled();
63
131
  });
132
+ it('should disable Send button if value is incorrect url', function () { return __awaiter(void 0, void 0, void 0, function () {
133
+ var user;
134
+ return __generator(this, function (_a) {
135
+ switch (_a.label) {
136
+ case 0:
137
+ user = setUp().user;
138
+ return [4 /*yield*/, user.type(react_2.screen.getByRole('textbox'), 'wrong url')];
139
+ case 1:
140
+ _a.sent();
141
+ expect(react_2.screen.getByRole('button', { name: 'Send' })).toBeDisabled();
142
+ return [2 /*return*/];
143
+ }
144
+ });
145
+ }); });
146
+ it('should not disable Send button if value is correct url', function () { return __awaiter(void 0, void 0, void 0, function () {
147
+ var user;
148
+ return __generator(this, function (_a) {
149
+ switch (_a.label) {
150
+ case 0:
151
+ user = setUp().user;
152
+ return [4 /*yield*/, user.type(react_2.screen.getByRole('textbox'), 'https://reltio.com')];
153
+ case 1:
154
+ _a.sent();
155
+ expect(react_2.screen.getByRole('button', { name: 'Send' })).not.toBeDisabled();
156
+ return [2 /*return*/];
157
+ }
158
+ });
159
+ }); });
160
+ it('onSend handler should work correctly', 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().user;
166
+ return [4 /*yield*/, user.type(react_2.screen.getByRole('textbox'), 'https://reltio.com')];
167
+ case 1:
168
+ _a.sent();
169
+ return [4 /*yield*/, user.click(react_2.screen.getByRole('button', { name: 'Send' }))];
170
+ case 2:
171
+ _a.sent();
172
+ expect(defaultProps.onSend).toHaveBeenCalledWith('https://reltio.com');
173
+ return [2 /*return*/];
174
+ }
175
+ });
176
+ }); });
64
177
  });
@@ -4,36 +4,20 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  var react_1 = __importDefault(require("react"));
7
- var enzyme_1 = require("enzyme");
8
- var Chip_1 = __importDefault(require("@mui/material/Chip"));
9
- var ExpandedValueTooltip_1 = require("../ExpandedValueTooltip");
7
+ var react_2 = require("@testing-library/react");
10
8
  var ValueChip_1 = require("./ValueChip");
11
9
  describe('ValueChip tests', function () {
12
10
  it('should render main parts', function () {
13
11
  var label = '123';
14
- var component = (0, enzyme_1.shallow)(react_1.default.createElement(ValueChip_1.ValueChip, { label: label }));
15
- var chip = component.find(Chip_1.default);
16
- expect(chip.length).toBe(1);
17
- var chipLabel = new enzyme_1.ReactWrapper(chip.prop('label'));
18
- var valueTooltip = chipLabel.find(ExpandedValueTooltip_1.ExpandedValueTooltip);
19
- expect(valueTooltip.length).toBe(1);
20
- expect(valueTooltip.prop('value')).toBe(label);
21
- expect(valueTooltip.text()).toBe(label);
22
- expect(chipLabel.find('.count')).toHaveLength(0);
12
+ var container = (0, react_2.render)(react_1.default.createElement(ValueChip_1.ValueChip, { label: label })).container;
13
+ expect(react_2.screen.getByText('123')).toBeInTheDocument();
14
+ expect(container.querySelector('.count')).toBeNull();
23
15
  });
24
16
  it('should render main parts with count', function () {
25
17
  var label = '123';
26
18
  var count = '15K';
27
- var component = (0, enzyme_1.shallow)(react_1.default.createElement(ValueChip_1.ValueChip, { label: label, count: count }));
28
- var chip = component.find(Chip_1.default);
29
- expect(chip.length).toBe(1);
30
- var chipLabel = new enzyme_1.ReactWrapper(chip.prop('label'));
31
- var valueTooltip = chipLabel.find(ExpandedValueTooltip_1.ExpandedValueTooltip);
32
- expect(valueTooltip.length).toBe(1);
33
- expect(valueTooltip.prop('value')).toBe(label);
34
- expect(valueTooltip.text()).toBe(label);
35
- var countComponent = chipLabel.find('.count');
36
- expect(countComponent).toHaveLength(1);
37
- expect(countComponent.text()).toBe(count);
19
+ (0, react_2.render)(react_1.default.createElement(ValueChip_1.ValueChip, { label: label, count: count }));
20
+ expect(react_2.screen.getByText('123')).toBeInTheDocument();
21
+ expect(react_2.screen.getByText('15K')).toHaveClass('count');
38
22
  });
39
23
  });