@reltio/components 1.4.2071 → 1.4.2072

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 (174) 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/crosswalks/hooks/useAttributeActions.test.js +24 -25
  123. package/cjs/features/crosswalks/hooks/useCrosswalkActions.test.js +10 -11
  124. package/cjs/features/workflow/hooks/useChangeRequest.test.js +5 -6
  125. package/cjs/hooks/useCommentsEntitiesMap/useCommentsEntitiesMap.test.js +8 -9
  126. package/cjs/hooks/useKeyboardNavigation/useKeyboardNavigation.d.ts +9 -13
  127. package/features/crosswalks/hooks/useAttributeActions.test.js +1 -2
  128. package/features/crosswalks/hooks/useCrosswalkActions.test.js +1 -2
  129. package/features/workflow/hooks/useChangeRequest.test.js +1 -2
  130. package/hooks/useCommentsEntitiesMap/useCommentsEntitiesMap.test.js +1 -2
  131. package/hooks/useKeyboardNavigation/useKeyboardNavigation.d.ts +9 -13
  132. package/package.json +1 -1
  133. package/SidePanelContentHeader/SidePanelContentHeader.spec.js +0 -49
  134. package/SidePanelEmptyState/SidePanelEmptyState.spec.js +0 -24
  135. package/SimpleAttributeEditor/SimpleAttributeEditorWithoutPermissions.test.js +0 -103
  136. package/SimpleDropDownSelector/components/DropDownPlaceholder/DropDownPlaceholder.test.js +0 -13
  137. package/TableWithBars/components/AttributeCellRenderer/AttributeCellRenderer.test.js +0 -21
  138. package/TableWithBars/components/HeadCellRenderer/HeadCellRenderer.test.js +0 -20
  139. package/UploadFileButton/UploadFileButton.spec.js +0 -219
  140. package/UploadImageDialog/components/DividerWithText/DividerWithText.test.js +0 -9
  141. package/VirtualGroupedList/VirtualGroupedList.spec.js +0 -282
  142. package/cjs/SidePanelContentHeader/SidePanelContentHeader.spec.js +0 -54
  143. package/cjs/SidePanelEmptyState/SidePanelEmptyState.spec.d.ts +0 -1
  144. package/cjs/SidePanelEmptyState/SidePanelEmptyState.spec.js +0 -29
  145. package/cjs/SimpleAttributeEditor/SimpleAttributeEditorWithoutPermissions.test.d.ts +0 -1
  146. package/cjs/SimpleAttributeEditor/SimpleAttributeEditorWithoutPermissions.test.js +0 -108
  147. package/cjs/SimpleDropDownSelector/components/DropDownPlaceholder/DropDownPlaceholder.test.d.ts +0 -1
  148. package/cjs/SimpleDropDownSelector/components/DropDownPlaceholder/DropDownPlaceholder.test.js +0 -18
  149. package/cjs/TableWithBars/components/AttributeCellRenderer/AttributeCellRenderer.test.d.ts +0 -1
  150. package/cjs/TableWithBars/components/AttributeCellRenderer/AttributeCellRenderer.test.js +0 -26
  151. package/cjs/TableWithBars/components/HeadCellRenderer/HeadCellRenderer.test.d.ts +0 -1
  152. package/cjs/TableWithBars/components/HeadCellRenderer/HeadCellRenderer.test.js +0 -25
  153. package/cjs/UploadFileButton/UploadFileButton.spec.d.ts +0 -1
  154. package/cjs/UploadFileButton/UploadFileButton.spec.js +0 -224
  155. package/cjs/UploadImageDialog/components/DividerWithText/DividerWithText.test.d.ts +0 -1
  156. package/cjs/UploadImageDialog/components/DividerWithText/DividerWithText.test.js +0 -14
  157. package/cjs/VirtualGroupedList/VirtualGroupedList.spec.d.ts +0 -1
  158. package/cjs/VirtualGroupedList/VirtualGroupedList.spec.js +0 -287
  159. package/cjs/WhiteSearchInput/WhiteSearchInput.spec.d.ts +0 -1
  160. /package/{SidePanelContentHeader/SidePanelContentHeader.spec.d.ts → ColumnsSettings/types.js} +0 -0
  161. /package/{SidePanelEmptyState/SidePanelEmptyState.spec.d.ts → SidePanelContentHeader/SidePanelContentHeader.test.d.ts} +0 -0
  162. /package/{SimpleAttributeEditor/SimpleAttributeEditorWithoutPermissions.test.d.ts → SidePanelEmptyState/SidePanelEmptyState.test.d.ts} +0 -0
  163. /package/{SimpleDropDownSelector/components/DropDownPlaceholder/DropDownPlaceholder.test.d.ts → UploadFileButton/UploadFileButton.test.d.ts} +0 -0
  164. /package/{TableWithBars/components/AttributeCellRenderer/AttributeCellRenderer.test.d.ts → VirtualGroupedList/VirtualGroupedList.test.d.ts} +0 -0
  165. /package/{TableWithBars/components/HeadCellRenderer/HeadCellRenderer.test.d.ts → WhiteSearchInput/WhiteSearchInput.test.d.ts} +0 -0
  166. /package/{UploadFileButton/UploadFileButton.spec.d.ts → cjs/SidePanelContentHeader/SidePanelContentHeader.test.d.ts} +0 -0
  167. /package/{UploadImageDialog/components/DividerWithText/DividerWithText.test.d.ts → cjs/SidePanelEmptyState/SidePanelEmptyState.test.d.ts} +0 -0
  168. /package/{VirtualGroupedList/VirtualGroupedList.spec.d.ts → cjs/UploadFileButton/UploadFileButton.test.d.ts} +0 -0
  169. /package/{WhiteSearchInput/WhiteSearchInput.spec.d.ts → cjs/VirtualGroupedList/VirtualGroupedList.test.d.ts} +0 -0
  170. /package/cjs/{SidePanelContentHeader/SidePanelContentHeader.spec.d.ts → WhiteSearchInput/WhiteSearchInput.test.d.ts} +0 -0
  171. /package/cjs/contexts/{AllwaysVisibleAttributesContext → AlwaysVisibleAttributesContext}/index.d.ts +0 -0
  172. /package/cjs/contexts/{AllwaysVisibleAttributesContext → AlwaysVisibleAttributesContext}/index.js +0 -0
  173. /package/contexts/{AllwaysVisibleAttributesContext → AlwaysVisibleAttributesContext}/index.d.ts +0 -0
  174. /package/contexts/{AllwaysVisibleAttributesContext → AlwaysVisibleAttributesContext}/index.js +0 -0
@@ -1,224 +0,0 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- var __generator = (this && this.__generator) || function (thisArg, body) {
12
- 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);
13
- return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
- function verb(n) { return function (v) { return step([n, v]); }; }
15
- function step(op) {
16
- if (f) throw new TypeError("Generator is already executing.");
17
- while (g && (g = 0, op[0] && (_ = 0)), _) try {
18
- 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;
19
- if (y = 0, t) op = [op[0] & 2, t.value];
20
- switch (op[0]) {
21
- case 0: case 1: t = op; break;
22
- case 4: _.label++; return { value: op[1], done: false };
23
- case 5: _.label++; y = op[1]; op = [0]; continue;
24
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
- default:
26
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
- if (t[2]) _.ops.pop();
31
- _.trys.pop(); continue;
32
- }
33
- op = body.call(thisArg, _);
34
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
- }
37
- };
38
- var __importDefault = (this && this.__importDefault) || function (mod) {
39
- return (mod && mod.__esModule) ? mod : { "default": mod };
40
- };
41
- Object.defineProperty(exports, "__esModule", { value: true });
42
- var react_1 = __importDefault(require("react"));
43
- var enzyme_1 = require("enzyme");
44
- var test_utils_1 = require("react-dom/test-utils");
45
- var Button_1 = __importDefault(require("@mui/material/Button"));
46
- var Link_1 = __importDefault(require("@mui/material/Link"));
47
- var Typography_1 = __importDefault(require("@mui/material/Typography"));
48
- var ErrorPopup_1 = require("../ErrorPopup");
49
- var ExpandedValueTooltip_1 = require("../ExpandedValueTooltip");
50
- var UploadFileButton_1 = require("./UploadFileButton");
51
- describe('UploadFileButton tests', function () {
52
- describe('init mode behavior', function () {
53
- var onUpload, supportedFileTypes;
54
- beforeEach(function () {
55
- onUpload = jest.fn().mockReturnValue(Promise.resolve({ link: 'link' }));
56
- supportedFileTypes = ['*.txt', '*.csv'];
57
- });
58
- it('should show upload button by default', function () {
59
- var component = (0, enzyme_1.mount)(react_1.default.createElement(UploadFileButton_1.UploadFileButton, { onUpload: onUpload, supportedFileTypes: supportedFileTypes }));
60
- expect(component.find(Button_1.default)).toHaveLength(1);
61
- });
62
- it('should set correct properties for input', function () {
63
- var component = (0, enzyme_1.mount)(react_1.default.createElement(UploadFileButton_1.UploadFileButton, { onUpload: onUpload, supportedFileTypes: supportedFileTypes }));
64
- expect(component.find('input').prop('accept')).toBe('*.txt,*.csv');
65
- expect(component.find('input').prop('type')).toBe('file');
66
- });
67
- it('should call onUpload', function () { return __awaiter(void 0, void 0, void 0, function () {
68
- var component, event;
69
- return __generator(this, function (_a) {
70
- switch (_a.label) {
71
- case 0:
72
- component = (0, enzyme_1.mount)(react_1.default.createElement(UploadFileButton_1.UploadFileButton, { onUpload: onUpload, supportedFileTypes: supportedFileTypes }));
73
- event = { target: { files: [{ name: 'test' }] } };
74
- return [4 /*yield*/, (0, test_utils_1.act)(function () { return __awaiter(void 0, void 0, void 0, function () {
75
- return __generator(this, function (_a) {
76
- component.find('input').simulate('change', event);
77
- return [2 /*return*/];
78
- });
79
- }); })];
80
- case 1:
81
- _a.sent();
82
- expect(onUpload).toHaveBeenCalledWith({ name: 'test' });
83
- return [2 /*return*/];
84
- }
85
- });
86
- }); });
87
- it('should invoke onError on file upload error', function () { return __awaiter(void 0, void 0, void 0, function () {
88
- var onError, ERROR_MESSAGE, onUpload, component, event;
89
- return __generator(this, function (_a) {
90
- switch (_a.label) {
91
- case 0:
92
- onError = jest.fn();
93
- ERROR_MESSAGE = 'Error';
94
- onUpload = jest.fn().mockRejectedValue(ERROR_MESSAGE);
95
- component = (0, enzyme_1.mount)(react_1.default.createElement(UploadFileButton_1.UploadFileButton, { onUpload: onUpload, onError: onError, supportedFileTypes: supportedFileTypes }));
96
- event = { target: { files: [{ name: 'test' }] } };
97
- return [4 /*yield*/, (0, test_utils_1.act)(function () { return __awaiter(void 0, void 0, void 0, function () {
98
- return __generator(this, function (_a) {
99
- component.find('input').simulate('change', event);
100
- return [2 /*return*/];
101
- });
102
- }); })];
103
- case 1:
104
- _a.sent();
105
- expect(onError).toHaveBeenCalledWith(ERROR_MESSAGE);
106
- return [2 /*return*/];
107
- }
108
- });
109
- }); });
110
- it('should use default onError prop if it is not specified', function () { return __awaiter(void 0, void 0, void 0, function () {
111
- var addErrorSpy, ERROR_MESSAGE, onUpload, component, event;
112
- return __generator(this, function (_a) {
113
- switch (_a.label) {
114
- case 0:
115
- addErrorSpy = jest.spyOn(ErrorPopup_1.ErrorPopup, 'addError').mockImplementation(function () { });
116
- ERROR_MESSAGE = 'Error';
117
- onUpload = jest.fn().mockRejectedValue(ERROR_MESSAGE);
118
- component = (0, enzyme_1.mount)(react_1.default.createElement(UploadFileButton_1.UploadFileButton, { onUpload: onUpload, supportedFileTypes: supportedFileTypes }));
119
- event = { target: { files: [{ name: 'test' }] } };
120
- return [4 /*yield*/, (0, test_utils_1.act)(function () { return __awaiter(void 0, void 0, void 0, function () {
121
- return __generator(this, function (_a) {
122
- component.find('input').simulate('change', event);
123
- return [2 /*return*/];
124
- });
125
- }); })];
126
- case 1:
127
- _a.sent();
128
- expect(addErrorSpy).toHaveBeenCalledWith({
129
- title: 'File upload error',
130
- message: ERROR_MESSAGE
131
- });
132
- return [2 /*return*/];
133
- }
134
- });
135
- }); });
136
- it('should use errorMessage for error popup if it available', function () { return __awaiter(void 0, void 0, void 0, function () {
137
- var addErrorSpy, ERROR_OBJECT, onUpload, component, event;
138
- return __generator(this, function (_a) {
139
- switch (_a.label) {
140
- case 0:
141
- addErrorSpy = jest.spyOn(ErrorPopup_1.ErrorPopup, 'addError').mockImplementation(function () { });
142
- ERROR_OBJECT = { errorMessage: 'errorMessage text' };
143
- onUpload = jest.fn().mockRejectedValue(ERROR_OBJECT);
144
- component = (0, enzyme_1.mount)(react_1.default.createElement(UploadFileButton_1.UploadFileButton, { onUpload: onUpload, supportedFileTypes: supportedFileTypes }));
145
- event = { target: { files: [{ name: 'test' }] } };
146
- return [4 /*yield*/, (0, test_utils_1.act)(function () { return __awaiter(void 0, void 0, void 0, function () {
147
- return __generator(this, function (_a) {
148
- component.find('input').simulate('change', event);
149
- return [2 /*return*/];
150
- });
151
- }); })];
152
- case 1:
153
- _a.sent();
154
- expect(addErrorSpy).toHaveBeenCalledWith({
155
- title: 'File upload error',
156
- message: ERROR_OBJECT.errorMessage
157
- });
158
- return [2 /*return*/];
159
- }
160
- });
161
- }); });
162
- });
163
- describe('uploaded mode behavior', function () {
164
- var onUpload, onCancel, supportedFileTypes;
165
- beforeEach(function () {
166
- onUpload = jest.fn().mockImplementation(function () { return Promise.resolve({ link: 'link' }); });
167
- onCancel = jest.fn();
168
- supportedFileTypes = ['*.txt', '*.csv'];
169
- });
170
- it('should show link and cancel button after file uploading', function () { return __awaiter(void 0, void 0, void 0, function () {
171
- var component, event, linkComponent;
172
- return __generator(this, function (_a) {
173
- switch (_a.label) {
174
- case 0:
175
- component = (0, enzyme_1.mount)(react_1.default.createElement(UploadFileButton_1.UploadFileButton, { onUpload: onUpload, supportedFileTypes: supportedFileTypes }));
176
- event = { target: { files: [{ name: 'test' }] } };
177
- return [4 /*yield*/, (0, test_utils_1.act)(function () { return __awaiter(void 0, void 0, void 0, function () {
178
- return __generator(this, function (_a) {
179
- component.find('input').simulate('change', event);
180
- return [2 /*return*/];
181
- });
182
- }); })];
183
- case 1:
184
- _a.sent();
185
- return [4 /*yield*/, Promise.resolve()];
186
- case 2:
187
- _a.sent();
188
- component.update();
189
- linkComponent = component.find(Link_1.default);
190
- expect(linkComponent.text()).toBe('test');
191
- return [2 /*return*/];
192
- }
193
- });
194
- }); });
195
- it('should show link and cancel button in uploaded mode', function () {
196
- var link = 'link';
197
- var filename = 'filename';
198
- var component = (0, enzyme_1.mount)(react_1.default.createElement(UploadFileButton_1.UploadFileButton, { link: link, filename: filename }));
199
- component.update();
200
- expect(component.find(ExpandedValueTooltip_1.ExpandedValueTooltip)).toHaveLength(1);
201
- var linkComponent = component.find(Link_1.default);
202
- expect(linkComponent.prop('href')).toBe('link');
203
- expect(linkComponent.text()).toBe('filename');
204
- });
205
- it('should render text instead of link if isValidLink prop is false', function () {
206
- var link = 'link';
207
- var filename = 'filename';
208
- var component = (0, enzyme_1.mount)(react_1.default.createElement(UploadFileButton_1.UploadFileButton, { link: link, filename: filename, isValidLink: false }));
209
- component.update();
210
- expect(component.find(ExpandedValueTooltip_1.ExpandedValueTooltip)).toHaveLength(1);
211
- expect(component.find(Link_1.default)).toHaveLength(0);
212
- expect(component.find(Typography_1.default).text()).toBe('filename');
213
- });
214
- it('should invoke onCancel on cancel icon click', function () {
215
- var link = 'link';
216
- var filename = 'filename';
217
- var component = (0, enzyme_1.mount)(react_1.default.createElement(UploadFileButton_1.UploadFileButton, { link: link, onCancel: onCancel, filename: filename }));
218
- component.update();
219
- var cancelIcon = component.find('svg');
220
- cancelIcon.simulate('click');
221
- expect(onCancel).toHaveBeenCalled();
222
- });
223
- });
224
- });
@@ -1,14 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- var react_1 = __importDefault(require("react"));
7
- var enzyme_1 = require("enzyme");
8
- var DividerWithText_1 = require("./DividerWithText");
9
- describe('DividerWithText tests', function () {
10
- it('should render correctly', function () {
11
- var component = (0, enzyme_1.shallow)(react_1.default.createElement(DividerWithText_1.DividerWithText, null, "Hello world"));
12
- expect(component.find('.text').text()).toBe('Hello world');
13
- });
14
- });
@@ -1 +0,0 @@
1
- export {};
@@ -1,287 +0,0 @@
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 __importDefault = (this && this.__importDefault) || function (mod) {
14
- return (mod && mod.__esModule) ? mod : { "default": mod };
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- var react_1 = __importDefault(require("react"));
18
- var enzyme_1 = require("enzyme");
19
- var react_window_1 = require("react-window");
20
- var VirtualGroupedList_1 = require("./VirtualGroupedList");
21
- var helpers_1 = require("./helpers");
22
- describe('VirtualGroupedList tests', function () {
23
- var getItems = function (type) {
24
- var simpleItems = [
25
- {
26
- item: {
27
- label: 'Label 1',
28
- id: 'someid1'
29
- }
30
- },
31
- {
32
- item: {
33
- label: 'Label 2',
34
- id: 'someid2'
35
- }
36
- },
37
- {
38
- item: {
39
- label: 'Label 3',
40
- id: 'someid3'
41
- }
42
- }
43
- ];
44
- var newSimpleItems = [
45
- {
46
- item: {
47
- label: 'Label 1',
48
- id: 'someid1'
49
- }
50
- },
51
- {
52
- item: {
53
- label: 'Label 2',
54
- id: 'someid2'
55
- }
56
- }
57
- ];
58
- var groupedItems = [
59
- {
60
- item: {
61
- label: 'Label 1',
62
- id: 'someid1'
63
- },
64
- items: [
65
- {
66
- item: {
67
- label: 'Label 1.1',
68
- id: 'someid1.1'
69
- }
70
- },
71
- {
72
- item: {
73
- label: 'Label 1.2',
74
- id: 'someid1.2'
75
- }
76
- },
77
- {
78
- item: {
79
- label: 'Label 1.3',
80
- id: 'someid1.3'
81
- }
82
- }
83
- ]
84
- },
85
- {
86
- item: {
87
- label: 'Label 2',
88
- id: 'someid2'
89
- },
90
- items: [
91
- {
92
- item: {
93
- label: 'Label 2.1',
94
- id: 'someid2.1'
95
- }
96
- },
97
- {
98
- item: {
99
- label: 'Label 2.2',
100
- id: 'someid2.2'
101
- }
102
- }
103
- ]
104
- }
105
- ];
106
- switch (type) {
107
- case 'grouped':
108
- return { items: (0, helpers_1.flattenGroupedItemsData)(groupedItems) };
109
- case 'groupedWithMove': {
110
- groupedItems[1].items[1].moveTo = true;
111
- return { items: (0, helpers_1.flattenGroupedItemsData)(groupedItems) };
112
- }
113
- case 'newSimpleItems': {
114
- return { items: (0, helpers_1.flattenGroupedItemsData)(newSimpleItems) };
115
- }
116
- case 'simple':
117
- default:
118
- return { items: (0, helpers_1.flattenGroupedItemsData)(simpleItems) };
119
- }
120
- };
121
- var findClassName = function (component, className) { return component.find('div.' + className); };
122
- var itemClass = 'item';
123
- var itemTitleClass = 'stickyTitleItem';
124
- var stickyTitlesWrapper = 'stickyTitlesWrapper';
125
- var renderItem = function (style, _a) {
126
- var item = _a.item;
127
- return (react_1.default.createElement("div", { style: style, className: itemClass }, item.label));
128
- };
129
- var defaultParams = {
130
- getItemSize: function () { return 50; },
131
- renderItem: renderItem,
132
- renderGroupTitle: renderItem,
133
- height: 500
134
- };
135
- afterEach(function () {
136
- jest.restoreAllMocks();
137
- });
138
- it('should render main components', function () {
139
- var component = (0, enzyme_1.mount)(react_1.default.createElement(VirtualGroupedList_1.VirtualGroupedList, __assign({}, getItems('simple'), defaultParams)));
140
- expect(component.find(react_window_1.VariableSizeList).length).toBe(1);
141
- });
142
- it('should correct render simple items', function () {
143
- var component = (0, enzyme_1.mount)(react_1.default.createElement(VirtualGroupedList_1.VirtualGroupedList, __assign({}, getItems('simple'), defaultParams)));
144
- var items = findClassName(component, itemClass);
145
- expect(items.length).toBe(3);
146
- expect(items.at(0).text()).toBe('Label 1');
147
- expect(items.at(1).text()).toBe('Label 2');
148
- expect(items.at(2).text()).toBe('Label 3');
149
- });
150
- it('should correct render grouped items', function () {
151
- var component = (0, enzyme_1.mount)(react_1.default.createElement(VirtualGroupedList_1.VirtualGroupedList, __assign({}, getItems('grouped'), defaultParams)));
152
- var items = findClassName(component, itemClass);
153
- expect(items.length).toBe(9);
154
- expect(items.at(0).text()).toBe('Label 1');
155
- expect(items.at(1).text()).toBe('Label 2');
156
- expect(items.at(2).text()).toBe('Label 1');
157
- expect(items.at(3).text()).toBe('Label 1.1');
158
- expect(items.at(4).text()).toBe('Label 1.2');
159
- expect(items.at(5).text()).toBe('Label 1.3');
160
- expect(items.at(6).text()).toBe('Label 2');
161
- expect(items.at(7).text()).toBe('Label 2.1');
162
- expect(items.at(8).text()).toBe('Label 2.2');
163
- });
164
- it('should render fixed group titles', function () {
165
- var component = (0, enzyme_1.mount)(react_1.default.createElement(VirtualGroupedList_1.VirtualGroupedList, __assign({}, getItems('grouped'), defaultParams)));
166
- component.update();
167
- var fixedTitles = findClassName(component, itemTitleClass);
168
- expect(fixedTitles.length).toBe(2);
169
- expect(fixedTitles.at(0).text()).toBe('Label 1');
170
- expect(fixedTitles.at(0).getDOMNode().style).toHaveProperty('visibility', 'visible');
171
- expect(fixedTitles.at(1).text()).toBe('Label 2');
172
- expect(fixedTitles.at(1).getDOMNode().style).toHaveProperty('visibility', 'hidden');
173
- });
174
- it('should set sticky titles width if items width changed', function () {
175
- var component = (0, enzyme_1.mount)(react_1.default.createElement(VirtualGroupedList_1.VirtualGroupedList, __assign({}, getItems('grouped'), defaultParams)));
176
- component.update();
177
- var titleRef = component.find('.stickyTitlesWrapper').getDOMNode();
178
- var itemsRef = component.find('List').prop('innerRef');
179
- jest.spyOn(itemsRef.current, 'offsetWidth', 'get').mockReturnValue(200);
180
- component.setProps({ height: 100 });
181
- component.update();
182
- expect(titleRef.style.width).toBe('200px');
183
- });
184
- it('should not render fixed group title when fixedTitle is false', function () {
185
- var component = (0, enzyme_1.mount)(react_1.default.createElement(VirtualGroupedList_1.VirtualGroupedList, __assign({}, getItems('grouped'), defaultParams, { fixedTitle: false })));
186
- component.update();
187
- var fixedTitles = findClassName(component, itemTitleClass);
188
- expect(fixedTitles.length).toBe(0);
189
- });
190
- it('should clear index when items is updated', function () {
191
- var component = (0, enzyme_1.mount)(react_1.default.createElement(VirtualGroupedList_1.VirtualGroupedList, __assign({}, getItems('simple'), defaultParams)));
192
- var resetAfterIndexSpy = jest.spyOn(component.find(react_window_1.VariableSizeList).instance(), 'resetAfterIndex');
193
- component.setProps(__assign({}, getItems('grouped')));
194
- component.update();
195
- expect(resetAfterIndexSpy).toHaveBeenCalledWith(0);
196
- });
197
- describe('Scroll behaviour', function () {
198
- /*
199
- Some scroll offsets for grouped items(getItems('grouped')):
200
- First title offset: 0
201
- First title will be showing in offset range: 0-199
202
- Second title offset: 200
203
- Second title will be showing in offset range: 200+
204
- Offset range when titles is touching each other: 150-200
205
- */
206
- it('should scroll to moveTo item', function () {
207
- jest.spyOn(window, 'requestAnimationFrame').mockImplementation(function (cb) { return cb(); });
208
- var scrollToSpy = jest.spyOn(react_window_1.VariableSizeList.prototype, 'scrollTo').mockImplementation(function () { return null; });
209
- var component = (0, enzyme_1.mount)(react_1.default.createElement(VirtualGroupedList_1.VirtualGroupedList, __assign({}, getItems('grouped'), defaultParams, { height: 150 })));
210
- component.setProps(__assign({}, getItems('groupedWithMove')));
211
- component.update();
212
- expect(scrollToSpy).toHaveBeenCalledTimes(2);
213
- expect(scrollToSpy).toHaveBeenCalledWith(200);
214
- window.requestAnimationFrame.mockRestore();
215
- });
216
- it('should scroll to top of item', function () {
217
- var scrollToSpy = jest.spyOn(react_window_1.VariableSizeList.prototype, 'scrollTo').mockImplementation(function () { return null; });
218
- var component = (0, enzyme_1.mount)(react_1.default.createElement(VirtualGroupedList_1.VirtualGroupedList, __assign({}, getItems(), defaultParams, { height: 150 })));
219
- jest.spyOn(window, 'requestAnimationFrame').mockImplementation(function (cb) { return cb(); });
220
- component.setProps(__assign({}, getItems('newSimpleItems')));
221
- component.update();
222
- expect(scrollToSpy).toHaveBeenCalledTimes(1);
223
- expect(scrollToSpy).toHaveBeenCalledWith(0);
224
- window.requestAnimationFrame.mockRestore();
225
- });
226
- it('should change fixed title on forward scroll', function () {
227
- var component = (0, enzyme_1.mount)(react_1.default.createElement(VirtualGroupedList_1.VirtualGroupedList, __assign({}, getItems('grouped'), defaultParams, { height: 150 })));
228
- var fixedTitles = findClassName(component, itemTitleClass);
229
- var titlesWrapper = findClassName(component, stickyTitlesWrapper);
230
- component.find(react_window_1.VariableSizeList).prop('onScroll')({
231
- scrollOffset: 210,
232
- scrollDirection: 'forward'
233
- });
234
- expect(fixedTitles.length).toBe(2);
235
- expect(titlesWrapper.getDOMNode().style).toHaveProperty('top', '0px');
236
- expect(fixedTitles.at(0).getDOMNode().style).toHaveProperty('visibility', 'hidden');
237
- expect(fixedTitles.at(1).getDOMNode().style).toHaveProperty('visibility', 'visible');
238
- });
239
- it('should move current fixed title on forward scroll when next title start touching the current title', function () {
240
- var component = (0, enzyme_1.mount)(react_1.default.createElement(VirtualGroupedList_1.VirtualGroupedList, __assign({}, getItems('grouped'), defaultParams, { height: 150 })));
241
- var fixedTitles = findClassName(component, itemTitleClass);
242
- var titlesWrapper = findClassName(component, stickyTitlesWrapper);
243
- component.find(react_window_1.VariableSizeList).prop('onScroll')({
244
- scrollOffset: 151,
245
- scrollDirection: 'forward'
246
- });
247
- expect(fixedTitles.length).toBe(2);
248
- expect(titlesWrapper.getDOMNode().style).toHaveProperty('top', '-1px');
249
- expect(fixedTitles.at(0).getDOMNode().style).toHaveProperty('visibility', 'visible');
250
- expect(fixedTitles.at(1).getDOMNode().style).toHaveProperty('visibility', 'hidden');
251
- });
252
- it('should change fixed title on backward scroll', function () {
253
- var component = (0, enzyme_1.mount)(react_1.default.createElement(VirtualGroupedList_1.VirtualGroupedList, __assign({}, getItems('grouped'), defaultParams, { height: 150 })));
254
- var fixedTitles = findClassName(component, itemTitleClass);
255
- var titlesWrapper = findClassName(component, stickyTitlesWrapper);
256
- component.find(react_window_1.VariableSizeList).prop('onScroll')({
257
- scrollOffset: 210,
258
- scrollDirection: 'forward'
259
- });
260
- component.find(react_window_1.VariableSizeList).prop('onScroll')({
261
- scrollOffset: 140,
262
- scrollDirection: 'backward'
263
- });
264
- expect(fixedTitles.length).toBe(2);
265
- expect(titlesWrapper.getDOMNode().style).toHaveProperty('top', '0px');
266
- expect(fixedTitles.at(0).getDOMNode().style).toHaveProperty('visibility', 'visible');
267
- expect(fixedTitles.at(1).getDOMNode().style).toHaveProperty('visibility', 'hidden');
268
- });
269
- it('should move current fixed title on backward scroll when previous title start touching the current title', function () {
270
- var component = (0, enzyme_1.mount)(react_1.default.createElement(VirtualGroupedList_1.VirtualGroupedList, __assign({}, getItems('grouped'), defaultParams, { height: 150 })));
271
- var fixedTitles = findClassName(component, itemTitleClass);
272
- var titlesWrapper = findClassName(component, stickyTitlesWrapper);
273
- component.find(react_window_1.VariableSizeList).prop('onScroll')({
274
- scrollOffset: 210,
275
- scrollDirection: 'forward'
276
- });
277
- component.find(react_window_1.VariableSizeList).prop('onScroll')({
278
- scrollOffset: 199,
279
- scrollDirection: 'backward'
280
- });
281
- expect(fixedTitles.length).toBe(2);
282
- expect(titlesWrapper.getDOMNode().style).toHaveProperty('top', '-49px');
283
- expect(fixedTitles.at(0).getDOMNode().style).toHaveProperty('visibility', 'visible');
284
- expect(fixedTitles.at(1).getDOMNode().style).toHaveProperty('visibility', 'hidden');
285
- });
286
- });
287
- });
@@ -1 +0,0 @@
1
- export {};