@reltio/components 1.4.2050 → 1.4.2052

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 (187) hide show
  1. package/AttributeListItem/AttributeListItem.d.ts +1 -1
  2. package/ChartTooltip/ChartTooltip.js +3 -3
  3. package/ColumnsSettings/ColumnsSettings.d.ts +2 -1
  4. package/ColumnsSettings/ColumnsSettings.js +2 -2
  5. package/ColumnsSettings/ColumnsSettings.test.js +14 -0
  6. package/ColumnsSettings/components/ColumnListItem/ColumnListItem.d.ts +11 -26
  7. package/ColumnsSettings/components/ColumnListItem/ColumnListItem.js +0 -14
  8. package/ColumnsSettings/components/ColumnsSettingsPopup/ColumnsSettingsPopup.d.ts +2 -1
  9. package/ColumnsSettings/components/ColumnsSettingsPopup/ColumnsSettingsPopup.js +2 -2
  10. package/DropDownMenuButton/DropDownMenuButton.js +1 -1
  11. package/HOCs/withAsyncMount/withAsyncMount.test.js +52 -52
  12. package/IgnoreButton/IgnoreButton.spec.js +109 -20
  13. package/Image/Image.d.ts +1 -1
  14. package/Image/Image.js +8 -8
  15. package/Image/Image.test.js +46 -51
  16. package/ImageActionsOverlay/ImageActionsOverlay.js +2 -1
  17. package/ImageActionsOverlay/ImageActionsOverlay.test.js +207 -125
  18. package/ImageActionsOverlay/components/CheckedIcon/CheckedIcon.js +1 -1
  19. package/ImageAttributesGallery/ImageAttributesGallery.test.js +525 -281
  20. package/ImageAttributesLine/ImageAttributesLine.js +1 -1
  21. package/ImageAttributesLine/ImageAttributesLine.test.js +187 -193
  22. package/ImageAttributesLine/imageAttributeValues.test-data.d.ts +10 -0
  23. package/ImageAttributesLine/imageAttributeValues.test-data.js +22 -0
  24. package/ImageAttributesLineEditor/ImageAttributesLineEditor.test.js +315 -298
  25. package/ImageDetailsView/ImageDetailsView.test.js +529 -55
  26. package/ImageDetailsView/attributes.test-data.d.ts +4 -1
  27. package/ImageDetailsView/attributes.test-data.js +98 -1
  28. package/ImageDetailsView/components/ImageDetailsViewCarousel/ImageDetailsViewCarousel.js +2 -2
  29. package/ImageDetailsView/components/MetaInfoItem/MetaInfoItem.js +1 -1
  30. package/ImageDetailsView/components/MetaInfoList/MetaInfoList.js +1 -1
  31. package/ImageDetailsView/components/Thumbnails/Thumbnails.js +1 -1
  32. package/ImageDetailsView/helpers.test.js +4 -4
  33. package/ImageGalleryDialog/ImageGalleryDialog.test.js +89 -46
  34. package/ImportButton/ImportButton.test.js +94 -24
  35. package/InlineAttributesList/InlineAttributesList.test.js +22 -62
  36. package/InlineAttributesList/attributes.test-data.d.ts +4 -2
  37. package/InlineAttributesList/attributes.test-data.js +40 -1
  38. package/InlineAttributesPager/InlineAttributesPager.d.ts +1 -2
  39. package/InlineAttributesPager/InlineAttributesPager.js +1 -4
  40. package/InlineAttributesPager/InlineAttributesPager.test.js +393 -183
  41. package/InlineComplexAttribute/InlineComplexAttribute.js +1 -1
  42. package/InlineComplexAttribute/InlineComplexAttribute.test.js +396 -182
  43. package/InlineImageAttribute/InlineImageAttribute.test.js +103 -55
  44. package/InlineNestedAttribute/InlineNestedAttribute.test.js +105 -43
  45. package/InlineReferenceAttribute/InlineReferenceAttribute.test.js +165 -107
  46. package/InlineSimpleAttribute/InlineSimpleAttribute.spec.js +352 -346
  47. package/InlineSimpleAttributeEditor/InlineSimpleAttributeEditor.test.js +285 -194
  48. package/InternalLink/InternalLink.test.js +41 -11
  49. package/LookupEditor/LookupEditor.test.js +180 -44
  50. package/LookupEditor/components/GroupedDropDownEditor/helpers.test.js +1 -1
  51. package/MapChart/MapChart.js +3 -8
  52. package/MapChart/MapChart.test.js +152 -188
  53. package/MapChart/components/Legend/Legend.js +3 -3
  54. package/MaskingSwitcher/MaskingSwitcher.js +1 -1
  55. package/MatchRulesBadge/MatchRulesBadge.test.js +93 -24
  56. package/SelectEditor/SelectEditor.d.ts +4 -10
  57. package/SelectEditor/SelectEditor.js +0 -4
  58. package/SelectEditor/SelectEditor.test.js +79 -9
  59. package/SelectionPopup/SelectionPopup.d.ts +2 -1
  60. package/SelectionPopup/SelectionPopup.js +3 -3
  61. package/SelectionPopup/SelectionPopup.spec.js +90 -30
  62. package/cjs/AttributeListItem/AttributeListItem.d.ts +1 -1
  63. package/cjs/ChartTooltip/ChartTooltip.js +3 -3
  64. package/cjs/ColumnsSettings/ColumnsSettings.d.ts +2 -1
  65. package/cjs/ColumnsSettings/ColumnsSettings.js +2 -2
  66. package/cjs/ColumnsSettings/ColumnsSettings.test.js +14 -0
  67. package/cjs/ColumnsSettings/components/ColumnListItem/ColumnListItem.d.ts +11 -26
  68. package/cjs/ColumnsSettings/components/ColumnListItem/ColumnListItem.js +0 -14
  69. package/cjs/ColumnsSettings/components/ColumnsSettingsPopup/ColumnsSettingsPopup.d.ts +2 -1
  70. package/cjs/ColumnsSettings/components/ColumnsSettingsPopup/ColumnsSettingsPopup.js +2 -2
  71. package/cjs/DropDownMenuButton/DropDownMenuButton.js +1 -1
  72. package/cjs/HOCs/withAsyncMount/withAsyncMount.test.js +56 -56
  73. package/cjs/IgnoreButton/IgnoreButton.spec.js +109 -20
  74. package/cjs/Image/Image.d.ts +1 -1
  75. package/cjs/Image/Image.js +8 -8
  76. package/cjs/Image/Image.test.js +46 -51
  77. package/cjs/ImageActionsOverlay/ImageActionsOverlay.js +2 -1
  78. package/cjs/ImageActionsOverlay/ImageActionsOverlay.test.js +207 -125
  79. package/cjs/ImageActionsOverlay/components/CheckedIcon/CheckedIcon.js +1 -1
  80. package/cjs/ImageAttributesGallery/ImageAttributesGallery.test.js +525 -281
  81. package/cjs/ImageAttributesLine/ImageAttributesLine.js +1 -1
  82. package/cjs/ImageAttributesLine/ImageAttributesLine.test.js +195 -224
  83. package/cjs/ImageAttributesLine/imageAttributeValues.test-data.d.ts +10 -0
  84. package/cjs/ImageAttributesLine/imageAttributeValues.test-data.js +23 -1
  85. package/cjs/ImageAttributesLineEditor/ImageAttributesLineEditor.test.js +316 -299
  86. package/cjs/ImageDetailsView/ImageDetailsView.test.js +529 -55
  87. package/cjs/ImageDetailsView/attributes.test-data.d.ts +4 -1
  88. package/cjs/ImageDetailsView/attributes.test-data.js +99 -2
  89. package/cjs/ImageDetailsView/components/ImageDetailsViewCarousel/ImageDetailsViewCarousel.js +2 -2
  90. package/cjs/ImageDetailsView/components/MetaInfoItem/MetaInfoItem.js +1 -1
  91. package/cjs/ImageDetailsView/components/MetaInfoList/MetaInfoList.js +1 -1
  92. package/cjs/ImageDetailsView/components/Thumbnails/Thumbnails.js +1 -1
  93. package/cjs/ImageDetailsView/helpers.test.js +3 -3
  94. package/cjs/ImageGalleryDialog/ImageGalleryDialog.test.js +89 -46
  95. package/cjs/ImportButton/ImportButton.test.js +94 -24
  96. package/cjs/InlineAttributesList/InlineAttributesList.test.js +22 -62
  97. package/cjs/InlineAttributesList/attributes.test-data.d.ts +4 -2
  98. package/cjs/InlineAttributesList/attributes.test-data.js +41 -2
  99. package/cjs/InlineAttributesPager/InlineAttributesPager.d.ts +1 -2
  100. package/cjs/InlineAttributesPager/InlineAttributesPager.js +1 -4
  101. package/cjs/InlineAttributesPager/InlineAttributesPager.test.js +393 -183
  102. package/cjs/InlineComplexAttribute/InlineComplexAttribute.js +1 -1
  103. package/cjs/InlineComplexAttribute/InlineComplexAttribute.test.js +395 -204
  104. package/cjs/InlineImageAttribute/InlineImageAttribute.test.js +103 -55
  105. package/cjs/InlineNestedAttribute/InlineNestedAttribute.test.js +105 -43
  106. package/cjs/InlineReferenceAttribute/InlineReferenceAttribute.test.js +164 -106
  107. package/cjs/InlineSimpleAttribute/InlineSimpleAttribute.spec.js +351 -345
  108. package/cjs/InlineSimpleAttributeEditor/InlineSimpleAttributeEditor.test.js +307 -193
  109. package/cjs/InternalLink/InternalLink.test.js +40 -10
  110. package/cjs/LookupEditor/LookupEditor.test.js +178 -65
  111. package/cjs/LookupEditor/components/GroupedDropDownEditor/helpers.test.js +1 -1
  112. package/cjs/MapChart/MapChart.js +3 -8
  113. package/cjs/MapChart/MapChart.test.js +152 -188
  114. package/cjs/MapChart/components/Legend/Legend.js +3 -3
  115. package/cjs/MaskingSwitcher/MaskingSwitcher.js +1 -1
  116. package/cjs/MatchRulesBadge/MatchRulesBadge.test.js +93 -24
  117. package/cjs/SelectEditor/SelectEditor.d.ts +4 -10
  118. package/cjs/SelectEditor/SelectEditor.js +0 -4
  119. package/cjs/SelectEditor/SelectEditor.test.js +79 -9
  120. package/cjs/SelectionPopup/SelectionPopup.d.ts +2 -1
  121. package/cjs/SelectionPopup/SelectionPopup.js +3 -3
  122. package/cjs/SelectionPopup/SelectionPopup.spec.js +90 -30
  123. package/cjs/hooks/useAsyncMount/useAsyncMount.d.ts +1 -1
  124. package/cjs/hooks/useAsyncMount/useAsyncMount.js +1 -1
  125. package/hooks/useAsyncMount/useAsyncMount.d.ts +1 -1
  126. package/hooks/useAsyncMount/useAsyncMount.js +1 -1
  127. package/package.json +1 -1
  128. package/HOCs/withTableContext/withTableContext.test.d.ts +0 -1
  129. package/HOCs/withTableContext/withTableContext.test.js +0 -41
  130. package/ImageAttributesGallery/components/GalleryView/GalleryView.test.d.ts +0 -1
  131. package/ImageAttributesGallery/components/GalleryView/GalleryView.test.js +0 -98
  132. package/ImageDetailsView/components/ImageDetailsViewCarousel/ImageDetailsViewCarousel.test.d.ts +0 -1
  133. package/ImageDetailsView/components/ImageDetailsViewCarousel/ImageDetailsViewCarousel.test.js +0 -99
  134. package/ImageDetailsView/components/ImageDetailsViewSidebar/ImageDetailsViewSidebar.test.d.ts +0 -1
  135. package/ImageDetailsView/components/ImageDetailsViewSidebar/ImageDetailsViewSidebar.test.js +0 -65
  136. package/ImageDetailsView/components/MetaInfo/MetaInfo.test.d.ts +0 -1
  137. package/ImageDetailsView/components/MetaInfo/MetaInfo.test.js +0 -306
  138. package/ImageDetailsView/components/MetaInfoForm/MetaInfoForm.test.d.ts +0 -1
  139. package/ImageDetailsView/components/MetaInfoForm/MetaInfoForm.test.js +0 -134
  140. package/ImageDetailsView/components/MetaInfoHeader/MetaInfoHeader.test.d.ts +0 -1
  141. package/ImageDetailsView/components/MetaInfoHeader/MetaInfoHeader.test.js +0 -99
  142. package/ImageDetailsView/components/MetaInfoItem/MetaInfoItem.test.d.ts +0 -1
  143. package/ImageDetailsView/components/MetaInfoItem/MetaInfoItem.test.js +0 -36
  144. package/ImageDetailsView/components/MetaInfoList/MetaInfoList.test.d.ts +0 -1
  145. package/ImageDetailsView/components/MetaInfoList/MetaInfoList.test.js +0 -161
  146. package/ImageDetailsView/components/Thumbnails/Thumbnails.test.d.ts +0 -1
  147. package/ImageDetailsView/components/Thumbnails/Thumbnails.test.js +0 -76
  148. package/InlineAttributesPager/components/InlineImageAttributesBlock/InlineImageAttributesBlock.test.d.ts +0 -1
  149. package/InlineAttributesPager/components/InlineImageAttributesBlock/InlineImageAttributesBlock.test.js +0 -104
  150. package/InlineAttributesPager/components/InlineNestedAttributesBlock/InlineNestedAttributesBlock.test.d.ts +0 -1
  151. package/InlineAttributesPager/components/InlineNestedAttributesBlock/InlineNestedAttributesBlock.test.js +0 -114
  152. package/InlineAttributesPager/components/InlineReferenceAttributesBlock/InlineReferenceAttributesBlock.test.d.ts +0 -1
  153. package/InlineAttributesPager/components/InlineReferenceAttributesBlock/InlineReferenceAttributesBlock.test.js +0 -177
  154. package/InlineSimpleAttribute/components/CrosswalkMenuItem/CrosswalkMenuItem.spec.d.ts +0 -1
  155. package/InlineSimpleAttribute/components/CrosswalkMenuItem/CrosswalkMenuItem.spec.js +0 -52
  156. package/LookupEditor/components/GroupedDropDownEditor/GroupedDropDownEditor.test.d.ts +0 -1
  157. package/LookupEditor/components/GroupedDropDownEditor/GroupedDropDownEditor.test.js +0 -37
  158. package/cjs/HOCs/withTableContext/withTableContext.test.d.ts +0 -1
  159. package/cjs/HOCs/withTableContext/withTableContext.test.js +0 -46
  160. package/cjs/ImageAttributesGallery/components/GalleryView/GalleryView.test.d.ts +0 -1
  161. package/cjs/ImageAttributesGallery/components/GalleryView/GalleryView.test.js +0 -103
  162. package/cjs/ImageDetailsView/components/ImageDetailsViewCarousel/ImageDetailsViewCarousel.test.d.ts +0 -1
  163. package/cjs/ImageDetailsView/components/ImageDetailsViewCarousel/ImageDetailsViewCarousel.test.js +0 -104
  164. package/cjs/ImageDetailsView/components/ImageDetailsViewSidebar/ImageDetailsViewSidebar.test.d.ts +0 -1
  165. package/cjs/ImageDetailsView/components/ImageDetailsViewSidebar/ImageDetailsViewSidebar.test.js +0 -70
  166. package/cjs/ImageDetailsView/components/MetaInfo/MetaInfo.test.d.ts +0 -1
  167. package/cjs/ImageDetailsView/components/MetaInfo/MetaInfo.test.js +0 -311
  168. package/cjs/ImageDetailsView/components/MetaInfoForm/MetaInfoForm.test.d.ts +0 -1
  169. package/cjs/ImageDetailsView/components/MetaInfoForm/MetaInfoForm.test.js +0 -139
  170. package/cjs/ImageDetailsView/components/MetaInfoHeader/MetaInfoHeader.test.d.ts +0 -1
  171. package/cjs/ImageDetailsView/components/MetaInfoHeader/MetaInfoHeader.test.js +0 -104
  172. package/cjs/ImageDetailsView/components/MetaInfoItem/MetaInfoItem.test.d.ts +0 -1
  173. package/cjs/ImageDetailsView/components/MetaInfoItem/MetaInfoItem.test.js +0 -41
  174. package/cjs/ImageDetailsView/components/MetaInfoList/MetaInfoList.test.d.ts +0 -1
  175. package/cjs/ImageDetailsView/components/MetaInfoList/MetaInfoList.test.js +0 -166
  176. package/cjs/ImageDetailsView/components/Thumbnails/Thumbnails.test.d.ts +0 -1
  177. package/cjs/ImageDetailsView/components/Thumbnails/Thumbnails.test.js +0 -81
  178. package/cjs/InlineAttributesPager/components/InlineImageAttributesBlock/InlineImageAttributesBlock.test.d.ts +0 -1
  179. package/cjs/InlineAttributesPager/components/InlineImageAttributesBlock/InlineImageAttributesBlock.test.js +0 -109
  180. package/cjs/InlineAttributesPager/components/InlineNestedAttributesBlock/InlineNestedAttributesBlock.test.d.ts +0 -1
  181. package/cjs/InlineAttributesPager/components/InlineNestedAttributesBlock/InlineNestedAttributesBlock.test.js +0 -119
  182. package/cjs/InlineAttributesPager/components/InlineReferenceAttributesBlock/InlineReferenceAttributesBlock.test.d.ts +0 -1
  183. package/cjs/InlineAttributesPager/components/InlineReferenceAttributesBlock/InlineReferenceAttributesBlock.test.js +0 -182
  184. package/cjs/InlineSimpleAttribute/components/CrosswalkMenuItem/CrosswalkMenuItem.spec.d.ts +0 -1
  185. package/cjs/InlineSimpleAttribute/components/CrosswalkMenuItem/CrosswalkMenuItem.spec.js +0 -57
  186. package/cjs/LookupEditor/components/GroupedDropDownEditor/GroupedDropDownEditor.test.d.ts +0 -1
  187. package/cjs/LookupEditor/components/GroupedDropDownEditor/GroupedDropDownEditor.test.js +0 -42
@@ -46,201 +46,178 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
46
46
  }
47
47
  };
48
48
  import React from 'react';
49
- import { act } from 'react-dom/test-utils';
50
- import { mount, shallow } from 'enzyme';
51
- import MapChart from './MapChart';
52
- import { Tooltip } from 'recharts';
53
- import { Legend } from './components/Legend';
49
+ import { render, screen } from '@testing-library/react';
50
+ import userEvent from '@testing-library/user-event';
54
51
  import { LEGEND_WIDTH } from './constants';
55
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
56
- // @ts-ignore
57
- import { Geographies, Geography, MapProvider } from 'react-simple-maps';
58
52
  import { PageRequestsAbortingContext } from '../contexts/PageRequestsAbortingContext';
59
- describe('MapChart', function () {
60
- var signal = new AbortController().signal;
61
- var data = [
62
- { label: 'first', value: 1, percent: 1, group: 'AL' },
63
- { label: 'second', value: 2, percent: 99, group: 'AD' }
64
- ];
65
- var props = {
66
- data: data,
67
- width: 600,
68
- height: 300,
69
- options: {
70
- geoUrl: 'some/geo/url',
71
- geoIdName: 'iso_a2'
72
- }
73
- };
74
- var geography = {
75
- type: 'Topology',
76
- arcs: [
77
- [
78
- [5840, 2515],
79
- [5, -5],
80
- [10, -26],
81
- [6, -22],
82
- [13, -7],
83
- [7, -9],
84
- [10, -13],
85
- [4, -13],
86
- [6, -40],
87
- [1, -25],
88
- [-2, -11]
89
- ]
90
- ],
91
- objects: {
92
- europe: {
93
- type: 'GeometryCollection',
94
- geometries: [
95
- {
96
- type: 'Polygon',
97
- properties: {
98
- iso_n3: '008',
99
- name: 'Albania',
100
- iso_a3: 'ALB',
101
- iso_a2: 'AL'
102
- },
103
- arcs: [[0]]
53
+ import MapChart from './MapChart';
54
+ var data = [
55
+ { label: 'first', value: 1, percent: 1, group: 'AL' },
56
+ { label: 'second', value: 2, percent: 99, group: 'AD' }
57
+ ];
58
+ var defaultProps = {
59
+ data: data,
60
+ width: 600,
61
+ height: 300,
62
+ options: { geoUrl: 'some/geo/url', geoIdName: 'iso_a2' }
63
+ };
64
+ var geography = {
65
+ type: 'Topology',
66
+ arcs: [
67
+ [
68
+ [5840, 2515],
69
+ [5, -5],
70
+ [10, -26],
71
+ [6, -22],
72
+ [13, -7],
73
+ [7, -9],
74
+ [10, -13],
75
+ [4, -13],
76
+ [6, -40],
77
+ [1, -25],
78
+ [-2, -11]
79
+ ]
80
+ ],
81
+ objects: {
82
+ europe: {
83
+ type: 'GeometryCollection',
84
+ geometries: [
85
+ {
86
+ type: 'Polygon',
87
+ properties: {
88
+ iso_n3: '008',
89
+ name: 'Albania',
90
+ iso_a3: 'ALB',
91
+ iso_a2: 'AL'
104
92
  },
105
- {
106
- type: 'Polygon',
107
- properties: {
108
- iso_n3: '020',
109
- name: 'Andorra',
110
- iso_a3: 'AND',
111
- iso_a2: 'AD'
112
- },
113
- arcs: [[0]]
114
- }
115
- ]
116
- }
93
+ arcs: [[0]]
94
+ },
95
+ {
96
+ type: 'Polygon',
97
+ properties: {
98
+ iso_n3: '020',
99
+ name: 'Andorra',
100
+ iso_a3: 'AND',
101
+ iso_a2: 'AD'
102
+ },
103
+ arcs: [[0]]
104
+ }
105
+ ]
117
106
  }
118
- };
107
+ }
108
+ };
109
+ describe('MapChart', function () {
110
+ var signal = new AbortController().signal;
119
111
  beforeAll(function () {
120
- jest.spyOn(window, 'fetch').mockResolvedValue({
121
- ok: true,
122
- json: function () { return Promise.resolve(geography); }
123
- });
112
+ jest.spyOn(window, 'fetch').mockResolvedValue({ ok: true, json: function () { return Promise.resolve(geography); } });
124
113
  });
114
+ var setUp = function (props) {
115
+ if (props === void 0) { props = {}; }
116
+ var user = userEvent.setup();
117
+ var Providers = function (_a) {
118
+ var children = _a.children;
119
+ return (React.createElement(PageRequestsAbortingContext.Provider, { value: signal }, children));
120
+ };
121
+ return __assign({ user: user }, render(React.createElement(MapChart, __assign({}, defaultProps, props)), { wrapper: Providers }));
122
+ };
125
123
  it('should render ComposableMap with Geographies, Legend and Tooltip', function () { return __awaiter(void 0, void 0, void 0, function () {
126
- var wrapper, mapWidth, mapHeight, mapProvider, map, g;
127
- return __generator(this, function (_a) {
128
- switch (_a.label) {
129
- case 0: return [4 /*yield*/, act(function () { return __awaiter(void 0, void 0, void 0, function () {
130
- return __generator(this, function (_a) {
131
- wrapper = mount(React.createElement(PageRequestsAbortingContext.Provider, { value: signal },
132
- React.createElement(MapChart, __assign({}, props))));
133
- return [2 /*return*/];
134
- });
135
- }); })];
124
+ var user, mapChart, mapChartSvg, _a, firstGeo, secondGeo;
125
+ return __generator(this, function (_b) {
126
+ switch (_b.label) {
127
+ case 0:
128
+ user = setUp().user;
129
+ expect(window.fetch).toHaveBeenCalledWith(defaultProps.options.geoUrl, { signal: signal });
130
+ mapChart = screen.getByTestId('map-chart');
131
+ mapChartSvg = mapChart.querySelector('svg');
132
+ expect(mapChart).toHaveStyle({ width: "".concat(defaultProps.width, "px"), height: "".concat(defaultProps.height, "px") });
133
+ expect(mapChartSvg).toHaveAttribute('width', "".concat(defaultProps.width - LEGEND_WIDTH));
134
+ expect(mapChartSvg).toHaveAttribute('height', "".concat(defaultProps.height));
135
+ return [4 /*yield*/, screen.findAllByTestId('map-geography')];
136
136
  case 1:
137
- _a.sent();
138
- wrapper.update();
139
- expect(window.fetch).toHaveBeenCalledWith(props.options.geoUrl, { signal: signal });
140
- mapWidth = props.width - LEGEND_WIDTH;
141
- mapHeight = props.height;
142
- mapProvider = wrapper.find(MapProvider);
143
- expect(mapProvider.prop('width')).toBe(mapWidth);
144
- expect(mapProvider.prop('height')).toBe(mapHeight);
145
- map = mapProvider.find('svg');
146
- expect(map.props()).toMatchObject({
147
- width: mapWidth,
148
- height: mapHeight,
149
- viewBox: "0 0 ".concat(mapWidth, " ").concat(mapHeight)
150
- });
151
- expect(map.find(Geographies).prop('geography')).toBe(geography);
152
- g = map.find(Geography);
153
- expect(g).toHaveLength(2);
154
- expect(g.first().prop('fill')).toBe('rgb(205, 224, 254)'); //#CDE0FE
155
- expect(g.last().prop('fill')).toBe('rgb(1, 96, 173)'); //#0160AD
156
- expect(wrapper.find(Legend).props()).toMatchObject({
157
- width: LEGEND_WIDTH,
158
- minValue: 1,
159
- maxValue: 2
160
- });
161
- expect(wrapper.find(Tooltip)).toHaveLength(1);
137
+ _a = _b.sent(), firstGeo = _a[0], secondGeo = _a[1];
138
+ expect(firstGeo).toHaveAttribute('fill', 'rgb(205, 224, 254)');
139
+ expect(secondGeo).toHaveAttribute('fill', 'rgb(1, 96, 173)');
140
+ expect(screen.getByTestId('map-chart-legend')).toBeInTheDocument();
141
+ expect(screen.getByTestId('max-legend-metric')).toHaveTextContent('2');
142
+ expect(screen.getByTestId('min-legend-metric')).toHaveTextContent('1');
143
+ expect(screen.queryByText('first')).not.toBeInTheDocument();
144
+ return [4 /*yield*/, user.hover(firstGeo)];
145
+ case 2:
146
+ _b.sent();
147
+ expect(screen.getByTestId('chart-tooltip')).toBeInTheDocument();
148
+ expect(screen.getByText('first')).toBeInTheDocument();
149
+ expect(screen.getByTestId('chart-tooltip-value')).toHaveTextContent('1 (33.3%)');
162
150
  return [2 /*return*/];
163
151
  }
164
152
  });
165
153
  }); });
166
154
  it('should not fail and use default projection when it is empty string', function () { return __awaiter(void 0, void 0, void 0, function () {
167
- var wrapper, mapProvider;
168
- return __generator(this, function (_a) {
169
- switch (_a.label) {
170
- case 0: return [4 /*yield*/, act(function () { return __awaiter(void 0, void 0, void 0, function () {
171
- return __generator(this, function (_a) {
172
- wrapper = mount(React.createElement(MapChart, __assign({}, props, { options: {
173
- geoUrl: 'some/geo/url',
174
- geoIdName: 'iso_a2',
175
- projection: ''
176
- } })));
177
- return [2 /*return*/];
178
- });
179
- }); })];
155
+ var _a;
156
+ return __generator(this, function (_b) {
157
+ switch (_b.label) {
158
+ case 0:
159
+ setUp({ options: __assign(__assign({}, defaultProps.options), { projection: '' }) });
160
+ expect(window.fetch).toHaveBeenCalledWith(defaultProps.options.geoUrl, { signal: signal });
161
+ _a = expect;
162
+ return [4 /*yield*/, screen.findAllByTestId('map-geography')];
180
163
  case 1:
181
- _a.sent();
182
- wrapper.update();
183
- mapProvider = wrapper.find(MapProvider);
184
- expect(mapProvider).toHaveLength(1);
185
- expect(mapProvider.find('svg')).toHaveLength(1);
186
- expect(mapProvider.find(Geographies).prop('geography')).toBe(geography);
164
+ _a.apply(void 0, [_b.sent()]).toHaveLength(2);
165
+ expect(screen.getByTestId('map-chart')).toBeInTheDocument();
187
166
  return [2 /*return*/];
188
167
  }
189
168
  });
190
169
  }); });
191
170
  it('should not fail and use default projection when it is incorrect', function () { return __awaiter(void 0, void 0, void 0, function () {
192
- var wrapper, mapProvider;
193
- return __generator(this, function (_a) {
194
- switch (_a.label) {
195
- case 0: return [4 /*yield*/, act(function () { return __awaiter(void 0, void 0, void 0, function () {
196
- return __generator(this, function (_a) {
197
- wrapper = mount(React.createElement(MapChart, __assign({}, props, { options: {
198
- geoUrl: 'some/geo/url',
199
- geoIdName: 'iso_a2',
200
- projection: 'wrong'
201
- } })));
202
- return [2 /*return*/];
203
- });
204
- }); })];
171
+ var _a;
172
+ return __generator(this, function (_b) {
173
+ switch (_b.label) {
174
+ case 0:
175
+ setUp({ options: __assign(__assign({}, defaultProps.options), { projection: 'wrong' }) });
176
+ expect(window.fetch).toHaveBeenCalledWith(defaultProps.options.geoUrl, { signal: signal });
177
+ _a = expect;
178
+ return [4 /*yield*/, screen.findAllByTestId('map-geography')];
205
179
  case 1:
206
- _a.sent();
207
- wrapper.update();
208
- mapProvider = wrapper.find(MapProvider);
209
- expect(mapProvider).toHaveLength(1);
210
- expect(mapProvider.find('svg')).toHaveLength(1);
211
- expect(mapProvider.find(Geographies).prop('geography')).toBe(geography);
180
+ _a.apply(void 0, [_b.sent()]).toHaveLength(2);
181
+ expect(screen.getByTestId('map-chart')).toBeInTheDocument();
182
+ return [2 /*return*/];
183
+ }
184
+ });
185
+ }); });
186
+ it('should not render Legend when props.options.showLegend = false', function () { return __awaiter(void 0, void 0, void 0, function () {
187
+ var _a;
188
+ return __generator(this, function (_b) {
189
+ switch (_b.label) {
190
+ case 0:
191
+ setUp({ options: __assign(__assign({}, defaultProps.options), { showLegend: false }) });
192
+ _a = expect;
193
+ return [4 /*yield*/, screen.findAllByTestId('map-geography')];
194
+ case 1:
195
+ _a.apply(void 0, [_b.sent()]).toHaveLength(2);
196
+ expect(screen.queryByTestId('map-chart-legend')).not.toBeInTheDocument();
212
197
  return [2 /*return*/];
213
198
  }
214
199
  });
215
200
  }); });
216
- it('should not render Legend when props.options.showLegend = false', function () {
217
- var wrapper = shallow(React.createElement(MapChart, __assign({}, props, { options: { showLegend: false } })));
218
- expect(wrapper.find(Legend)).toHaveLength(0);
219
- });
220
201
  it('should call props.onItemClick on geography click', function () { return __awaiter(void 0, void 0, void 0, function () {
221
- var onItemClick, wrapper, geography;
202
+ var onItemClick, user, firstGeo;
222
203
  return __generator(this, function (_a) {
223
204
  switch (_a.label) {
224
205
  case 0:
225
206
  onItemClick = jest.fn();
226
- return [4 /*yield*/, act(function () { return __awaiter(void 0, void 0, void 0, function () {
227
- return __generator(this, function (_a) {
228
- wrapper = mount(React.createElement(MapChart, __assign({}, props, { onItemClick: onItemClick })));
229
- return [2 /*return*/];
230
- });
231
- }); })];
207
+ user = setUp({ onItemClick: onItemClick }).user;
208
+ return [4 /*yield*/, screen.findAllByTestId('map-geography')];
232
209
  case 1:
210
+ firstGeo = (_a.sent())[0];
211
+ return [4 /*yield*/, user.click(firstGeo)];
212
+ case 2:
233
213
  _a.sent();
234
- wrapper.update();
235
- geography = wrapper.find(Geography).first();
236
- geography.simulate('click');
237
214
  expect(onItemClick).toHaveBeenCalledWith('AL');
238
215
  return [2 /*return*/];
239
216
  }
240
217
  });
241
218
  }); });
242
219
  it('should render ComposableMap with Geographies, Legend and Tooltip if we get FeatureCollection instead of GeometryCollection', function () { return __awaiter(void 0, void 0, void 0, function () {
243
- var FutureCollection, wrapper, mapWidth, mapHeight, mapProvider, map, g;
220
+ var FutureCollection, user, mapChart, mapChartSvg, geo;
244
221
  return __generator(this, function (_a) {
245
222
  switch (_a.label) {
246
223
  case 0:
@@ -286,38 +263,25 @@ describe('MapChart', function () {
286
263
  ok: true,
287
264
  json: function () { return Promise.resolve(FutureCollection); }
288
265
  });
289
- return [4 /*yield*/, act(function () { return __awaiter(void 0, void 0, void 0, function () {
290
- return __generator(this, function (_a) {
291
- wrapper = mount(React.createElement(PageRequestsAbortingContext.Provider, { value: signal },
292
- React.createElement(MapChart, __assign({}, props))));
293
- return [2 /*return*/];
294
- });
295
- }); })];
266
+ user = setUp().user;
267
+ expect(window.fetch).toHaveBeenCalledWith(defaultProps.options.geoUrl, { signal: signal });
268
+ mapChart = screen.getByTestId('map-chart');
269
+ mapChartSvg = mapChart.querySelector('svg');
270
+ expect(mapChart).toHaveStyle({ width: "".concat(defaultProps.width, "px"), height: "".concat(defaultProps.height, "px") });
271
+ expect(mapChartSvg).toHaveAttribute('width', "".concat(defaultProps.width - LEGEND_WIDTH));
272
+ expect(mapChartSvg).toHaveAttribute('height', "".concat(defaultProps.height));
273
+ return [4 /*yield*/, screen.findByTestId('map-geography')];
296
274
  case 1:
275
+ geo = _a.sent();
276
+ expect(geo).toHaveAttribute('fill', '#EEE');
277
+ expect(screen.getByTestId('map-chart-legend')).toBeInTheDocument();
278
+ expect(screen.getByTestId('max-legend-metric')).toHaveTextContent('2');
279
+ expect(screen.getByTestId('min-legend-metric')).toHaveTextContent('1');
280
+ expect(screen.queryByText('first')).not.toBeInTheDocument();
281
+ return [4 /*yield*/, user.hover(geo)];
282
+ case 2:
297
283
  _a.sent();
298
- wrapper.update();
299
- expect(window.fetch).toHaveBeenCalledWith(props.options.geoUrl, { signal: signal });
300
- mapWidth = props.width - LEGEND_WIDTH;
301
- mapHeight = props.height;
302
- mapProvider = wrapper.find(MapProvider);
303
- expect(mapProvider.prop('width')).toBe(mapWidth);
304
- expect(mapProvider.prop('height')).toBe(mapHeight);
305
- map = mapProvider.find('svg');
306
- expect(map.props()).toMatchObject({
307
- width: mapWidth,
308
- height: mapHeight,
309
- viewBox: "0 0 ".concat(mapWidth, " ").concat(mapHeight)
310
- });
311
- expect(map.find(Geographies).prop('geography')).toBe(FutureCollection);
312
- g = map.find(Geography);
313
- expect(g).toHaveLength(1);
314
- expect(g.first().prop('fill')).toBe('#EEE');
315
- expect(wrapper.find(Legend).props()).toMatchObject({
316
- width: LEGEND_WIDTH,
317
- minValue: 1,
318
- maxValue: 2
319
- });
320
- expect(wrapper.find(Tooltip)).toHaveLength(1);
284
+ expect(screen.getByTestId('chart-tooltip')).toBeInTheDocument();
321
285
  return [2 /*return*/];
322
286
  }
323
287
  });
@@ -9,8 +9,8 @@ export var Legend = function (_a) {
9
9
  colors: colors,
10
10
  width: width
11
11
  });
12
- return (React.createElement("div", { className: styles.legendContainer },
13
- React.createElement(Typography, { className: classnames(styles.legendLabel, styles.alignTop) }, formatNumberAsMetric(maxValue)),
12
+ return (React.createElement("div", { "data-reltio-id": "map-chart-legend", className: styles.legendContainer },
13
+ React.createElement(Typography, { "data-reltio-id": "max-legend-metric", className: classnames(styles.legendLabel, styles.alignTop) }, formatNumberAsMetric(maxValue)),
14
14
  React.createElement("div", { className: styles.legendBar }),
15
- React.createElement(Typography, { className: classnames(styles.legendLabel, styles.alignBottom) }, formatNumberAsMetric(minValue))));
15
+ React.createElement(Typography, { "data-reltio-id": "min-legend-metric", className: classnames(styles.legendLabel, styles.alignBottom) }, formatNumberAsMetric(minValue))));
16
16
  };
@@ -12,5 +12,5 @@ export var MaskingSwitcher = function (_a) {
12
12
  var styles = useStyles();
13
13
  var tooltipTitle = isMasked ? i18n.text('Show') : i18n.text('Hide');
14
14
  return isUnmasking ? (React.createElement(CircularProgress, { size: 16, className: classnames(className, styles.switcherWrapper) })) : (React.createElement(Tooltip, { key: String(isMasked), title: tooltipTitle },
15
- React.createElement(IconButton, { "aria-label": tooltipTitle, onClick: onToggleMasking, className: classnames(className, styles.switcherWrapper) }, isMasked ? React.createElement(VisibilityIcon, { className: styles.icon }) : React.createElement(VisibilityOffIcon, { className: styles.icon }))));
15
+ React.createElement(IconButton, { "data-reltio-id": "masking-switcher", "aria-label": tooltipTitle, onClick: onToggleMasking, className: classnames(className, styles.switcherWrapper) }, isMasked ? React.createElement(VisibilityIcon, { className: styles.icon }) : React.createElement(VisibilityOffIcon, { className: styles.icon }))));
16
16
  };
@@ -9,36 +9,105 @@ var __assign = (this && this.__assign) || function () {
9
9
  };
10
10
  return __assign.apply(this, arguments);
11
11
  };
12
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
13
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
14
+ return new (P || (P = Promise))(function (resolve, reject) {
15
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
16
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
17
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
18
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
19
+ });
20
+ };
21
+ var __generator = (this && this.__generator) || function (thisArg, body) {
22
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
23
+ return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
24
+ function verb(n) { return function (v) { return step([n, v]); }; }
25
+ function step(op) {
26
+ if (f) throw new TypeError("Generator is already executing.");
27
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
28
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
29
+ if (y = 0, t) op = [op[0] & 2, t.value];
30
+ switch (op[0]) {
31
+ case 0: case 1: t = op; break;
32
+ case 4: _.label++; return { value: op[1], done: false };
33
+ case 5: _.label++; y = op[1]; op = [0]; continue;
34
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
35
+ default:
36
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
37
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
38
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
39
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
40
+ if (t[2]) _.ops.pop();
41
+ _.trys.pop(); continue;
42
+ }
43
+ op = body.call(thisArg, _);
44
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
45
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
46
+ }
47
+ };
12
48
  import React from 'react';
13
- import { shallow } from 'enzyme';
49
+ import { render, screen } from '@testing-library/react';
50
+ import userEvent from '@testing-library/user-event';
14
51
  import { MatchRulesBadge } from './MatchRulesBadge';
15
- import { ArrowExpandButton } from '../ArrowExpandButton';
16
- var setUp = function (props) { return shallow(React.createElement(MatchRulesBadge, __assign({}, props), "label")); };
17
- describe('MatchRulesBadge test', function () {
18
- var getLabel = function (component) { return component.find('.label'); };
19
- var getArrow = function (component) { return component.find(ArrowExpandButton); };
20
- var getContainer = function (component) { return component.find('.container'); };
52
+ import { getMuiIconByName } from '../test-utils';
53
+ var defaultProps = {
54
+ children: 'label',
55
+ expanded: false,
56
+ onExpand: jest.fn()
57
+ };
58
+ var setUp = function (props) {
59
+ if (props === void 0) { props = {}; }
60
+ var user = userEvent.setup();
61
+ return __assign({ user: user }, render(React.createElement(MatchRulesBadge, __assign({}, defaultProps, props))));
62
+ };
63
+ describe('MatchRulesBadge tests', function () {
21
64
  it('should render children as label correctly', function () {
22
- var component = setUp({});
23
- expect(getLabel(component).text()).toBe('label');
65
+ setUp();
66
+ expect(screen.getByText('label')).toBeInTheDocument();
24
67
  });
25
68
  it('should provide expanded prop to arrow', function () {
26
- var component = setUp({ expanded: true });
27
- expect(getArrow(component).prop('expanded')).toBe(true);
28
- component.setProps({ expanded: false });
29
- expect(getArrow(component).prop('expanded')).toBe(false);
69
+ var rerender = setUp({ expanded: true }).rerender;
70
+ expect(getMuiIconByName('ArrowRight')).toHaveClass('expanded');
71
+ rerender(React.createElement(MatchRulesBadge, __assign({}, defaultProps, { expanded: false }), "label"));
72
+ expect(getMuiIconByName('ArrowRight')).not.toHaveClass('expanded');
30
73
  });
31
- it('should provide onExpand props as onClick handler to container', function () {
32
- var onExpand = jest.fn();
33
- var component = setUp({ onExpand: onExpand });
34
- expect(getContainer(component).prop('onClick')).toBe(onExpand);
35
- getContainer(component).simulate('click');
36
- expect(onExpand).toHaveBeenCalled();
74
+ it('should provide call onExpand on click', function () { return __awaiter(void 0, void 0, void 0, function () {
75
+ var user;
76
+ return __generator(this, function (_a) {
77
+ switch (_a.label) {
78
+ case 0:
79
+ user = setUp().user;
80
+ return [4 /*yield*/, user.click(screen.getByRole('button'))];
81
+ case 1:
82
+ _a.sent();
83
+ expect(defaultProps.onExpand).toHaveBeenCalled();
84
+ return [2 /*return*/];
85
+ }
86
+ });
87
+ }); });
88
+ it('should provide other props to container for work with withTooltip hoc', function () { return __awaiter(void 0, void 0, void 0, function () {
89
+ var onMouseEnter, user;
90
+ return __generator(this, function (_a) {
91
+ switch (_a.label) {
92
+ case 0:
93
+ onMouseEnter = jest.fn();
94
+ user = setUp({ onMouseEnter: onMouseEnter }).user;
95
+ return [4 /*yield*/, user.hover(screen.getByRole('button'))];
96
+ case 1:
97
+ _a.sent();
98
+ expect(onMouseEnter).toHaveBeenCalled();
99
+ return [2 /*return*/];
100
+ }
101
+ });
102
+ }); });
103
+ it('should apply custom className', function () {
104
+ var className = 'custom-class';
105
+ setUp({ className: className });
106
+ expect(screen.getByRole('button').parentElement).toHaveClass(className);
37
107
  });
38
- it('should provide other props to container for work with withTooltip hoc', function () {
39
- var onHover = jest.fn();
40
- var component = setUp({ onHover: onHover });
41
- var container = getContainer(component);
42
- expect(container.prop('onHover')).toBe(onHover);
108
+ it('should forward ref to the container', function () {
109
+ var ref = React.createRef();
110
+ setUp({ ref: ref });
111
+ expect(ref.current).toBeInstanceOf(HTMLDivElement);
43
112
  });
44
113
  });
@@ -1,11 +1,5 @@
1
- export function SelectEditor({ classes, ...otherProps }: {
2
- [x: string]: any;
3
- classes: any;
4
- }): React.JSX.Element;
5
- export namespace SelectEditor {
6
- namespace propTypes {
7
- let classes: PropTypes.Requireable<object>;
8
- }
9
- }
10
1
  import React from 'react';
11
- import PropTypes from 'prop-types';
2
+ import { DropDownEditor } from '../DropDownEditor';
3
+ type Props = React.ComponentProps<typeof DropDownEditor>;
4
+ export declare const SelectEditor: ({ classes, ...otherProps }: Props) => React.JSX.Element;
5
+ export {};
@@ -21,7 +21,6 @@ var __rest = (this && this.__rest) || function (s, e) {
21
21
  return t;
22
22
  };
23
23
  import React from 'react';
24
- import PropTypes from 'prop-types';
25
24
  import classnames from 'classnames';
26
25
  import { prop } from 'ramda';
27
26
  import { DropDownEditor } from '../DropDownEditor';
@@ -33,6 +32,3 @@ export var SelectEditor = function (_a) {
33
32
  disableAutoFocusItem: true
34
33
  }, classes: __assign(__assign({}, classes), { root: classnames(styles.root, prop('root', classes)), icon: classnames(styles.icon, prop('icon', classes)) }) }, otherProps)));
35
34
  };
36
- SelectEditor.propTypes = {
37
- classes: PropTypes.object
38
- };