@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,36 +46,65 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
46
46
  }
47
47
  };
48
48
  import React from 'react';
49
- import { mount } from 'enzyme';
50
- import { act } from 'react-dom/test-utils';
51
- import MoreVertIcon from '@mui/icons-material/MoreVert';
52
- import { DataTypeValue } from '../DataTypeValue';
53
- import { DropDownMenuButton } from '../DropDownMenuButton';
54
- import { IgnoreButton } from '../IgnoreButton';
55
- import { PinButton } from '../PinButton';
49
+ import { render, screen } from '@testing-library/react';
50
+ import userEvent from '@testing-library/user-event';
56
51
  import { InlineSimpleAttribute } from './InlineSimpleAttribute';
57
52
  import * as crosswalksDisplay from '../contexts/CrosswalksDisplayContext';
58
- import { InlineSimpleAttributeEditor } from '../InlineSimpleAttributeEditor';
59
- import { createNewAttribute, isCrosswalkDisabled } from '@reltio/mdm-sdk';
53
+ import { createNewAttribute } from '@reltio/mdm-sdk';
60
54
  import { MdmModuleProvider } from '../contexts/MdmModuleContext';
61
- jest.mock('../InlineSimpleAttributeEditor', function () { return ({
62
- InlineSimpleAttributeEditor: jest.fn().mockReturnValue(React.createElement(React.Fragment, null))
63
- }); });
64
- jest.mock('@reltio/mdm-sdk', function () { return (__assign(__assign({}, jest.requireActual('@reltio/mdm-sdk')), { debounce: function (x) { return x; }, isCrosswalkDisabled: jest.fn() })); });
65
- var setUp = function (props) {
66
- var Component = function (props) {
67
- return (React.createElement(MdmModuleProvider, { values: {} },
68
- React.createElement(InlineSimpleAttribute, __assign({}, props))));
55
+ jest.mock('@reltio/mdm-sdk', function () { return (__assign(__assign({}, jest.requireActual('@reltio/mdm-sdk')), { debounce: function (x) { return x; } })); });
56
+ var defaultProps = {
57
+ attributeValue: {
58
+ type: 'configuration/entityTypes/Franchise/attributes/String',
59
+ ov: true,
60
+ value: 'Test',
61
+ uri: 'entities/123/attributes/String/123'
62
+ },
63
+ attributeType: {
64
+ label: 'String',
65
+ access: ['CREATE', 'UPDATE', 'DELETE', 'READ'],
66
+ type: 'String',
67
+ name: 'String',
68
+ uri: 'configuration/entityTypes/Franchise/attributes/String'
69
+ },
70
+ crosswalk: {
71
+ uri: 'entities/10wb4hEF/crosswalks/1PPwRPuk.3h28qA5Qw',
72
+ type: 'configuration/sources/Reltio',
73
+ value: '1PPwRPuk',
74
+ attributes: ['123/attributes/String/123']
75
+ },
76
+ isEmpty: false,
77
+ onIgnore: jest.fn(),
78
+ onEdit: jest.fn(),
79
+ onPin: jest.fn(),
80
+ onDelete: jest.fn()
81
+ };
82
+ var metadata = {
83
+ entityTypes: [],
84
+ sources: []
85
+ };
86
+ var setUp = function (props, skipHover) {
87
+ if (props === void 0) { props = {}; }
88
+ if (skipHover === void 0) { skipHover = false; }
89
+ var user = userEvent.setup({ skipHover: skipHover });
90
+ var Providers = function (_a) {
91
+ var children = _a.children;
92
+ return (React.createElement(MdmModuleProvider, { values: { metadata: metadata } }, children));
69
93
  };
70
- return mount(React.createElement(Component, __assign({}, props)));
94
+ return __assign({ user: user }, render(React.createElement(InlineSimpleAttribute, __assign({}, defaultProps, props)), { wrapper: Providers }));
71
95
  };
72
96
  describe('Inline simple attribute tests', function () {
73
- var actions, value, attributeType;
74
97
  var color = '#ff00ff';
75
98
  var highlightCrosswalk = jest.fn();
76
99
  var removeHighlight = jest.fn();
77
- beforeAll(function () {
100
+ var toggleCrosswalkFocus = jest.fn();
101
+ beforeEach(function () {
102
+ jest.clearAllMocks();
78
103
  jest.spyOn(crosswalksDisplay, 'useCrosswalkColor').mockReturnValue(color);
104
+ jest.spyOn(crosswalksDisplay, 'useCrosswalkFocus').mockReturnValue({
105
+ isFocused: false,
106
+ toggleCrosswalkFocus: toggleCrosswalkFocus
107
+ });
79
108
  jest.spyOn(crosswalksDisplay, 'useCrosswalkHighlight').mockReturnValue({
80
109
  isHighlighted: true,
81
110
  isDimmed: true,
@@ -83,372 +112,349 @@ describe('Inline simple attribute tests', function () {
83
112
  removeHighlight: removeHighlight
84
113
  });
85
114
  });
86
- beforeEach(function () {
87
- actions = {
88
- onIgnore: jest.fn(),
89
- onEdit: jest.fn(),
90
- onPin: jest.fn(),
91
- onDelete: jest.fn()
92
- };
93
- value = {
94
- type: 'configuration/entityTypes/Franchise/attributes/String',
95
- ov: true,
96
- value: 'Test',
97
- uri: 'entities/123/attributes/String/123'
98
- };
99
- attributeType = {
100
- label: 'String',
101
- access: ['CREATE', 'UPDATE', 'DELETE', 'READ'],
102
- type: 'String',
103
- name: 'String',
104
- uri: 'configuration/entityTypes/Franchise/attributes/String'
105
- };
106
- isCrosswalkDisabled.mockReturnValue(false);
107
- });
108
- var crosswalk = {
109
- uri: 'entities/10wb4hEF/crosswalks/1PPwRPuk.3h28qA5Qw',
110
- type: 'configuration/sources/Reltio',
111
- value: '1PPwRPuk',
112
- createDate: '2021-05-14T05:21:14.532Z',
113
- updateDate: '2021-05-14T05:21:14.532Z',
114
- reltioLoadDate: '2019-07-24T06:18:18.041Z',
115
- singleAttributeUpdateDates: {
116
- '123/attributes/String/123': '2021-07-08T07:09:14.781Z'
117
- },
118
- attributes: ['123/attributes/String/123']
119
- };
120
115
  it('should render attribute and hide actions', function () {
121
- var props = __assign({ attributeValue: value, attributeType: attributeType, crosswalk: crosswalk }, actions);
122
- var wrapper = setUp(props);
123
- expect(wrapper.find(DataTypeValue).prop('value')).toBe('Test');
124
- expect(wrapper.find(PinButton).length).toBe(0);
125
- expect(wrapper.find(IgnoreButton).length).toBe(0);
126
- expect(wrapper.find(DropDownMenuButton).length).toBe(0);
127
- expect(crosswalksDisplay.useCrosswalkColor).toHaveBeenCalledWith(crosswalk);
128
- expect(wrapper.find(InlineSimpleAttributeEditor)).toHaveLength(0);
129
- });
130
- it('should render actions on hover', function () {
131
- var props = __assign({ attributeValue: value, attributeType: attributeType, crosswalk: crosswalk, className: 'simpleAttribute' }, actions);
132
- var wrapper = setUp(props);
133
- act(function () {
134
- wrapper.find('.root').simulate('mouseenter');
135
- });
136
- wrapper.update();
137
- expect(wrapper.find(DataTypeValue).prop('value')).toBe('Test');
138
- expect(wrapper.find(PinButton).length).toBe(1);
139
- expect(wrapper.find(IgnoreButton).length).toBe(1);
140
- expect(wrapper.find(DropDownMenuButton).prop('buttonProps')).toMatchObject({
141
- icon: MoreVertIcon,
142
- tooltipTitle: 'More actions'
143
- });
144
- expect(highlightCrosswalk).toHaveBeenCalledTimes(1);
116
+ setUp();
117
+ expect(screen.getByText('Test')).toBeInTheDocument();
118
+ expect(screen.queryByLabelText('Pin')).not.toBeInTheDocument();
119
+ expect(screen.queryByLabelText('Ignore')).not.toBeInTheDocument();
120
+ expect(screen.queryByLabelText('More actions')).not.toBeInTheDocument();
121
+ expect(screen.queryByTestId('masking-switcher')).not.toBeInTheDocument();
122
+ expect(crosswalksDisplay.useCrosswalkColor).toHaveBeenCalledWith(defaultProps.crosswalk);
123
+ expect(screen.queryByTestId('inline-simple-attribute-editor')).not.toBeInTheDocument();
145
124
  });
146
- it('should hide actions on mouse leave', function () {
147
- var props = __assign({ attributeValue: value, attributeType: attributeType, crosswalk: crosswalk, className: 'simpleAttribute' }, actions);
148
- var wrapper = setUp(props);
149
- act(function () {
150
- wrapper.find('.root').simulate('mouseenter');
125
+ it('should render actions on hover', function () { return __awaiter(void 0, void 0, void 0, function () {
126
+ var user;
127
+ return __generator(this, function (_a) {
128
+ switch (_a.label) {
129
+ case 0:
130
+ user = setUp().user;
131
+ return [4 /*yield*/, user.hover(screen.getByText('Test'))];
132
+ case 1:
133
+ _a.sent();
134
+ expect(screen.getByText('Test')).toBeInTheDocument();
135
+ expect(screen.getByLabelText('Pin')).toBeInTheDocument();
136
+ expect(screen.getByTestId('SvgPinOutlined')).toBeInTheDocument();
137
+ expect(screen.getByLabelText('Ignore')).toBeInTheDocument();
138
+ expect(screen.getByTestId('SvgIgnoredOutlined')).toBeInTheDocument();
139
+ expect(screen.getByLabelText('More actions')).toBeInTheDocument();
140
+ expect(highlightCrosswalk).toHaveBeenCalledTimes(1);
141
+ return [2 /*return*/];
142
+ }
151
143
  });
152
- wrapper.update();
153
- act(function () {
154
- wrapper.find('.root').simulate('mouseleave');
144
+ }); });
145
+ it('should hide actions on mouse leave', function () { return __awaiter(void 0, void 0, void 0, function () {
146
+ var user;
147
+ return __generator(this, function (_a) {
148
+ switch (_a.label) {
149
+ case 0:
150
+ user = setUp().user;
151
+ return [4 /*yield*/, user.hover(screen.getByText('Test'))];
152
+ case 1:
153
+ _a.sent();
154
+ expect(screen.getByLabelText('Pin')).toBeInTheDocument();
155
+ expect(highlightCrosswalk).toHaveBeenCalledTimes(1);
156
+ return [4 /*yield*/, user.unhover(screen.getByText('Test'))];
157
+ case 2:
158
+ _a.sent();
159
+ expect(screen.queryByLabelText('Pin')).not.toBeInTheDocument();
160
+ expect(removeHighlight).toHaveBeenCalledTimes(1);
161
+ return [2 /*return*/];
162
+ }
155
163
  });
156
- wrapper.update();
157
- expect(wrapper.find(PinButton).length).toBe(0);
158
- expect(wrapper.find(IgnoreButton).length).toBe(0);
159
- expect(wrapper.find(DropDownMenuButton).length).toBe(0);
160
- expect(removeHighlight).toHaveBeenCalledTimes(1);
161
- });
164
+ }); });
162
165
  it('should show pin in pinned state even if no hover', function () {
163
- value.pin = true;
164
- var props = __assign({ attributeValue: value, attributeType: attributeType, crosswalk: crosswalk, className: 'simpleAttribute' }, actions);
165
- var wrapper = setUp(props);
166
- expect(wrapper.find(PinButton).length).toBe(1);
167
- expect(wrapper.find(PinButton).prop('isPinned')).toBeTruthy();
168
- expect(wrapper.find(PinButton).prop('disabled')).toBeFalsy();
166
+ setUp({ attributeValue: __assign(__assign({}, defaultProps.attributeValue), { pin: true }) });
167
+ expect(screen.getByLabelText('Pin')).not.toBeDisabled();
168
+ expect(screen.getByTestId('SvgPin')).toBeInTheDocument();
169
169
  });
170
170
  it('should show ignore in ignored state even if no hover', function () {
171
- value.ignored = true;
172
- var props = __assign({ attributeValue: value, attributeType: attributeType, crosswalk: crosswalk, className: 'simpleAttribute' }, actions);
173
- var wrapper = setUp(props);
174
- expect(wrapper.find(IgnoreButton).length).toBe(1);
175
- expect(wrapper.find(IgnoreButton).prop('isIgnored')).toBeTruthy();
176
- expect(wrapper.find(IgnoreButton).prop('disabled')).toBeFalsy();
177
- });
178
- it('should show actions with all actions if attribute type allows actions', function () {
179
- var props = __assign({ attributeValue: value, attributeType: attributeType, crosswalk: crosswalk, className: 'simpleAttribute' }, actions);
180
- var wrapper = setUp(props);
181
- var event = {};
182
- act(function () {
183
- var _a;
184
- (_a = wrapper.find('.simpleAttribute').at(2).prop('onMouseEnter')) === null || _a === void 0 ? void 0 : _a(event);
185
- });
186
- wrapper.update();
187
- var actionsItems = wrapper.find(DropDownMenuButton).prop('menuItems');
188
- expect(actionsItems === null || actionsItems === void 0 ? void 0 : actionsItems[1]).toMatchObject({
189
- disabled: false,
190
- text: 'Edit',
191
- tooltip: null
192
- });
193
- expect(actionsItems === null || actionsItems === void 0 ? void 0 : actionsItems[2]).toMatchObject({
194
- disabled: false,
195
- text: 'Delete',
196
- tooltip: null
197
- });
198
- expect(actionsItems === null || actionsItems === void 0 ? void 0 : actionsItems[0]).toStrictEqual({
199
- color: color,
200
- crosswalk: crosswalk
201
- });
202
- });
203
- it('should disable actions based on attribute type permissions', function () {
204
- attributeType.access = ['READ'];
205
- var props = __assign({ attributeValue: value, attributeType: attributeType, crosswalk: crosswalk, className: 'simpleAttribute' }, actions);
206
- var wrapper = setUp(props);
207
- var event = {};
208
- act(function () {
209
- var _a;
210
- (_a = wrapper.find('.simpleAttribute').at(2).prop('onMouseEnter')) === null || _a === void 0 ? void 0 : _a(event);
211
- });
212
- wrapper.update();
213
- var actionsItems = wrapper.find(DropDownMenuButton).prop('menuItems');
214
- expect(actionsItems === null || actionsItems === void 0 ? void 0 : actionsItems[1]).toMatchObject({
215
- disabled: true,
216
- text: 'Edit',
217
- tooltip: "You don't have permissions to edit"
218
- });
219
- expect(actionsItems === null || actionsItems === void 0 ? void 0 : actionsItems[2]).toMatchObject({
220
- disabled: true,
221
- text: 'Delete',
222
- tooltip: "You don't have permissions to delete"
223
- });
224
- expect(wrapper.find(IgnoreButton).length).toBe(0);
225
- expect(wrapper.find(PinButton).length).toBe(0);
226
- wrapper.setProps({
227
- attributeValue: __assign(__assign({}, value), { pin: true, ignored: true })
228
- });
229
- expect(wrapper.find(IgnoreButton).prop('disabled')).toBe(true);
230
- expect(wrapper.find(PinButton).prop('disabled')).toBe(true);
231
- });
232
- it('should disable delete action if props.disableDelete is true', function () {
233
- var props = __assign({ attributeValue: value, attributeType: attributeType, crosswalk: crosswalk, className: 'simpleAttribute', disableDelete: true }, actions);
234
- var wrapper = setUp(props);
235
- var event = {};
236
- act(function () {
237
- var _a;
238
- (_a = wrapper.find('.simpleAttribute').at(2).prop('onMouseEnter')) === null || _a === void 0 ? void 0 : _a(event);
239
- });
240
- wrapper.update();
241
- var actionsItems = wrapper.find(DropDownMenuButton).prop('menuItems');
242
- expect(actionsItems === null || actionsItems === void 0 ? void 0 : actionsItems[1]).toMatchObject({
243
- disabled: false,
244
- text: 'Edit',
245
- tooltip: null
246
- });
247
- expect(actionsItems === null || actionsItems === void 0 ? void 0 : actionsItems[2]).toMatchObject({
248
- disabled: true,
249
- text: 'Delete',
250
- tooltip: "You don't have permissions to delete"
251
- });
252
- expect(wrapper.find(IgnoreButton).length).toBe(1);
253
- expect(wrapper.find(PinButton).length).toBe(1);
171
+ setUp({ attributeValue: __assign(__assign({}, defaultProps.attributeValue), { ignored: true }) });
172
+ expect(screen.getByLabelText('Ignore')).not.toBeDisabled();
173
+ expect(screen.getByTestId('SvgIgnored')).toBeInTheDocument();
254
174
  });
255
- it('should disable edit, pin and ignore actions if props.disableEdit is true', function () {
256
- var props = __assign({ attributeValue: value, attributeType: attributeType, crosswalk: crosswalk, className: 'simpleAttribute', disableEdit: true }, actions);
257
- var wrapper = setUp(props);
258
- var event = {};
259
- act(function () {
260
- var _a;
261
- (_a = wrapper.find('.simpleAttribute').at(2).prop('onMouseEnter')) === null || _a === void 0 ? void 0 : _a(event);
262
- });
263
- wrapper.update();
264
- var actionsItems = wrapper.find(DropDownMenuButton).prop('menuItems');
265
- expect(actionsItems === null || actionsItems === void 0 ? void 0 : actionsItems[1]).toMatchObject({
266
- disabled: true,
267
- text: 'Edit',
268
- tooltip: "You don't have permissions to edit"
175
+ it('should show actions with all actions if attribute type allows actions', function () { return __awaiter(void 0, void 0, void 0, function () {
176
+ var user;
177
+ return __generator(this, function (_a) {
178
+ switch (_a.label) {
179
+ case 0:
180
+ user = setUp({}, true).user;
181
+ return [4 /*yield*/, user.hover(screen.getByText('Test'))];
182
+ case 1:
183
+ _a.sent();
184
+ return [4 /*yield*/, user.click(screen.getByLabelText('More actions'))];
185
+ case 2:
186
+ _a.sent();
187
+ expect(screen.getByLabelText('Focus')).toBeInTheDocument();
188
+ expect(screen.getByText('Edit')).not.toBeDisabled();
189
+ expect(screen.getByText('Delete')).not.toBeDisabled();
190
+ return [2 /*return*/];
191
+ }
269
192
  });
270
- expect(actionsItems === null || actionsItems === void 0 ? void 0 : actionsItems[2]).toMatchObject({
271
- disabled: false,
272
- text: 'Delete',
273
- tooltip: null
193
+ }); });
194
+ it('should disable actions based on attribute type permissions', function () { return __awaiter(void 0, void 0, void 0, function () {
195
+ var _a, user, rerender, editButton, deleteButton;
196
+ return __generator(this, function (_b) {
197
+ switch (_b.label) {
198
+ case 0:
199
+ _a = setUp({ attributeType: __assign(__assign({}, defaultProps.attributeType), { access: ['READ'] }) }, true), user = _a.user, rerender = _a.rerender;
200
+ return [4 /*yield*/, user.hover(screen.getByText('Test'))];
201
+ case 1:
202
+ _b.sent();
203
+ return [4 /*yield*/, user.click(screen.getByLabelText('More actions'))];
204
+ case 2:
205
+ _b.sent();
206
+ editButton = screen.getByLabelText("You don't have permissions to edit");
207
+ expect(editButton.children[0]).toHaveAttribute('aria-disabled', 'true');
208
+ expect(editButton).toHaveTextContent('Edit');
209
+ deleteButton = screen.getByLabelText("You don't have permissions to delete");
210
+ expect(deleteButton.children[0]).toHaveAttribute('aria-disabled', 'true');
211
+ expect(deleteButton).toHaveTextContent('Delete');
212
+ rerender(React.createElement(InlineSimpleAttribute, __assign({}, defaultProps, { attributeValue: __assign(__assign({}, defaultProps.attributeValue), { pin: true, ignored: true }), attributeType: __assign(__assign({}, defaultProps.attributeType), { access: ['CREATE'] }) })));
213
+ expect(screen.getByLabelText("You don't have permissions to pin").children[0]).toBeDisabled();
214
+ expect(screen.getByLabelText("You don't have permissions to ignore").children[0]).toBeDisabled();
215
+ return [2 /*return*/];
216
+ }
274
217
  });
275
- expect(wrapper.find(IgnoreButton).length).toBe(0);
276
- expect(wrapper.find(PinButton).length).toBe(0);
277
- });
278
- it('should call props.onDelete on Delete button click correctly', function () {
279
- var _a, _b;
280
- var props = __assign({ attributeValue: value, attributeType: attributeType, crosswalk: crosswalk, className: 'simpleAttribute' }, actions);
281
- var wrapper = setUp(props);
282
- var event = {};
283
- act(function () {
284
- var _a;
285
- (_a = wrapper.find('.simpleAttribute').at(2).prop('onMouseEnter')) === null || _a === void 0 ? void 0 : _a(event);
218
+ }); });
219
+ it('should disable delete action if props.disableDelete is true', function () { return __awaiter(void 0, void 0, void 0, function () {
220
+ var user, deleteButton;
221
+ return __generator(this, function (_a) {
222
+ switch (_a.label) {
223
+ case 0:
224
+ user = setUp({ disableDelete: true }, true).user;
225
+ return [4 /*yield*/, user.hover(screen.getByText('Test'))];
226
+ case 1:
227
+ _a.sent();
228
+ return [4 /*yield*/, user.click(screen.getByLabelText('More actions'))];
229
+ case 2:
230
+ _a.sent();
231
+ deleteButton = screen.getByLabelText("You don't have permissions to delete");
232
+ expect(deleteButton.children[0]).toHaveAttribute('aria-disabled', 'true');
233
+ expect(deleteButton).toHaveTextContent('Delete');
234
+ expect(screen.getByText('Edit').parentElement).not.toHaveAttribute('aria-disabled', 'true');
235
+ return [2 /*return*/];
236
+ }
286
237
  });
287
- wrapper.update();
288
- var actionItems = wrapper.find(DropDownMenuButton).prop('menuItems');
289
- (_b = (_a = actionItems[2]).onClick) === null || _b === void 0 ? void 0 : _b.call(_a);
290
- expect(actions.onDelete).toHaveBeenCalledWith({
291
- attributeType: attributeType,
292
- attributeValue: value,
293
- crosswalks: [crosswalk]
238
+ }); });
239
+ it('should disable edit, pin and ignore actions if props.disableEdit is true', function () { return __awaiter(void 0, void 0, void 0, function () {
240
+ var user, editButton;
241
+ return __generator(this, function (_a) {
242
+ switch (_a.label) {
243
+ case 0:
244
+ user = setUp({ disableEdit: true }, true).user;
245
+ return [4 /*yield*/, user.hover(screen.getByText('Test'))];
246
+ case 1:
247
+ _a.sent();
248
+ expect(screen.queryByLabelText('Ignore')).not.toBeInTheDocument();
249
+ expect(screen.queryByLabelText('Pin')).not.toBeInTheDocument();
250
+ return [4 /*yield*/, user.click(screen.getByLabelText('More actions'))];
251
+ case 2:
252
+ _a.sent();
253
+ editButton = screen.getByLabelText("You don't have permissions to edit");
254
+ expect(editButton.children[0]).toHaveAttribute('aria-disabled', 'true');
255
+ expect(editButton).toHaveTextContent('Edit');
256
+ expect(screen.getByText('Delete').parentElement).not.toHaveAttribute('aria-disabled', 'true');
257
+ return [2 /*return*/];
258
+ }
294
259
  });
295
- });
296
- it('should call props.onPin on Pin button click correctly', function () {
297
- var props = __assign({ attributeValue: value, attributeType: attributeType, crosswalk: crosswalk, className: 'simpleAttribute' }, actions);
298
- var wrapper = setUp(props);
299
- var event = {};
300
- act(function () {
301
- var _a;
302
- (_a = wrapper.find('.simpleAttribute').at(2).prop('onMouseEnter')) === null || _a === void 0 ? void 0 : _a(event);
260
+ }); });
261
+ it('should toggle crosswalk focus on click Focus', function () { return __awaiter(void 0, void 0, void 0, function () {
262
+ var user;
263
+ return __generator(this, function (_a) {
264
+ switch (_a.label) {
265
+ case 0:
266
+ user = setUp({}, true).user;
267
+ return [4 /*yield*/, user.hover(screen.getByText('Test'))];
268
+ case 1:
269
+ _a.sent();
270
+ return [4 /*yield*/, user.click(screen.getByLabelText('More actions'))];
271
+ case 2:
272
+ _a.sent();
273
+ return [4 /*yield*/, user.click(screen.getByLabelText('Focus'))];
274
+ case 3:
275
+ _a.sent();
276
+ expect(toggleCrosswalkFocus).toHaveBeenCalledWith();
277
+ return [2 /*return*/];
278
+ }
303
279
  });
304
- wrapper.update();
305
- wrapper.find(PinButton).prop('onClick')();
306
- expect(actions.onPin).toHaveBeenCalledWith({
307
- attributeValue: value
280
+ }); });
281
+ it('should call props.onDelete on Delete button click correctly', function () { return __awaiter(void 0, void 0, void 0, function () {
282
+ var user;
283
+ return __generator(this, function (_a) {
284
+ switch (_a.label) {
285
+ case 0:
286
+ user = setUp({}, true).user;
287
+ return [4 /*yield*/, user.hover(screen.getByText('Test'))];
288
+ case 1:
289
+ _a.sent();
290
+ return [4 /*yield*/, user.click(screen.getByLabelText('More actions'))];
291
+ case 2:
292
+ _a.sent();
293
+ return [4 /*yield*/, user.click(screen.getByText('Delete'))];
294
+ case 3:
295
+ _a.sent();
296
+ expect(defaultProps.onDelete).toHaveBeenCalledWith({
297
+ attributeType: defaultProps.attributeType,
298
+ attributeValue: defaultProps.attributeValue,
299
+ crosswalks: [defaultProps.crosswalk]
300
+ });
301
+ return [2 /*return*/];
302
+ }
308
303
  });
309
- });
310
- it('should call props.onIgnore on Ignore button click correctly', function () {
311
- var props = __assign({ attributeValue: value, attributeType: attributeType, crosswalk: crosswalk, className: 'simpleAttribute' }, actions);
312
- var wrapper = setUp(props);
313
- var event = {};
314
- act(function () {
315
- var _a;
316
- (_a = wrapper.find('.simpleAttribute').at(2).prop('onMouseEnter')) === null || _a === void 0 ? void 0 : _a(event);
304
+ }); });
305
+ it('should call props.onPin on Pin button click correctly', function () { return __awaiter(void 0, void 0, void 0, function () {
306
+ var user;
307
+ return __generator(this, function (_a) {
308
+ switch (_a.label) {
309
+ case 0:
310
+ user = setUp({}, true).user;
311
+ return [4 /*yield*/, user.hover(screen.getByText('Test'))];
312
+ case 1:
313
+ _a.sent();
314
+ return [4 /*yield*/, user.click(screen.getByLabelText('Pin').childNodes[0])];
315
+ case 2:
316
+ _a.sent();
317
+ expect(defaultProps.onPin).toHaveBeenCalledWith({
318
+ attributeValue: defaultProps.attributeValue
319
+ });
320
+ return [2 /*return*/];
321
+ }
317
322
  });
318
- wrapper.update();
319
- wrapper.find(IgnoreButton).prop('onClick')();
320
- expect(actions.onIgnore).toHaveBeenCalledWith({
321
- attributeValue: value
323
+ }); });
324
+ it('should call props.onIgnore on Ignore button click correctly', function () { return __awaiter(void 0, void 0, void 0, function () {
325
+ var user;
326
+ return __generator(this, function (_a) {
327
+ switch (_a.label) {
328
+ case 0:
329
+ user = setUp({}, true).user;
330
+ return [4 /*yield*/, user.hover(screen.getByText('Test'))];
331
+ case 1:
332
+ _a.sent();
333
+ return [4 /*yield*/, user.click(screen.getByLabelText('Ignore').childNodes[0])];
334
+ case 2:
335
+ _a.sent();
336
+ expect(defaultProps.onIgnore).toHaveBeenCalledWith({
337
+ attributeValue: defaultProps.attributeValue
338
+ });
339
+ return [2 /*return*/];
340
+ }
322
341
  });
323
- });
342
+ }); });
324
343
  it('should render InlineSimpleAttributeEditor on Edit menu item click', function () { return __awaiter(void 0, void 0, void 0, function () {
325
- var props, wrapper, onMouseEnter, actionItems;
344
+ var user;
326
345
  return __generator(this, function (_a) {
327
346
  switch (_a.label) {
328
347
  case 0:
329
- props = __assign({ attributeValue: value, attributeType: attributeType, crosswalk: crosswalk, className: 'simpleAttribute' }, actions);
330
- wrapper = setUp(props);
331
- onMouseEnter = wrapper.find('.simpleAttribute').at(2).prop('onMouseEnter');
332
- act(function () {
333
- onMouseEnter();
334
- });
335
- wrapper.update();
336
- actionItems = wrapper.find(DropDownMenuButton).prop('menuItems');
337
- return [4 /*yield*/, act(function () { return __awaiter(void 0, void 0, void 0, function () {
338
- var _a, _b;
339
- return __generator(this, function (_c) {
340
- (_b = (_a = actionItems[1]).onClick) === null || _b === void 0 ? void 0 : _b.call(_a);
341
- return [2 /*return*/];
342
- });
343
- }); })];
348
+ user = setUp({}, true).user;
349
+ return [4 /*yield*/, user.hover(screen.getByText('Test'))];
344
350
  case 1:
345
351
  _a.sent();
346
- wrapper.update();
347
- expect(wrapper.find(InlineSimpleAttributeEditor)).toHaveLength(1);
352
+ return [4 /*yield*/, user.click(screen.getByLabelText('More actions'))];
353
+ case 2:
354
+ _a.sent();
355
+ return [4 /*yield*/, user.click(screen.getByText('Edit'))];
356
+ case 3:
357
+ _a.sent();
358
+ expect(screen.getByTestId('inline-simple-attribute-editor')).toBeInTheDocument();
348
359
  return [2 /*return*/];
349
360
  }
350
361
  });
351
362
  }); });
352
363
  it('should call props.onEdit when call onEdit prop of InlineSimpleAttributeEditor', function () { return __awaiter(void 0, void 0, void 0, function () {
353
- var props, wrapper, event, actionItems, newAttributeValue;
364
+ var user, backdrop;
354
365
  return __generator(this, function (_a) {
355
366
  switch (_a.label) {
356
367
  case 0:
357
- props = __assign({ attributeValue: value, attributeType: attributeType, crosswalk: crosswalk, className: 'simpleAttribute' }, actions);
358
- wrapper = setUp(props);
359
- event = {};
360
- act(function () {
361
- var _a;
362
- (_a = wrapper.find('.simpleAttribute').at(2).prop('onMouseEnter')) === null || _a === void 0 ? void 0 : _a(event);
363
- });
364
- wrapper.update();
365
- actionItems = wrapper.find(DropDownMenuButton).prop('menuItems');
366
- return [4 /*yield*/, act(function () { return __awaiter(void 0, void 0, void 0, function () {
367
- var _a, _b;
368
- return __generator(this, function (_c) {
369
- (_b = (_a = actionItems[1]).onClick) === null || _b === void 0 ? void 0 : _b.call(_a);
370
- return [2 /*return*/];
371
- });
372
- }); })];
368
+ user = setUp({}, true).user;
369
+ return [4 /*yield*/, user.hover(screen.getByText('Test'))];
373
370
  case 1:
374
371
  _a.sent();
375
- wrapper.update();
376
- newAttributeValue = {
377
- uri: 'entities/123/attributes/String/123',
378
- value: 'Test update'
379
- };
380
- return [4 /*yield*/, act(function () { return __awaiter(void 0, void 0, void 0, function () {
381
- return __generator(this, function (_a) {
382
- wrapper.find(InlineSimpleAttributeEditor).prop('onEdit')(newAttributeValue);
383
- return [2 /*return*/];
384
- });
385
- }); })];
372
+ return [4 /*yield*/, user.click(screen.getByLabelText('More actions'))];
386
373
  case 2:
387
374
  _a.sent();
388
- expect(actions.onEdit).toHaveBeenCalledWith({
389
- attributeType: attributeType,
390
- attributeValue: newAttributeValue,
391
- crosswalk: crosswalk
375
+ return [4 /*yield*/, user.click(screen.getByText('Edit'))];
376
+ case 3:
377
+ _a.sent();
378
+ expect(screen.getByTestId('inline-simple-attribute-editor')).toBeInTheDocument();
379
+ return [4 /*yield*/, user.type(screen.getByRole('textbox'), ' update')];
380
+ case 4:
381
+ _a.sent();
382
+ backdrop = screen.getByRole('presentation').childNodes[0];
383
+ return [4 /*yield*/, user.click(backdrop)];
384
+ case 5:
385
+ _a.sent();
386
+ expect(defaultProps.onEdit).toHaveBeenCalledWith({
387
+ attributeType: defaultProps.attributeType,
388
+ attributeValue: __assign(__assign({}, defaultProps.attributeValue), { uri: defaultProps.attributeValue.uri, value: 'Test update' }),
389
+ crosswalk: defaultProps.crosswalk
392
390
  });
393
391
  return [2 /*return*/];
394
392
  }
395
393
  });
396
394
  }); });
397
- it('should disable edit, pin, delete and ignore actions if it is system attribute', function () {
398
- var props = __assign({ attributeValue: value, attributeType: __assign(__assign({}, attributeType), { system: true }), crosswalk: crosswalk, className: 'simpleAttribute' }, actions);
399
- var wrapper = setUp(props);
400
- var event = {};
401
- act(function () {
402
- var _a;
403
- (_a = wrapper.find('.simpleAttribute').at(2).prop('onMouseEnter')) === null || _a === void 0 ? void 0 : _a(event);
404
- });
405
- wrapper.update();
406
- var actionsItems = wrapper.find(DropDownMenuButton).prop('menuItems');
407
- expect(actionsItems === null || actionsItems === void 0 ? void 0 : actionsItems[1]).toMatchObject({
408
- disabled: true,
409
- text: 'Edit',
410
- tooltip: "You don't have permissions to edit"
411
- });
412
- expect(actionsItems === null || actionsItems === void 0 ? void 0 : actionsItems[2]).toMatchObject({
413
- disabled: true,
414
- text: 'Delete',
415
- tooltip: "You don't have permissions to delete"
416
- });
417
- expect(wrapper.find(IgnoreButton).length).toBe(0);
418
- expect(wrapper.find(PinButton).length).toBe(0);
419
- });
420
- it('should hide pin and ignore button for temporary attribute', function () {
421
- var props = __assign({ attributeValue: createNewAttribute({ parentUri: 'entities/123', attributeType: attributeType }), attributeType: attributeType, crosswalk: crosswalk, className: 'simpleAttribute' }, actions);
422
- var wrapper = setUp(props);
423
- act(function () {
424
- wrapper.find('.root').simulate('mouseenter');
425
- });
426
- wrapper.update();
427
- expect(wrapper.find(IgnoreButton).length).toBe(0);
428
- expect(wrapper.find(PinButton).length).toBe(0);
429
- });
430
- it('should disable edit, pin, delete and ignore actions if crosswalk is disabled', function () {
431
- isCrosswalkDisabled.mockReturnValue(true);
432
- var props = __assign({ attributeValue: value, attributeType: attributeType, crosswalk: crosswalk, className: 'simpleAttribute' }, actions);
433
- var wrapper = setUp(props);
434
- var event = {};
435
- act(function () {
436
- var _a;
437
- (_a = wrapper.find('.simpleAttribute').at(2).prop('onMouseEnter')) === null || _a === void 0 ? void 0 : _a(event);
395
+ it('should disable edit, pin, delete and ignore actions if it is system attribute', function () { return __awaiter(void 0, void 0, void 0, function () {
396
+ var user, editButton, deleteButton;
397
+ return __generator(this, function (_a) {
398
+ switch (_a.label) {
399
+ case 0:
400
+ user = setUp({ attributeType: __assign(__assign({}, defaultProps.attributeType), { system: true }) }, true).user;
401
+ return [4 /*yield*/, user.hover(screen.getByText('Test'))];
402
+ case 1:
403
+ _a.sent();
404
+ expect(screen.queryByLabelText('Ignore')).not.toBeInTheDocument();
405
+ expect(screen.queryByLabelText('Pin')).not.toBeInTheDocument();
406
+ return [4 /*yield*/, user.click(screen.getByLabelText('More actions'))];
407
+ case 2:
408
+ _a.sent();
409
+ editButton = screen.getByLabelText("You don't have permissions to edit");
410
+ expect(editButton.children[0]).toHaveAttribute('aria-disabled', 'true');
411
+ expect(editButton).toHaveTextContent('Edit');
412
+ deleteButton = screen.getByLabelText("You don't have permissions to delete");
413
+ expect(deleteButton.children[0]).toHaveAttribute('aria-disabled', 'true');
414
+ expect(deleteButton).toHaveTextContent('Delete');
415
+ return [2 /*return*/];
416
+ }
438
417
  });
439
- wrapper.update();
440
- var actionsItems = wrapper.find(DropDownMenuButton).prop('menuItems');
441
- expect(actionsItems === null || actionsItems === void 0 ? void 0 : actionsItems[1]).toMatchObject({
442
- disabled: true,
443
- text: 'Edit',
444
- tooltip: "You don't have permissions to edit"
418
+ }); });
419
+ it('should hide pin and ignore button for temporary attribute', function () { return __awaiter(void 0, void 0, void 0, function () {
420
+ var user;
421
+ return __generator(this, function (_a) {
422
+ switch (_a.label) {
423
+ case 0:
424
+ user = setUp({
425
+ attributeValue: __assign(__assign({}, createNewAttribute({ parentUri: 'entities/123', attributeType: defaultProps.attributeType })), { value: 'Test' })
426
+ }).user;
427
+ return [4 /*yield*/, user.hover(screen.getByText('Test'))];
428
+ case 1:
429
+ _a.sent();
430
+ expect(screen.queryByLabelText('Ignore')).not.toBeInTheDocument();
431
+ expect(screen.queryByLabelText('Pin')).not.toBeInTheDocument();
432
+ return [2 /*return*/];
433
+ }
445
434
  });
446
- expect(actionsItems === null || actionsItems === void 0 ? void 0 : actionsItems[2]).toMatchObject({
447
- disabled: true,
448
- text: 'Delete',
449
- tooltip: "You don't have permissions to delete"
435
+ }); });
436
+ it('should disable edit, pin, delete and ignore actions if crosswalk is disabled', function () { return __awaiter(void 0, void 0, void 0, function () {
437
+ var user, editButton, deleteButton;
438
+ return __generator(this, function (_a) {
439
+ switch (_a.label) {
440
+ case 0:
441
+ user = setUp({ crosswalk: __assign(__assign({}, defaultProps.crosswalk), { deleteDate: Date.now() - 2000 }) }, true).user;
442
+ return [4 /*yield*/, user.hover(screen.getByText('Test'))];
443
+ case 1:
444
+ _a.sent();
445
+ expect(screen.queryByLabelText('Ignore')).not.toBeInTheDocument();
446
+ expect(screen.queryByLabelText('Pin')).not.toBeInTheDocument();
447
+ return [4 /*yield*/, user.click(screen.getByLabelText('More actions'))];
448
+ case 2:
449
+ _a.sent();
450
+ editButton = screen.getByLabelText("You don't have permissions to edit");
451
+ expect(editButton.children[0]).toHaveAttribute('aria-disabled', 'true');
452
+ expect(editButton).toHaveTextContent('Edit');
453
+ deleteButton = screen.getByLabelText("You don't have permissions to delete");
454
+ expect(deleteButton.children[0]).toHaveAttribute('aria-disabled', 'true');
455
+ expect(deleteButton).toHaveTextContent('Delete');
456
+ return [2 /*return*/];
457
+ }
450
458
  });
451
- expect(wrapper.find(IgnoreButton).length).toBe(0);
452
- expect(wrapper.find(PinButton).length).toBe(0);
453
- });
459
+ }); });
454
460
  });