@reltio/components 1.4.2045 → 1.4.2047

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 (181) hide show
  1. package/AttributesFiltersBuilder/AttributesFiltersBuilder.test.js +72 -50
  2. package/BasicTable/BasicTable.test.js +232 -278
  3. package/BlobRenderer/BlobRenderer.js +1 -1
  4. package/ConnectionRelationTypeSelector/ConnectionRelationTypeSelector.test.js +125 -111
  5. package/DateIntervalSelector/DateIntervalSelector.test.js +87 -65
  6. package/DefaultCellValueRenderer/DefaultCellValueRenderer.js +1 -1
  7. package/DefaultCellValueRenderer/DefaultCellValueRenderer.test.js +16 -46
  8. package/DeleteButton/DeleteButton.spec.js +53 -15
  9. package/DependentLookupEditor/DependentLookupEditor.test.js +555 -807
  10. package/Drawer/Drawer.test.js +9 -20
  11. package/DropDownEditor/DropDownEditor.test.js +81 -29
  12. package/DropDownMenuButton/DropDownMenuButton.spec.js +101 -70
  13. package/DropDownSelector/DropDownSelector.test.js +159 -30
  14. package/EditModeAttributesFactory/EditModeAttributesFactory.test.js +143 -0
  15. package/EditModeAttributesList/EditModeAttributesList.test.js +277 -224
  16. package/EditModeAttributesList/attributes.test-data.d.ts +0 -11
  17. package/EditModeAttributesList/attributes.test-data.js +1 -1
  18. package/EditModeAttributesPager/EditModeAttributesPager.test.js +698 -234
  19. package/EditModeAttributesPager/helpers.test.js +2 -12
  20. package/EditModeAttributesView/EditModeAttributesView.test.js +263 -157
  21. package/EditModeComplexAttribute/EditModeComplexAttribute.js +1 -1
  22. package/EditModeComplexAttribute/EditModeComplexAttribute.test.js +313 -298
  23. package/EditModeComplexAttribute/nestedAttrType.test-data.d.ts +0 -5
  24. package/EditModeComplexAttribute/nestedAttrType.test-data.js +3 -44
  25. package/EmptyState/EmptyState.test.js +99 -38
  26. package/EntityCreator/EntityCreator.test.js +68 -35
  27. package/EntitySelector/EntitySelector.js +1 -1
  28. package/EntitySelector/EntitySelector.test.js +275 -422
  29. package/EntityTypeIcon/EntityTypeIcon.test.js +16 -16
  30. package/EntityTypesSelector/EntityTypesSelector.test.js +62 -21
  31. package/ErrorBoundary/ErrorBoundary.test.js +19 -17
  32. package/ErrorMessage/ErrorMessage.js +1 -1
  33. package/ErrorPopup/ErrorPopup.test.js +72 -25
  34. package/ErrorWrapper/ErrorWrapper.test.js +10 -9
  35. package/ExpandedValueTooltip/ExpandedValueTooltip.test.js +111 -37
  36. package/FileTypeEditor/FileTypeEditor.test.js +95 -64
  37. package/FilterValueEditor/FilterValueEditor.test.js +183 -157
  38. package/FilterValueEditor/components/RangeDataTypeValueEditor/RangeDataTypeValueEditor.js +2 -2
  39. package/HierarchicalAttributeTooltip/HierarchicalAttributeTooltip.test.js +114 -24
  40. package/HierarchyNodeTitle/HierarchyNodeTitle.test.js +61 -100
  41. package/InlineSimpleAttribute/InlineSimpleAttribute.js +4 -1
  42. package/OvIcon/OvIcon.js +2 -2
  43. package/ProfileCard/components/ProfileCardPlaceholder/ProfileCardPlaceholder.js +2 -2
  44. package/ShowLess/ShowLess.js +1 -1
  45. package/SimpleAttributeEditor/SimpleAttributeEditor.js +2 -2
  46. package/UploadFileButton/components/UploadMode/UploadMode.js +1 -1
  47. package/cjs/AttributesFiltersBuilder/AttributesFiltersBuilder.test.js +72 -50
  48. package/cjs/BasicTable/BasicTable.test.js +230 -299
  49. package/cjs/BlobRenderer/BlobRenderer.js +1 -1
  50. package/cjs/ConnectionRelationTypeSelector/ConnectionRelationTypeSelector.test.js +125 -111
  51. package/cjs/DateIntervalSelector/DateIntervalSelector.test.js +87 -65
  52. package/cjs/DefaultCellValueRenderer/DefaultCellValueRenderer.js +1 -1
  53. package/cjs/DefaultCellValueRenderer/DefaultCellValueRenderer.test.js +16 -46
  54. package/cjs/DeleteButton/DeleteButton.spec.js +53 -15
  55. package/cjs/DependentLookupEditor/DependentLookupEditor.test.js +569 -821
  56. package/cjs/Drawer/Drawer.test.js +10 -21
  57. package/cjs/DropDownEditor/DropDownEditor.test.js +81 -29
  58. package/cjs/DropDownMenuButton/DropDownMenuButton.spec.js +102 -71
  59. package/cjs/DropDownSelector/DropDownSelector.test.js +159 -30
  60. package/cjs/EditModeAttributesFactory/EditModeAttributesFactory.test.js +148 -0
  61. package/cjs/EditModeAttributesList/EditModeAttributesList.test.js +277 -224
  62. package/cjs/EditModeAttributesList/attributes.test-data.d.ts +0 -11
  63. package/cjs/EditModeAttributesList/attributes.test-data.js +1 -1
  64. package/cjs/EditModeAttributesPager/EditModeAttributesPager.test.js +696 -232
  65. package/cjs/EditModeAttributesPager/helpers.test.js +2 -12
  66. package/cjs/EditModeAttributesView/EditModeAttributesView.test.js +262 -156
  67. package/cjs/EditModeComplexAttribute/EditModeComplexAttribute.js +1 -1
  68. package/cjs/EditModeComplexAttribute/EditModeComplexAttribute.test.js +312 -297
  69. package/cjs/EditModeComplexAttribute/nestedAttrType.test-data.d.ts +0 -5
  70. package/cjs/EditModeComplexAttribute/nestedAttrType.test-data.js +3 -44
  71. package/cjs/EmptyState/EmptyState.test.js +98 -37
  72. package/cjs/EntityCreator/EntityCreator.test.js +69 -36
  73. package/cjs/EntitySelector/EntitySelector.js +1 -1
  74. package/cjs/EntitySelector/EntitySelector.test.js +274 -421
  75. package/cjs/EntityTypeIcon/EntityTypeIcon.test.js +17 -17
  76. package/cjs/EntityTypesSelector/EntityTypesSelector.test.js +62 -21
  77. package/cjs/ErrorBoundary/ErrorBoundary.test.js +19 -17
  78. package/cjs/ErrorMessage/ErrorMessage.js +1 -1
  79. package/cjs/ErrorPopup/ErrorPopup.test.js +71 -24
  80. package/cjs/ErrorWrapper/ErrorWrapper.test.js +10 -9
  81. package/cjs/ExpandedValueTooltip/ExpandedValueTooltip.test.js +111 -37
  82. package/cjs/FileTypeEditor/FileTypeEditor.test.js +95 -64
  83. package/cjs/FilterValueEditor/FilterValueEditor.test.js +182 -156
  84. package/cjs/FilterValueEditor/components/RangeDataTypeValueEditor/RangeDataTypeValueEditor.js +2 -2
  85. package/cjs/HierarchicalAttributeTooltip/HierarchicalAttributeTooltip.test.js +114 -24
  86. package/cjs/HierarchyNodeTitle/HierarchyNodeTitle.test.js +61 -100
  87. package/cjs/InlineSimpleAttribute/InlineSimpleAttribute.js +4 -1
  88. package/cjs/OvIcon/OvIcon.js +2 -2
  89. package/cjs/ProfileCard/components/ProfileCardPlaceholder/ProfileCardPlaceholder.js +2 -2
  90. package/cjs/ShowLess/ShowLess.js +1 -1
  91. package/cjs/SimpleAttributeEditor/SimpleAttributeEditor.js +2 -2
  92. package/cjs/UploadFileButton/components/UploadMode/UploadMode.js +1 -1
  93. package/cjs/contexts/ExpandedAttributesContext/useAttributeExpanded.test.js +25 -18
  94. package/cjs/contexts/MdmModuleContext/hooks.d.ts +2 -2
  95. package/cjs/contexts/ReloadDataContext/ReloadDataContext.spec.js +16 -53
  96. package/cjs/features/crosswalks/CrosswalkRow/CrosswalkRow.js +1 -1
  97. package/cjs/features/crosswalks/CrosswalkRow/styles.js +4 -1
  98. package/cjs/test-utils/TestStylesProvider.js +6 -5
  99. package/contexts/ExpandedAttributesContext/useAttributeExpanded.test.js +25 -18
  100. package/contexts/MdmModuleContext/hooks.d.ts +2 -2
  101. package/contexts/ReloadDataContext/ReloadDataContext.spec.js +16 -30
  102. package/features/crosswalks/CrosswalkRow/CrosswalkRow.js +1 -1
  103. package/features/crosswalks/CrosswalkRow/styles.js +4 -1
  104. package/package.json +1 -1
  105. package/test-utils/TestStylesProvider.js +3 -2
  106. package/AttributesFiltersBuilder/components/AttributeSelector/AttributeSelector.test.js +0 -101
  107. package/AttributesFiltersBuilder/components/RowActions/RowActions.test.js +0 -106
  108. package/BasicTable/IntegrationBasicTable.test.d.ts +0 -1
  109. package/BasicTable/IntegrationBasicTable.test.js +0 -203
  110. package/DependentLookupEditor/IntegrationDependentLookupEditor.test.d.ts +0 -1
  111. package/DependentLookupEditor/IntegrationDependentLookupEditor.test.js +0 -137
  112. package/DropDownMenuButton/components/DefaultMenuItemRenderer/DefaultMenuItemRenderer.spec.d.ts +0 -1
  113. package/DropDownMenuButton/components/DefaultMenuItemRenderer/DefaultMenuItemRenderer.spec.js +0 -32
  114. package/EditModeAttributesFactory/components/EditModeAttribute/EditModeAttribute.test.d.ts +0 -1
  115. package/EditModeAttributesFactory/components/EditModeAttribute/EditModeAttribute.test.js +0 -106
  116. package/EditModeAttributesPager/components/AttributeRenderer/AttributeRenderer.test.d.ts +0 -1
  117. package/EditModeAttributesPager/components/AttributeRenderer/AttributeRenderer.test.js +0 -338
  118. package/EditModeAttributesPager/components/AttributeRenderer/IntegrationAttributeRenderer.test.d.ts +0 -1
  119. package/EditModeAttributesPager/components/AttributeRenderer/IntegrationAttributeRenderer.test.js +0 -225
  120. package/EditModeAttributesPager/components/ImageLineRenderer/ImageLineRenderer.test.d.ts +0 -1
  121. package/EditModeAttributesPager/components/ImageLineRenderer/ImageLineRenderer.test.js +0 -47
  122. package/EditModeAttributesPager/components/SpecialRenderer/SpecialRenderer.test.d.ts +0 -1
  123. package/EditModeAttributesPager/components/SpecialRenderer/SpecialRenderer.test.js +0 -204
  124. package/EditModeAttributesView/IntegrationEditModeAttributesView.test.d.ts +0 -1
  125. package/EditModeAttributesView/IntegrationEditModeAttributesView.test.js +0 -246
  126. package/EditModeAttributesView/metadata.test-data.d.ts +0 -4
  127. package/EditModeAttributesView/metadata.test-data.js +0 -119
  128. package/EntityCreator/entityType.test-data.d.ts +0 -52
  129. package/EntityCreator/entityType.test-data.js +0 -188
  130. package/EntitySelector/components/ClearIndicator/ClearIndicator.test.d.ts +0 -1
  131. package/EntitySelector/components/ClearIndicator/ClearIndicator.test.js +0 -27
  132. package/EntitySelector/components/EntityOption/EntityOption.test.d.ts +0 -1
  133. package/EntitySelector/components/EntityOption/EntityOption.test.js +0 -79
  134. package/EntitySelector/components/Group/Group.test.d.ts +0 -1
  135. package/EntitySelector/components/Group/Group.test.js +0 -65
  136. package/EntitySelector/components/SingleValue/SingleValue.test.d.ts +0 -1
  137. package/EntitySelector/components/SingleValue/SingleValue.test.js +0 -78
  138. package/FilterValueEditor/components/RangeDataTypeValueEditor/RangeDataTypeValueEditor.test.d.ts +0 -1
  139. package/FilterValueEditor/components/RangeDataTypeValueEditor/RangeDataTypeValueEditor.test.js +0 -76
  140. package/cjs/AttributesFiltersBuilder/components/AttributeSelector/AttributeSelector.test.d.ts +0 -1
  141. package/cjs/AttributesFiltersBuilder/components/AttributeSelector/AttributeSelector.test.js +0 -106
  142. package/cjs/AttributesFiltersBuilder/components/RowActions/RowActions.test.d.ts +0 -1
  143. package/cjs/AttributesFiltersBuilder/components/RowActions/RowActions.test.js +0 -111
  144. package/cjs/BasicTable/IntegrationBasicTable.test.d.ts +0 -1
  145. package/cjs/BasicTable/IntegrationBasicTable.test.js +0 -208
  146. package/cjs/DependentLookupEditor/IntegrationDependentLookupEditor.test.d.ts +0 -1
  147. package/cjs/DependentLookupEditor/IntegrationDependentLookupEditor.test.js +0 -142
  148. package/cjs/DropDownMenuButton/components/DefaultMenuItemRenderer/DefaultMenuItemRenderer.spec.d.ts +0 -1
  149. package/cjs/DropDownMenuButton/components/DefaultMenuItemRenderer/DefaultMenuItemRenderer.spec.js +0 -37
  150. package/cjs/EditModeAttributesFactory/components/EditModeAttribute/EditModeAttribute.test.d.ts +0 -1
  151. package/cjs/EditModeAttributesFactory/components/EditModeAttribute/EditModeAttribute.test.js +0 -111
  152. package/cjs/EditModeAttributesPager/components/AttributeRenderer/AttributeRenderer.test.d.ts +0 -1
  153. package/cjs/EditModeAttributesPager/components/AttributeRenderer/AttributeRenderer.test.js +0 -343
  154. package/cjs/EditModeAttributesPager/components/AttributeRenderer/IntegrationAttributeRenderer.test.d.ts +0 -1
  155. package/cjs/EditModeAttributesPager/components/AttributeRenderer/IntegrationAttributeRenderer.test.js +0 -230
  156. package/cjs/EditModeAttributesPager/components/ImageLineRenderer/ImageLineRenderer.test.d.ts +0 -1
  157. package/cjs/EditModeAttributesPager/components/ImageLineRenderer/ImageLineRenderer.test.js +0 -52
  158. package/cjs/EditModeAttributesPager/components/SpecialRenderer/SpecialRenderer.test.d.ts +0 -1
  159. package/cjs/EditModeAttributesPager/components/SpecialRenderer/SpecialRenderer.test.js +0 -209
  160. package/cjs/EditModeAttributesView/IntegrationEditModeAttributesView.test.d.ts +0 -1
  161. package/cjs/EditModeAttributesView/IntegrationEditModeAttributesView.test.js +0 -251
  162. package/cjs/EditModeAttributesView/metadata.test-data.d.ts +0 -4
  163. package/cjs/EditModeAttributesView/metadata.test-data.js +0 -123
  164. package/cjs/EntityCreator/entityType.test-data.d.ts +0 -52
  165. package/cjs/EntityCreator/entityType.test-data.js +0 -191
  166. package/cjs/EntitySelector/components/ClearIndicator/ClearIndicator.test.d.ts +0 -1
  167. package/cjs/EntitySelector/components/ClearIndicator/ClearIndicator.test.js +0 -32
  168. package/cjs/EntitySelector/components/EntityOption/EntityOption.test.d.ts +0 -1
  169. package/cjs/EntitySelector/components/EntityOption/EntityOption.test.js +0 -84
  170. package/cjs/EntitySelector/components/Group/Group.test.d.ts +0 -1
  171. package/cjs/EntitySelector/components/Group/Group.test.js +0 -70
  172. package/cjs/EntitySelector/components/SingleValue/SingleValue.test.d.ts +0 -1
  173. package/cjs/EntitySelector/components/SingleValue/SingleValue.test.js +0 -83
  174. package/cjs/FilterValueEditor/components/RangeDataTypeValueEditor/RangeDataTypeValueEditor.test.d.ts +0 -1
  175. package/cjs/FilterValueEditor/components/RangeDataTypeValueEditor/RangeDataTypeValueEditor.test.js +0 -81
  176. package/cjs/contexts/CollaborationContext/CollaborationContextProvider.test.d.ts +0 -1
  177. package/cjs/contexts/CollaborationContext/CollaborationContextProvider.test.js +0 -104
  178. package/contexts/CollaborationContext/CollaborationContextProvider.test.d.ts +0 -1
  179. package/contexts/CollaborationContext/CollaborationContextProvider.test.js +0 -99
  180. /package/{AttributesFiltersBuilder/components/AttributeSelector/AttributeSelector.test.d.ts → EditModeAttributesFactory/EditModeAttributesFactory.test.d.ts} +0 -0
  181. /package/{AttributesFiltersBuilder/components/RowActions/RowActions.test.d.ts → cjs/EditModeAttributesFactory/EditModeAttributesFactory.test.d.ts} +0 -0
@@ -51,83 +51,114 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
51
51
  };
52
52
  Object.defineProperty(exports, "__esModule", { value: true });
53
53
  var react_1 = __importDefault(require("react"));
54
- var enzyme_1 = require("enzyme");
55
- var UploadFileButton_1 = require("../UploadFileButton");
54
+ var react_2 = require("@testing-library/react");
55
+ var user_event_1 = __importDefault(require("@testing-library/user-event"));
56
+ var mdm_sdk_1 = require("@reltio/mdm-sdk");
56
57
  var FileTypeEditor_1 = require("./FileTypeEditor");
57
- jest.mock('@reltio/mdm-sdk', function () { return (__assign(__assign({}, jest.requireActual('@reltio/mdm-sdk')), { uploadFileForSearch: function (file) {
58
- return Promise.resolve({
59
- downloadLink: file.name,
60
- path: file.name,
61
- expirationDate: '2021-10-27T10:39:14.374+0000'
62
- });
63
- } })); });
58
+ var test_utils_1 = require("../test-utils");
59
+ jest.mock('@reltio/mdm-sdk', function () { return (__assign(__assign({}, jest.requireActual('@reltio/mdm-sdk')), { uploadFileForSearch: jest.fn() })); });
60
+ var defaultProps = {
61
+ onChange: jest.fn(),
62
+ onError: jest.fn()
63
+ };
64
+ var setUp = function (props) {
65
+ if (props === void 0) { props = defaultProps; }
66
+ var user = user_event_1.default.setup();
67
+ return __assign(__assign({}, (0, react_2.render)(react_1.default.createElement(FileTypeEditor_1.FileTypeEditor, __assign({}, props)))), { user: user });
68
+ };
64
69
  describe('File Type editor tests', function () {
65
- it('should render UploadFileButton', function () {
66
- var wrapper = (0, enzyme_1.shallow)(react_1.default.createElement(FileTypeEditor_1.FileTypeEditor, { onChange: jest.fn() }));
67
- expect(wrapper.find(UploadFileButton_1.UploadFileButton)).toHaveLength(1);
70
+ beforeEach(function () {
71
+ jest.spyOn(Date, 'now').mockReturnValue(new Date('2024-01-05T16:00:00.374+0000').getTime());
72
+ mdm_sdk_1.uploadFileForSearch.mockResolvedValue({
73
+ downloadLink: 'https://reltio.com/file.csv',
74
+ path: 'path',
75
+ expirationDate: '2024-01-05T16:00:00.374+0000'
76
+ });
68
77
  });
69
- it('should pass value into UploadFileButton', function () {
70
- var value = { downloadLink: 'downloadLink', expirationDate: 1234567890, filename: 'file', link: 'link' };
71
- var wrapper = (0, enzyme_1.shallow)(react_1.default.createElement(FileTypeEditor_1.FileTypeEditor, { value: value, onChange: jest.fn() }));
72
- wrapper.update();
73
- var uploadFileButton = wrapper.find(UploadFileButton_1.UploadFileButton);
74
- expect(uploadFileButton.prop('link')).toBe(value.downloadLink);
75
- expect(uploadFileButton.prop('filename')).toBe(value.filename);
76
- expect(uploadFileButton.prop('supportedFileTypes')).toEqual(['.txt', '.csv']);
78
+ afterEach(function () {
79
+ jest.clearAllMocks();
77
80
  });
78
- it('should call onChange with correct parameters on file upload', function () { return __awaiter(void 0, void 0, void 0, function () {
79
- var onChange, wrapper, uploadFileButton;
81
+ it('should render correctly', function () {
82
+ setUp();
83
+ react_2.screen.getByText('Select File');
84
+ expect(react_2.screen.getByTestId('file-uploader')).toHaveAttribute('accept', '.txt,.csv');
85
+ });
86
+ it('should upload file correctly', function () { return __awaiter(void 0, void 0, void 0, function () {
87
+ var user, file;
80
88
  return __generator(this, function (_a) {
81
89
  switch (_a.label) {
82
90
  case 0:
83
- onChange = jest.fn();
84
- wrapper = (0, enzyme_1.shallow)(react_1.default.createElement(FileTypeEditor_1.FileTypeEditor, { onChange: onChange }));
85
- wrapper.update();
86
- uploadFileButton = wrapper.find(UploadFileButton_1.UploadFileButton);
87
- uploadFileButton.prop('onUpload')({ name: 'file' });
88
- return [4 /*yield*/, Promise.resolve()];
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])];
89
94
  case 1:
90
95
  _a.sent();
91
- expect(onChange).toHaveBeenCalledWith({
92
- filename: 'file',
93
- downloadLink: 'file',
94
- link: 'file',
95
- expirationDate: 1635331154374
96
+ expect(mdm_sdk_1.uploadFileForSearch).toHaveBeenCalledWith(file);
97
+ expect(defaultProps.onChange).toHaveBeenCalledWith({
98
+ downloadLink: 'https://reltio.com/file.csv',
99
+ expirationDate: 1704470400374,
100
+ filename: 'file.csv',
101
+ link: 'path'
96
102
  });
97
103
  return [2 /*return*/];
98
104
  }
99
105
  });
100
106
  }); });
101
- it('should call onChange with empty params on cancel action', function () {
102
- var onChange = jest.fn();
103
- var wrapper = (0, enzyme_1.shallow)(react_1.default.createElement(FileTypeEditor_1.FileTypeEditor, { onChange: onChange }));
104
- wrapper.update();
105
- var uploadFileButton = wrapper.find(UploadFileButton_1.UploadFileButton);
106
- uploadFileButton.prop('onCancel')();
107
- expect(onChange).toHaveBeenCalledWith(null);
108
- });
109
- it('should call onError with error message on file upload error', function () {
110
- var onError = jest.fn();
111
- var wrapper = (0, enzyme_1.shallow)(react_1.default.createElement(FileTypeEditor_1.FileTypeEditor, { onError: onError, onChange: jest.fn() }));
112
- wrapper.update();
113
- var uploadFileButton = wrapper.find(UploadFileButton_1.UploadFileButton);
114
- var ERROR_MESSAGE = new Error('Error');
115
- uploadFileButton.prop('onError')(ERROR_MESSAGE);
116
- expect(onError).toHaveBeenCalledWith(ERROR_MESSAGE);
117
- });
118
- it('should not have default value for onError prop', function () {
119
- var wrapper = (0, enzyme_1.shallow)(react_1.default.createElement(FileTypeEditor_1.FileTypeEditor, { onChange: jest.fn() }));
120
- wrapper.update();
121
- var uploadFileButton = wrapper.find(UploadFileButton_1.UploadFileButton);
122
- expect(uploadFileButton.prop('onError')).toBeUndefined();
123
- });
124
- it('should pass isValidLink prop to UploadFileButton correctly', function () {
125
- var value = { downloadLink: 'downloadLink', expirationDate: 1234567890, filename: 'file', link: 'link' };
126
- var wrapper = (0, enzyme_1.shallow)(react_1.default.createElement(FileTypeEditor_1.FileTypeEditor, { value: value, onChange: jest.fn() }));
127
- expect(wrapper.find(UploadFileButton_1.UploadFileButton).prop('isValidLink')).toBe(false);
128
- wrapper.setProps({
129
- value: __assign(__assign({}, value), { expirationDate: 12312312314324 })
107
+ it('should cancel upload correctly', function () { return __awaiter(void 0, void 0, void 0, function () {
108
+ var props, user;
109
+ return __generator(this, function (_a) {
110
+ switch (_a.label) {
111
+ case 0:
112
+ props = __assign(__assign({}, defaultProps), { value: { downloadLink: 'https://reltio.com/file.csv' } });
113
+ user = setUp(props).user;
114
+ return [4 /*yield*/, user.click((0, test_utils_1.getMuiIconByName)('Cancel'))];
115
+ case 1:
116
+ _a.sent();
117
+ expect(props.onChange).toHaveBeenCalledWith(null);
118
+ return [2 /*return*/];
119
+ }
130
120
  });
131
- expect(wrapper.find(UploadFileButton_1.UploadFileButton).prop('isValidLink')).toBe(true);
132
- });
121
+ }); });
122
+ it('should handle error correctly in case if upload request has been rejected', function () { return __awaiter(void 0, void 0, void 0, function () {
123
+ var user, file;
124
+ return __generator(this, function (_a) {
125
+ switch (_a.label) {
126
+ case 0:
127
+ mdm_sdk_1.uploadFileForSearch.mockRejectedValue({ errorMessage: 'Something went wrong' });
128
+ user = setUp().user;
129
+ file = new File(['file'], 'file.csv', { type: 'text/csv' });
130
+ return [4 /*yield*/, user.upload(react_2.screen.getByTestId('file-uploader'), [file])];
131
+ case 1:
132
+ _a.sent();
133
+ expect(defaultProps.onError).toHaveBeenCalledWith({ errorMessage: 'Something went wrong' });
134
+ return [2 /*return*/];
135
+ }
136
+ });
137
+ }); });
138
+ it('should render label as link if link is valid', function () { return __awaiter(void 0, void 0, void 0, function () {
139
+ var props;
140
+ return __generator(this, function (_a) {
141
+ props = __assign(__assign({}, defaultProps), { value: {
142
+ downloadLink: 'https://reltio.com/file.csv',
143
+ filename: 'file.csv',
144
+ expirationDate: new Date('2025-01-05T16:00:00.374+0000').getTime()
145
+ } });
146
+ setUp(props);
147
+ expect(react_2.screen.getByText('file.csv')).toHaveAttribute('href', 'https://reltio.com/file.csv');
148
+ return [2 /*return*/];
149
+ });
150
+ }); });
151
+ it('should render label as plain text if link is not valid', function () { return __awaiter(void 0, void 0, void 0, function () {
152
+ var props;
153
+ return __generator(this, function (_a) {
154
+ props = __assign(__assign({}, defaultProps), { value: {
155
+ downloadLink: 'https://reltio.com/file.csv',
156
+ filename: 'file.csv',
157
+ expirationDate: new Date('2023-01-05T16:00:00.374+0000').getTime()
158
+ } });
159
+ setUp(props);
160
+ expect(react_2.screen.getByText('file.csv')).not.toHaveAttribute('href');
161
+ return [2 /*return*/];
162
+ });
163
+ }); });
133
164
  });
@@ -10,176 +10,202 @@ 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 = 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
+ };
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 enzyme_1 = require("enzyme");
54
+ var react_2 = require("@testing-library/react");
55
+ var user_event_1 = __importDefault(require("@testing-library/user-event"));
19
56
  var mdm_sdk_1 = require("@reltio/mdm-sdk");
20
- var DataTypeValueEditor_1 = require("../DataTypeValueEditor");
21
- var DateRangeEditor_1 = require("../DateRangeEditor");
22
- var RangeDataTypeValueEditor_1 = require("./components/RangeDataTypeValueEditor");
57
+ var LocalizationProvider_1 = require("@mui/x-date-pickers/LocalizationProvider");
58
+ var AdapterMoment_1 = require("@mui/x-date-pickers/AdapterMoment");
23
59
  var FilterValueEditor_1 = require("./FilterValueEditor");
24
- var toLocalDate = function (timestamp) {
25
- var date = new Date(timestamp);
26
- return new Date(date.getTime() + date.getTimezoneOffset() * 60 * 1000);
60
+ var defaultProps = {
61
+ filter: { fieldName: 'entity.label', filter: mdm_sdk_1.FilterOptions.EQUALS, values: ['test label'] },
62
+ dataTypeDefinition: { type: mdm_sdk_1.DataTypes.TYPE_STRING },
63
+ TextFieldProps: {},
64
+ onChange: jest.fn()
27
65
  };
28
- describe('FilterValueEditor', function () {
29
- it('should render DataTypeValueEditor with correct props (not range value)', function () {
30
- var props = {
31
- filter: { fieldName: 'entity.label', filter: mdm_sdk_1.FilterOptions.EQUALS, values: ['Label1'] },
32
- onChange: jest.fn(),
33
- dataTypeDefinition: {
34
- type: mdm_sdk_1.DataTypes.TYPE_STRING
35
- },
36
- orientation: 'horizontal'
37
- };
38
- var wrapper = (0, enzyme_1.shallow)(react_1.default.createElement(FilterValueEditor_1.FilterValueEditor, __assign({}, props)));
39
- var editor = wrapper.find(DataTypeValueEditor_1.DataTypeValueEditor);
40
- expect(editor).toHaveLength(1);
41
- expect(editor.props()).toMatchObject({
42
- value: props.filter.values[0],
43
- dataTypeDefinition: props.dataTypeDefinition,
44
- fieldName: props.filter.fieldName
45
- });
46
- expect(editor.prop('orientation')).toBeUndefined();
47
- editor.prop('onChange')('Label2');
48
- expect(props.onChange).toHaveBeenCalledWith(['Label2']);
66
+ var setUp = function (props) {
67
+ if (props === void 0) { props = defaultProps; }
68
+ var user = user_event_1.default.setup();
69
+ var Providers = function (_a) {
70
+ var children = _a.children;
71
+ return (react_1.default.createElement(LocalizationProvider_1.LocalizationProvider, { dateAdapter: AdapterMoment_1.AdapterMoment }, children));
72
+ };
73
+ return __assign(__assign({}, (0, react_2.render)(react_1.default.createElement(FilterValueEditor_1.FilterValueEditor, __assign({}, props)), { wrapper: Providers })), { user: user });
74
+ };
75
+ describe('Filter value editor', function () {
76
+ afterEach(function () {
77
+ jest.clearAllMocks();
49
78
  });
50
- it('should render RangeDataTypeValueEditor if filter is type of range (not date range)', function () {
51
- var props = {
52
- filter: { fieldName: 'relation.attributes.int', filter: mdm_sdk_1.FilterOptions.IN_RANGE, values: [['1', '2']] },
53
- onChange: jest.fn(),
54
- dataTypeDefinition: {
55
- type: mdm_sdk_1.DataTypes.TYPE_INT
56
- },
57
- orientation: 'horizontal'
58
- };
59
- var wrapper = (0, enzyme_1.shallow)(react_1.default.createElement(FilterValueEditor_1.FilterValueEditor, __assign({}, props)));
60
- var editor = wrapper.find(RangeDataTypeValueEditor_1.RangeDataTypeValueEditor);
61
- expect(editor).toHaveLength(1);
62
- expect(editor.props()).toMatchObject({
63
- value: ['1', '2'],
64
- dataTypeDefinition: props.dataTypeDefinition,
65
- fieldName: props.filter.fieldName,
66
- orientation: 'horizontal'
79
+ it('should render data type value editor with correct props (not range value)', function () { return __awaiter(void 0, void 0, void 0, function () {
80
+ var user, input;
81
+ return __generator(this, function (_a) {
82
+ switch (_a.label) {
83
+ case 0:
84
+ user = setUp().user;
85
+ react_2.screen.getByText('test label');
86
+ input = react_2.screen.getByRole('textbox');
87
+ return [4 /*yield*/, user.type(input, 'new label{Enter}')];
88
+ case 1:
89
+ _a.sent();
90
+ expect(defaultProps.onChange).toHaveBeenCalledWith([['test label', 'new label']]);
91
+ return [2 /*return*/];
92
+ }
67
93
  });
68
- editor.prop('onChange')(['1', '3']);
69
- expect(props.onChange).toHaveBeenLastCalledWith([['1', '3']]);
70
- });
71
- it('should render DateRangeEditor if filter is type of date range with special value)', function () {
72
- var props = {
73
- filter: {
74
- fieldName: 'relation.attributes.date',
75
- filter: mdm_sdk_1.FilterOptions.WITHIN,
76
- values: [mdm_sdk_1.DateRangeValue.LAST_MONTH]
77
- },
78
- onChange: jest.fn(),
79
- dataTypeDefinition: {
80
- type: mdm_sdk_1.DataTypes.TYPE_DATE
94
+ }); });
95
+ it('should render range data type value editor with horizontal orientation if filter is type of range (not date range)', function () { return __awaiter(void 0, void 0, void 0, function () {
96
+ var props, user, inputs;
97
+ return __generator(this, function (_a) {
98
+ switch (_a.label) {
99
+ case 0:
100
+ props = __assign(__assign({}, defaultProps), { orientation: 'horizontal', filter: { fieldName: 'relation.attributes.int', filter: mdm_sdk_1.FilterOptions.IN_RANGE, values: [['1', '2']] }, dataTypeDefinition: { type: mdm_sdk_1.DataTypes.TYPE_INT } });
101
+ user = setUp(props).user;
102
+ react_2.screen.getByTestId('horizontal-range-data-type-value-editor');
103
+ inputs = react_2.screen.getAllByRole('textbox');
104
+ expect(inputs[0]).toHaveValue('1');
105
+ expect(inputs[1]).toHaveValue('2');
106
+ return [4 /*yield*/, user.type(inputs[1], '{Backspace}3{Enter}')];
107
+ case 1:
108
+ _a.sent();
109
+ expect(props.onChange).toHaveBeenCalledWith([['1', '3']]);
110
+ return [2 /*return*/];
81
111
  }
82
- };
83
- var wrapper = (0, enzyme_1.shallow)(react_1.default.createElement(FilterValueEditor_1.FilterValueEditor, __assign({}, props)));
84
- var editor = wrapper.find(DateRangeEditor_1.DateRangeEditor);
85
- expect(editor).toHaveLength(1);
86
- expect(editor.props()).toMatchObject({
87
- values: mdm_sdk_1.DateRangeValue.LAST_MONTH,
88
- dataTypeDefinition: props.dataTypeDefinition
89
112
  });
90
- });
91
- it('should render DateRangeEditor if filter is type of date range)', function () {
92
- var values = [1568937600000, 1568938000000];
93
- var expectedValues = [toLocalDate(values[0]), toLocalDate(values[1])];
94
- var props = {
95
- filter: { fieldName: 'relation.attributes.date', filter: mdm_sdk_1.FilterOptions.WITHIN, values: [values] },
96
- onChange: jest.fn(),
97
- dataTypeDefinition: {
98
- type: mdm_sdk_1.DataTypes.TYPE_DATE
113
+ }); });
114
+ it('should render range data type value editor with vertical orientation if filter is type of range (not date range)', function () { return __awaiter(void 0, void 0, void 0, function () {
115
+ var props, user, inputs;
116
+ return __generator(this, function (_a) {
117
+ switch (_a.label) {
118
+ case 0:
119
+ props = __assign(__assign({}, defaultProps), { orientation: 'vertical', filter: { fieldName: 'relation.attributes.int', filter: mdm_sdk_1.FilterOptions.IN_RANGE, values: [['1', '2']] }, dataTypeDefinition: { type: mdm_sdk_1.DataTypes.TYPE_INT } });
120
+ user = setUp(props).user;
121
+ react_2.screen.getByTestId('vertical-range-data-type-value-editor');
122
+ react_2.screen.getByText('From');
123
+ react_2.screen.getByText('To');
124
+ inputs = react_2.screen.getAllByRole('textbox');
125
+ expect(inputs[0]).toHaveValue('1');
126
+ expect(inputs[1]).toHaveValue('2');
127
+ return [4 /*yield*/, user.type(inputs[1], '{Backspace}8{Enter}')];
128
+ case 1:
129
+ _a.sent();
130
+ expect(props.onChange).toHaveBeenCalledWith([['1', '8']]);
131
+ return [2 /*return*/];
99
132
  }
100
- };
101
- var wrapper = (0, enzyme_1.shallow)(react_1.default.createElement(FilterValueEditor_1.FilterValueEditor, __assign({}, props)));
102
- var editor = wrapper.find(DateRangeEditor_1.DateRangeEditor);
103
- expect(editor).toHaveLength(1);
104
- expect(editor.props()).toMatchObject({
105
- values: expectedValues,
106
- dataTypeDefinition: props.dataTypeDefinition
107
133
  });
108
- });
109
- it('should not provide TextFieldProps prop to DateRangeEditor', function () {
110
- var values = [1568937600000, 1568938000000];
111
- var props = {
112
- filter: { fieldName: 'relation.attributes.date', filter: mdm_sdk_1.FilterOptions.WITHIN, values: [values] },
113
- onChange: jest.fn(),
114
- dataTypeDefinition: {
115
- type: mdm_sdk_1.DataTypes.TYPE_DATE
116
- },
117
- TextFieldProps: {
118
- InputProps: {
119
- classes: {
120
- root: 'rootclass'
121
- }
122
- }
134
+ }); });
135
+ it('should render date range editor if filter is type of date range with special value', function () { return __awaiter(void 0, void 0, void 0, function () {
136
+ var props, user, input;
137
+ return __generator(this, function (_a) {
138
+ switch (_a.label) {
139
+ case 0:
140
+ props = __assign(__assign({}, defaultProps), { filter: {
141
+ fieldName: 'relation.attributes.date',
142
+ filter: mdm_sdk_1.FilterOptions.WITHIN,
143
+ values: [mdm_sdk_1.DateRangeValue.LAST_MONTH]
144
+ }, dataTypeDefinition: { type: mdm_sdk_1.DataTypes.TYPE_DATE } });
145
+ user = setUp(props).user;
146
+ react_2.screen.getByText('Date Range');
147
+ input = react_2.screen.getByRole('textbox');
148
+ expect(input).toHaveAttribute('value', 'Last month');
149
+ return [4 /*yield*/, user.click(input)];
150
+ case 1:
151
+ _a.sent();
152
+ return [4 /*yield*/, user.click(react_2.screen.getByText('Last 7 days'))];
153
+ case 2:
154
+ _a.sent();
155
+ expect(props.onChange).toHaveBeenCalledWith(['lastWeek']);
156
+ return [2 /*return*/];
123
157
  }
124
- };
125
- var wrapper = (0, enzyme_1.shallow)(react_1.default.createElement(FilterValueEditor_1.FilterValueEditor, __assign({}, props)));
126
- var editor = wrapper.find(DateRangeEditor_1.DateRangeEditor);
127
- expect(editor).toHaveLength(1);
128
- expect(editor.prop('TextFieldProps')).toBe(undefined);
129
- });
130
- it('should work correctly with activeness date filters', function () {
131
- var props = {
132
- filter: {
133
- fieldName: 'relation.activeness.startDate',
134
- values: [1568937600000],
135
- filter: mdm_sdk_1.FilterOptions.BEFORE
136
- },
137
- dataTypeDefinition: {
138
- type: mdm_sdk_1.DataTypes.TYPE_ACTIVENESS_DATE
139
- },
140
- onChange: jest.fn()
141
- };
142
- var wrapper = (0, enzyme_1.shallow)(react_1.default.createElement(FilterValueEditor_1.FilterValueEditor, __assign({}, props)));
143
- var editor = wrapper.find(DataTypeValueEditor_1.DataTypeValueEditor);
144
- expect(editor.prop('value')).toEqual(new Date(1568937600000));
145
- editor.prop('onChange')(new Date('2019-09-03T00:00:00+05:00'));
146
- expect(props.onChange).toHaveBeenCalledWith([1567450800000]);
147
- });
148
- it('should work correctly with date filters', function () {
149
- var props = {
150
- filter: {
151
- fieldName: 'relation.attributes.date',
152
- values: ['2019-09-01'],
153
- filter: mdm_sdk_1.FilterOptions.ON
154
- },
155
- dataTypeDefinition: {
156
- type: mdm_sdk_1.DataTypes.TYPE_DATE
157
- },
158
- onChange: jest.fn()
159
- };
160
- var wrapper = (0, enzyme_1.shallow)(react_1.default.createElement(FilterValueEditor_1.FilterValueEditor, __assign({}, props)));
161
- var editor = wrapper.find(DataTypeValueEditor_1.DataTypeValueEditor);
162
- var expectedTimestamp = toLocalDate(props.filter.values[0]);
163
- expect(editor.prop('value')).toEqual(expectedTimestamp);
164
- editor.prop('onChange')(new Date(2019, 8, 3));
165
- expect(props.onChange).toHaveBeenCalledWith([1567468800000]);
166
- });
167
- it('should work correctly with timestamp filters', function () {
168
- var props = {
169
- filter: {
170
- fieldName: 'relation.attributes.timestamp',
171
- values: [1568937600000],
172
- filter: mdm_sdk_1.FilterOptions.LT
173
- },
174
- dataTypeDefinition: {
175
- type: mdm_sdk_1.DataTypes.TYPE_TIMESTAMP
176
- },
177
- onChange: jest.fn()
178
- };
179
- var wrapper = (0, enzyme_1.shallow)(react_1.default.createElement(FilterValueEditor_1.FilterValueEditor, __assign({}, props)));
180
- var editor = wrapper.find(DataTypeValueEditor_1.DataTypeValueEditor);
181
- expect(editor.prop('value')).toEqual(new Date(1568937600000));
182
- editor.prop('onChange')(new Date(1568938000000));
183
- expect(props.onChange).toHaveBeenCalledWith([1568938000000]);
158
+ });
159
+ }); });
160
+ it('should render date range editor if filter is type of date range', function () {
161
+ var values = [new Date('09/20/2019 04:00:00 AM').valueOf(), new Date('09/25/2019 04:00:00 AM').valueOf()];
162
+ var props = __assign(__assign({}, defaultProps), { filter: { fieldName: 'relation.attributes.date', filter: mdm_sdk_1.FilterOptions.WITHIN, values: [values] }, dataTypeDefinition: { type: mdm_sdk_1.DataTypes.TYPE_DATE } });
163
+ setUp(props);
164
+ react_2.screen.getByText('Date Range');
165
+ expect(react_2.screen.getByRole('textbox')).toHaveAttribute('value', '09/20/2019 09/25/2019');
184
166
  });
167
+ it('should work correctly with activeness date filters', function () { return __awaiter(void 0, void 0, void 0, function () {
168
+ var props, user, input;
169
+ return __generator(this, function (_a) {
170
+ switch (_a.label) {
171
+ case 0:
172
+ props = __assign(__assign({}, defaultProps), { filter: {
173
+ fieldName: 'relation.activeness.startDate',
174
+ values: [new Date('09/20/2019').valueOf()],
175
+ filter: mdm_sdk_1.FilterOptions.BEFORE
176
+ }, dataTypeDefinition: { type: mdm_sdk_1.DataTypes.TYPE_ACTIVENESS_DATE } });
177
+ user = setUp(props).user;
178
+ input = react_2.screen.getByRole('textbox');
179
+ expect(input).toHaveValue('09/20/2019');
180
+ react_2.screen.getByLabelText('Choose date, selected date is Sep 20, 2019');
181
+ return [4 /*yield*/, user.type(input, '05')];
182
+ case 1:
183
+ _a.sent();
184
+ expect(props.onChange).toHaveBeenCalledWith([new Date('05/20/2019').valueOf()]);
185
+ return [2 /*return*/];
186
+ }
187
+ });
188
+ }); });
189
+ it('should work correctly with timestamp filters', function () { return __awaiter(void 0, void 0, void 0, function () {
190
+ var props, user, input;
191
+ return __generator(this, function (_a) {
192
+ switch (_a.label) {
193
+ case 0:
194
+ props = __assign(__assign({}, defaultProps), { filter: {
195
+ fieldName: 'relation.attributes.timestamp',
196
+ values: [new Date('09/20/2019 04:00:00 AM').valueOf()],
197
+ filter: mdm_sdk_1.FilterOptions.LT
198
+ }, dataTypeDefinition: { type: mdm_sdk_1.DataTypes.TYPE_TIMESTAMP } });
199
+ user = setUp(props).user;
200
+ input = react_2.screen.getByRole('textbox');
201
+ expect(input).toHaveValue('09/20/2019 04:00:00 AM');
202
+ react_2.screen.getByLabelText('Choose date, selected date is Sep 20, 2019');
203
+ return [4 /*yield*/, user.type(input, '02')];
204
+ case 1:
205
+ _a.sent();
206
+ expect(props.onChange).toHaveBeenCalledWith([new Date('02/20/2019 04:00:00 AM').valueOf()]);
207
+ return [2 /*return*/];
208
+ }
209
+ });
210
+ }); });
185
211
  });
@@ -66,13 +66,13 @@ var RangeDataTypeValueEditor = function (_a) {
66
66
  var fromEditor = (react_1.default.createElement(DataTypeValueEditor_1.DataTypeValueEditor, __assign({ id: rangeEditorFromId.current, value: value[0], onChange: (0, ramda_1.pipe)((0, ramda_1.update)(0, ramda_1.__, value), onChange) }, otherProps)));
67
67
  var toEditor = (react_1.default.createElement(DataTypeValueEditor_1.DataTypeValueEditor, __assign({ id: rangeEditorToId.current, value: value[1], onChange: (0, ramda_1.pipe)((0, ramda_1.update)(1, ramda_1.__, value), onChange) }, otherProps)));
68
68
  if (orientation === 'horizontal') {
69
- return (react_1.default.createElement("div", { className: styles['range-inline-editor'] },
69
+ return (react_1.default.createElement("div", { "data-reltio-id": "horizontal-range-data-type-value-editor", className: styles['range-inline-editor'] },
70
70
  fromEditor,
71
71
  react_1.default.createElement("div", { className: styles['range-editor__dash'] }, '—'),
72
72
  toEditor));
73
73
  }
74
74
  else {
75
- return (react_1.default.createElement("div", { className: styles['range-editor'] },
75
+ return (react_1.default.createElement("div", { "data-reltio-id": "vertical-range-data-type-value-editor", className: styles['range-editor'] },
76
76
  react_1.default.createElement(FormControl_1.default, { variant: "standard", fullWidth: true, className: styles['range-editor__control'] },
77
77
  react_1.default.createElement(InputLabel_1.default, { htmlFor: rangeEditorFromId.current, shrink: true }, ui_i18n_1.default.text('From')),
78
78
  fromEditor),