@reltio/components 1.4.2051 → 1.4.2053

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 (171) hide show
  1. package/AttributeListItem/AttributeListItem.d.ts +1 -1
  2. package/ChartTooltip/ChartTooltip.js +3 -3
  3. package/ColumnsSettings/components/ColumnListItem/ColumnListItem.d.ts +11 -26
  4. package/ColumnsSettings/components/ColumnListItem/ColumnListItem.js +0 -14
  5. package/DropDownMenuButton/DropDownMenuButton.js +1 -1
  6. package/HOCs/withAsyncMount/withAsyncMount.test.js +52 -52
  7. package/IgnoreButton/IgnoreButton.spec.js +109 -20
  8. package/Image/Image.d.ts +1 -1
  9. package/Image/Image.js +8 -8
  10. package/Image/Image.test.js +46 -51
  11. package/ImageActionsOverlay/ImageActionsOverlay.js +2 -1
  12. package/ImageActionsOverlay/ImageActionsOverlay.test.js +207 -125
  13. package/ImageActionsOverlay/components/CheckedIcon/CheckedIcon.js +1 -1
  14. package/ImageAttributesGallery/ImageAttributesGallery.test.js +525 -281
  15. package/ImageAttributesLine/ImageAttributesLine.js +1 -1
  16. package/ImageAttributesLine/ImageAttributesLine.test.js +187 -193
  17. package/ImageAttributesLine/imageAttributeValues.test-data.d.ts +10 -0
  18. package/ImageAttributesLine/imageAttributeValues.test-data.js +22 -0
  19. package/ImageAttributesLineEditor/ImageAttributesLineEditor.test.js +315 -298
  20. package/ImageDetailsView/ImageDetailsView.test.js +529 -55
  21. package/ImageDetailsView/attributes.test-data.d.ts +4 -1
  22. package/ImageDetailsView/attributes.test-data.js +98 -1
  23. package/ImageDetailsView/components/ImageDetailsViewCarousel/ImageDetailsViewCarousel.js +2 -2
  24. package/ImageDetailsView/components/MetaInfoItem/MetaInfoItem.js +1 -1
  25. package/ImageDetailsView/components/MetaInfoList/MetaInfoList.js +1 -1
  26. package/ImageDetailsView/components/Thumbnails/Thumbnails.js +1 -1
  27. package/ImageDetailsView/helpers.test.js +4 -4
  28. package/ImageGalleryDialog/ImageGalleryDialog.test.js +89 -46
  29. package/ImportButton/ImportButton.test.js +94 -24
  30. package/InlineAttributesList/InlineAttributesList.test.js +22 -62
  31. package/InlineAttributesList/attributes.test-data.d.ts +4 -2
  32. package/InlineAttributesList/attributes.test-data.js +40 -1
  33. package/InlineAttributesPager/InlineAttributesPager.d.ts +1 -2
  34. package/InlineAttributesPager/InlineAttributesPager.js +1 -4
  35. package/InlineAttributesPager/InlineAttributesPager.test.js +393 -183
  36. package/InlineComplexAttribute/InlineComplexAttribute.js +1 -1
  37. package/InlineComplexAttribute/InlineComplexAttribute.test.js +396 -182
  38. package/InlineImageAttribute/InlineImageAttribute.test.js +103 -55
  39. package/InlineNestedAttribute/InlineNestedAttribute.test.js +105 -43
  40. package/InlineReferenceAttribute/InlineReferenceAttribute.test.js +165 -107
  41. package/InlineSimpleAttribute/InlineSimpleAttribute.spec.js +352 -346
  42. package/InlineSimpleAttributeEditor/InlineSimpleAttributeEditor.test.js +285 -194
  43. package/InternalLink/InternalLink.test.js +41 -11
  44. package/LookupEditor/LookupEditor.test.js +180 -44
  45. package/LookupEditor/components/GroupedDropDownEditor/helpers.test.js +1 -1
  46. package/MapChart/MapChart.js +3 -8
  47. package/MapChart/MapChart.test.js +152 -188
  48. package/MapChart/components/Legend/Legend.js +3 -3
  49. package/MaskingSwitcher/MaskingSwitcher.js +1 -1
  50. package/MatchRulesBadge/MatchRulesBadge.test.js +93 -24
  51. package/SelectEditor/SelectEditor.d.ts +4 -10
  52. package/SelectEditor/SelectEditor.js +0 -4
  53. package/SelectEditor/SelectEditor.test.js +79 -9
  54. package/cjs/AttributeListItem/AttributeListItem.d.ts +1 -1
  55. package/cjs/ChartTooltip/ChartTooltip.js +3 -3
  56. package/cjs/ColumnsSettings/components/ColumnListItem/ColumnListItem.d.ts +11 -26
  57. package/cjs/ColumnsSettings/components/ColumnListItem/ColumnListItem.js +0 -14
  58. package/cjs/DropDownMenuButton/DropDownMenuButton.js +1 -1
  59. package/cjs/HOCs/withAsyncMount/withAsyncMount.test.js +56 -56
  60. package/cjs/IgnoreButton/IgnoreButton.spec.js +109 -20
  61. package/cjs/Image/Image.d.ts +1 -1
  62. package/cjs/Image/Image.js +8 -8
  63. package/cjs/Image/Image.test.js +46 -51
  64. package/cjs/ImageActionsOverlay/ImageActionsOverlay.js +2 -1
  65. package/cjs/ImageActionsOverlay/ImageActionsOverlay.test.js +207 -125
  66. package/cjs/ImageActionsOverlay/components/CheckedIcon/CheckedIcon.js +1 -1
  67. package/cjs/ImageAttributesGallery/ImageAttributesGallery.test.js +525 -281
  68. package/cjs/ImageAttributesLine/ImageAttributesLine.js +1 -1
  69. package/cjs/ImageAttributesLine/ImageAttributesLine.test.js +195 -224
  70. package/cjs/ImageAttributesLine/imageAttributeValues.test-data.d.ts +10 -0
  71. package/cjs/ImageAttributesLine/imageAttributeValues.test-data.js +23 -1
  72. package/cjs/ImageAttributesLineEditor/ImageAttributesLineEditor.test.js +316 -299
  73. package/cjs/ImageDetailsView/ImageDetailsView.test.js +529 -55
  74. package/cjs/ImageDetailsView/attributes.test-data.d.ts +4 -1
  75. package/cjs/ImageDetailsView/attributes.test-data.js +99 -2
  76. package/cjs/ImageDetailsView/components/ImageDetailsViewCarousel/ImageDetailsViewCarousel.js +2 -2
  77. package/cjs/ImageDetailsView/components/MetaInfoItem/MetaInfoItem.js +1 -1
  78. package/cjs/ImageDetailsView/components/MetaInfoList/MetaInfoList.js +1 -1
  79. package/cjs/ImageDetailsView/components/Thumbnails/Thumbnails.js +1 -1
  80. package/cjs/ImageDetailsView/helpers.test.js +3 -3
  81. package/cjs/ImageGalleryDialog/ImageGalleryDialog.test.js +89 -46
  82. package/cjs/ImportButton/ImportButton.test.js +94 -24
  83. package/cjs/InlineAttributesList/InlineAttributesList.test.js +22 -62
  84. package/cjs/InlineAttributesList/attributes.test-data.d.ts +4 -2
  85. package/cjs/InlineAttributesList/attributes.test-data.js +41 -2
  86. package/cjs/InlineAttributesPager/InlineAttributesPager.d.ts +1 -2
  87. package/cjs/InlineAttributesPager/InlineAttributesPager.js +1 -4
  88. package/cjs/InlineAttributesPager/InlineAttributesPager.test.js +393 -183
  89. package/cjs/InlineComplexAttribute/InlineComplexAttribute.js +1 -1
  90. package/cjs/InlineComplexAttribute/InlineComplexAttribute.test.js +395 -204
  91. package/cjs/InlineImageAttribute/InlineImageAttribute.test.js +103 -55
  92. package/cjs/InlineNestedAttribute/InlineNestedAttribute.test.js +105 -43
  93. package/cjs/InlineReferenceAttribute/InlineReferenceAttribute.test.js +164 -106
  94. package/cjs/InlineSimpleAttribute/InlineSimpleAttribute.spec.js +351 -345
  95. package/cjs/InlineSimpleAttributeEditor/InlineSimpleAttributeEditor.test.js +307 -193
  96. package/cjs/InternalLink/InternalLink.test.js +40 -10
  97. package/cjs/LookupEditor/LookupEditor.test.js +178 -65
  98. package/cjs/LookupEditor/components/GroupedDropDownEditor/helpers.test.js +1 -1
  99. package/cjs/MapChart/MapChart.js +3 -8
  100. package/cjs/MapChart/MapChart.test.js +152 -188
  101. package/cjs/MapChart/components/Legend/Legend.js +3 -3
  102. package/cjs/MaskingSwitcher/MaskingSwitcher.js +1 -1
  103. package/cjs/MatchRulesBadge/MatchRulesBadge.test.js +93 -24
  104. package/cjs/SelectEditor/SelectEditor.d.ts +4 -10
  105. package/cjs/SelectEditor/SelectEditor.js +0 -4
  106. package/cjs/SelectEditor/SelectEditor.test.js +79 -9
  107. package/cjs/hooks/useAsyncMount/useAsyncMount.d.ts +1 -1
  108. package/cjs/hooks/useAsyncMount/useAsyncMount.js +1 -1
  109. package/hooks/useAsyncMount/useAsyncMount.d.ts +1 -1
  110. package/hooks/useAsyncMount/useAsyncMount.js +1 -1
  111. package/package.json +2 -2
  112. package/HOCs/withTableContext/withTableContext.test.d.ts +0 -1
  113. package/HOCs/withTableContext/withTableContext.test.js +0 -41
  114. package/ImageAttributesGallery/components/GalleryView/GalleryView.test.d.ts +0 -1
  115. package/ImageAttributesGallery/components/GalleryView/GalleryView.test.js +0 -98
  116. package/ImageDetailsView/components/ImageDetailsViewCarousel/ImageDetailsViewCarousel.test.d.ts +0 -1
  117. package/ImageDetailsView/components/ImageDetailsViewCarousel/ImageDetailsViewCarousel.test.js +0 -99
  118. package/ImageDetailsView/components/ImageDetailsViewSidebar/ImageDetailsViewSidebar.test.d.ts +0 -1
  119. package/ImageDetailsView/components/ImageDetailsViewSidebar/ImageDetailsViewSidebar.test.js +0 -65
  120. package/ImageDetailsView/components/MetaInfo/MetaInfo.test.d.ts +0 -1
  121. package/ImageDetailsView/components/MetaInfo/MetaInfo.test.js +0 -306
  122. package/ImageDetailsView/components/MetaInfoForm/MetaInfoForm.test.d.ts +0 -1
  123. package/ImageDetailsView/components/MetaInfoForm/MetaInfoForm.test.js +0 -134
  124. package/ImageDetailsView/components/MetaInfoHeader/MetaInfoHeader.test.d.ts +0 -1
  125. package/ImageDetailsView/components/MetaInfoHeader/MetaInfoHeader.test.js +0 -99
  126. package/ImageDetailsView/components/MetaInfoItem/MetaInfoItem.test.d.ts +0 -1
  127. package/ImageDetailsView/components/MetaInfoItem/MetaInfoItem.test.js +0 -36
  128. package/ImageDetailsView/components/MetaInfoList/MetaInfoList.test.d.ts +0 -1
  129. package/ImageDetailsView/components/MetaInfoList/MetaInfoList.test.js +0 -161
  130. package/ImageDetailsView/components/Thumbnails/Thumbnails.test.d.ts +0 -1
  131. package/ImageDetailsView/components/Thumbnails/Thumbnails.test.js +0 -76
  132. package/InlineAttributesPager/components/InlineImageAttributesBlock/InlineImageAttributesBlock.test.d.ts +0 -1
  133. package/InlineAttributesPager/components/InlineImageAttributesBlock/InlineImageAttributesBlock.test.js +0 -104
  134. package/InlineAttributesPager/components/InlineNestedAttributesBlock/InlineNestedAttributesBlock.test.d.ts +0 -1
  135. package/InlineAttributesPager/components/InlineNestedAttributesBlock/InlineNestedAttributesBlock.test.js +0 -114
  136. package/InlineAttributesPager/components/InlineReferenceAttributesBlock/InlineReferenceAttributesBlock.test.d.ts +0 -1
  137. package/InlineAttributesPager/components/InlineReferenceAttributesBlock/InlineReferenceAttributesBlock.test.js +0 -177
  138. package/InlineSimpleAttribute/components/CrosswalkMenuItem/CrosswalkMenuItem.spec.d.ts +0 -1
  139. package/InlineSimpleAttribute/components/CrosswalkMenuItem/CrosswalkMenuItem.spec.js +0 -52
  140. package/LookupEditor/components/GroupedDropDownEditor/GroupedDropDownEditor.test.d.ts +0 -1
  141. package/LookupEditor/components/GroupedDropDownEditor/GroupedDropDownEditor.test.js +0 -37
  142. package/cjs/HOCs/withTableContext/withTableContext.test.d.ts +0 -1
  143. package/cjs/HOCs/withTableContext/withTableContext.test.js +0 -46
  144. package/cjs/ImageAttributesGallery/components/GalleryView/GalleryView.test.d.ts +0 -1
  145. package/cjs/ImageAttributesGallery/components/GalleryView/GalleryView.test.js +0 -103
  146. package/cjs/ImageDetailsView/components/ImageDetailsViewCarousel/ImageDetailsViewCarousel.test.d.ts +0 -1
  147. package/cjs/ImageDetailsView/components/ImageDetailsViewCarousel/ImageDetailsViewCarousel.test.js +0 -104
  148. package/cjs/ImageDetailsView/components/ImageDetailsViewSidebar/ImageDetailsViewSidebar.test.d.ts +0 -1
  149. package/cjs/ImageDetailsView/components/ImageDetailsViewSidebar/ImageDetailsViewSidebar.test.js +0 -70
  150. package/cjs/ImageDetailsView/components/MetaInfo/MetaInfo.test.d.ts +0 -1
  151. package/cjs/ImageDetailsView/components/MetaInfo/MetaInfo.test.js +0 -311
  152. package/cjs/ImageDetailsView/components/MetaInfoForm/MetaInfoForm.test.d.ts +0 -1
  153. package/cjs/ImageDetailsView/components/MetaInfoForm/MetaInfoForm.test.js +0 -139
  154. package/cjs/ImageDetailsView/components/MetaInfoHeader/MetaInfoHeader.test.d.ts +0 -1
  155. package/cjs/ImageDetailsView/components/MetaInfoHeader/MetaInfoHeader.test.js +0 -104
  156. package/cjs/ImageDetailsView/components/MetaInfoItem/MetaInfoItem.test.d.ts +0 -1
  157. package/cjs/ImageDetailsView/components/MetaInfoItem/MetaInfoItem.test.js +0 -41
  158. package/cjs/ImageDetailsView/components/MetaInfoList/MetaInfoList.test.d.ts +0 -1
  159. package/cjs/ImageDetailsView/components/MetaInfoList/MetaInfoList.test.js +0 -166
  160. package/cjs/ImageDetailsView/components/Thumbnails/Thumbnails.test.d.ts +0 -1
  161. package/cjs/ImageDetailsView/components/Thumbnails/Thumbnails.test.js +0 -81
  162. package/cjs/InlineAttributesPager/components/InlineImageAttributesBlock/InlineImageAttributesBlock.test.d.ts +0 -1
  163. package/cjs/InlineAttributesPager/components/InlineImageAttributesBlock/InlineImageAttributesBlock.test.js +0 -109
  164. package/cjs/InlineAttributesPager/components/InlineNestedAttributesBlock/InlineNestedAttributesBlock.test.d.ts +0 -1
  165. package/cjs/InlineAttributesPager/components/InlineNestedAttributesBlock/InlineNestedAttributesBlock.test.js +0 -119
  166. package/cjs/InlineAttributesPager/components/InlineReferenceAttributesBlock/InlineReferenceAttributesBlock.test.d.ts +0 -1
  167. package/cjs/InlineAttributesPager/components/InlineReferenceAttributesBlock/InlineReferenceAttributesBlock.test.js +0 -182
  168. package/cjs/InlineSimpleAttribute/components/CrosswalkMenuItem/CrosswalkMenuItem.spec.d.ts +0 -1
  169. package/cjs/InlineSimpleAttribute/components/CrosswalkMenuItem/CrosswalkMenuItem.spec.js +0 -57
  170. package/cjs/LookupEditor/components/GroupedDropDownEditor/GroupedDropDownEditor.test.d.ts +0 -1
  171. 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
- };