@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,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
  });