@reltio/components 1.4.1906 → 1.4.1907

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 (97) hide show
  1. package/cjs/ActionsPanel/ActionsPanel.test.js +133 -49
  2. package/cjs/AttributeListItem/AttributeListItem.spec.js +147 -118
  3. package/cjs/AttributeSelector/AttributeSelector.specs.js +125 -193
  4. package/cjs/AttributesErrorsPanel/AttributesErrorsPanel.specs.js +128 -71
  5. package/cjs/AttributesErrorsPanel/components/Error/Error.specs.js +96 -90
  6. package/cjs/AttributesErrorsPanel/store.test-data.d.ts +22 -0
  7. package/cjs/AttributesErrorsPanel/store.test-data.js +29 -0
  8. package/cjs/AttributesFilterSelector/AttributesFilterSelector.test.js +127 -105
  9. package/cjs/AttributesFiltersButton/AttributesFiltersButton.test.js +218 -136
  10. package/cjs/AttributesValuesEditor/AttributesValuesEditor.test.js +92 -88
  11. package/cjs/AttributesView/AttributesView.test.js +67 -34
  12. package/cjs/AutoSizeList/AutoSizeList.test.js +81 -59
  13. package/cjs/{ActionsPanel/components/MenuItemRenderer/MenuItemRenderer.spec.js → AvatarWithFallback/AvatarWithFallback.test.js} +15 -31
  14. package/cjs/BarChart/BarChart.test.js +128 -65
  15. package/cjs/BasicAttributeSelector/BasicAttributeSelector.spec.js +27 -10
  16. package/cjs/BasicViewContent/BasicViewContent.test.js +7 -9
  17. package/cjs/BlobRenderer/BlobRenderer.test.js +28 -9
  18. package/cjs/BooleanRadioEditor/BooleanRadioEditor.test.js +89 -35
  19. package/cjs/BubbleChart/BubbleChart.test.js +111 -87
  20. package/cjs/CloudChart/CloudChart.test.js +95 -36
  21. package/cjs/CollaborationItem/CollaborationItem.test.js +67 -30
  22. package/cjs/CollaborationItem/components/Comment/Comment.test.js +221 -189
  23. package/cjs/CollaborationItem/components/CommentContent/CommentContent.test.js +46 -81
  24. package/cjs/CollaborationItem/components/RepliedComment/RepliedComment.test.js +194 -163
  25. package/cjs/CollaborationItem/components/SendMessageArea/SendMessageArea.test.js +307 -266
  26. package/cjs/CollapseButton/CollapseButton.test.js +74 -15
  27. package/cjs/CollapseRowButton/CollapseRowButton.test.js +82 -24
  28. package/cjs/ColorBar/ColorBar.test.js +13 -15
  29. package/cjs/ColumnsSettings/components/ColumnsSettingsPopup/ColumnsSettingsPopup.spec.js +207 -129
  30. package/cjs/CommentsContainer/CommentsContainer.test.js +282 -211
  31. package/cjs/CommentsContainer/components/CollaborationPopup/CollaborationPopup.test.js +183 -122
  32. package/cjs/ConfigureColumnsPopup/ConfigureColumnsPopup.test.js +42 -41
  33. package/cjs/ConfirmDeleteDialog/ConfirmDeleteDialog.test.js +77 -28
  34. package/cjs/ConfirmationDialog/ConfirmationDialog.test.js +85 -48
  35. package/cjs/ConnectionEditor/ConnectionEditor.test.js +299 -282
  36. package/esm/ActionsPanel/ActionsPanel.test.js +133 -49
  37. package/esm/AttributeListItem/AttributeListItem.spec.js +149 -97
  38. package/esm/AttributeSelector/AttributeSelector.specs.js +125 -193
  39. package/esm/AttributesErrorsPanel/AttributesErrorsPanel.specs.js +128 -71
  40. package/esm/AttributesErrorsPanel/components/Error/Error.specs.js +98 -72
  41. package/esm/AttributesErrorsPanel/store.test-data.d.ts +22 -0
  42. package/esm/AttributesErrorsPanel/store.test-data.js +26 -0
  43. package/esm/AttributesFilterSelector/AttributesFilterSelector.test.js +129 -84
  44. package/esm/AttributesFiltersButton/AttributesFiltersButton.test.js +218 -136
  45. package/esm/AttributesValuesEditor/AttributesValuesEditor.test.js +94 -67
  46. package/esm/AttributesView/AttributesView.test.js +67 -34
  47. package/esm/AutoSizeList/AutoSizeList.test.js +81 -59
  48. package/esm/{ActionsPanel/components/MenuItemRenderer/MenuItemRenderer.spec.js → AvatarWithFallback/AvatarWithFallback.test.js} +16 -32
  49. package/esm/BarChart/BarChart.test.js +128 -65
  50. package/esm/BasicAttributeSelector/BasicAttributeSelector.spec.js +27 -10
  51. package/esm/BasicViewContent/BasicViewContent.test.js +7 -9
  52. package/esm/BlobRenderer/BlobRenderer.test.js +28 -9
  53. package/esm/BooleanRadioEditor/BooleanRadioEditor.test.js +89 -35
  54. package/esm/BubbleChart/BubbleChart.test.js +111 -87
  55. package/esm/CloudChart/CloudChart.test.js +95 -36
  56. package/esm/CollaborationItem/CollaborationItem.test.js +67 -30
  57. package/esm/CollaborationItem/components/Comment/Comment.test.js +221 -189
  58. package/esm/CollaborationItem/components/CommentContent/CommentContent.test.js +46 -58
  59. package/esm/CollaborationItem/components/RepliedComment/RepliedComment.test.js +194 -163
  60. package/esm/CollaborationItem/components/SendMessageArea/SendMessageArea.test.js +307 -266
  61. package/esm/CollapseButton/CollapseButton.test.js +74 -15
  62. package/esm/CollapseRowButton/CollapseRowButton.test.js +82 -24
  63. package/esm/ColorBar/ColorBar.test.js +13 -15
  64. package/esm/ColumnsSettings/components/ColumnsSettingsPopup/ColumnsSettingsPopup.spec.js +207 -129
  65. package/esm/CommentsContainer/CommentsContainer.test.js +282 -211
  66. package/esm/CommentsContainer/components/CollaborationPopup/CollaborationPopup.test.js +182 -101
  67. package/esm/ConfigureColumnsPopup/ConfigureColumnsPopup.test.js +42 -41
  68. package/esm/ConfirmDeleteDialog/ConfirmDeleteDialog.test.js +77 -28
  69. package/esm/ConfirmationDialog/ConfirmationDialog.test.js +85 -48
  70. package/esm/ConnectionEditor/ConnectionEditor.test.js +300 -283
  71. package/package.json +1 -1
  72. package/cjs/AttributesErrorsPanel/components/ErrorsPanel/ErrorsPanel.specs.js +0 -100
  73. package/cjs/AttributesFiltersButton/components/ActionButtons/ActionButtons.test.d.ts +0 -1
  74. package/cjs/AttributesFiltersButton/components/ActionButtons/ActionButtons.test.js +0 -46
  75. package/cjs/AvatarWithFallback/AvatarWithFallback.specs.d.ts +0 -1
  76. package/cjs/AvatarWithFallback/AvatarWithFallback.specs.js +0 -27
  77. package/cjs/BooleanRadioEditor/components/BooleanEditor/BooleanEditor.test.d.ts +0 -1
  78. package/cjs/BooleanRadioEditor/components/BooleanEditor/BooleanEditor.test.js +0 -27
  79. package/cjs/CollaborationItem/components/Avatar/Avatar.test.d.ts +0 -1
  80. package/cjs/CollaborationItem/components/Avatar/Avatar.test.js +0 -15
  81. package/cjs/CollaborationItem/components/TextFieldWithMentions/TextFieldWithMentions.test.d.ts +0 -1
  82. package/cjs/CollaborationItem/components/TextFieldWithMentions/TextFieldWithMentions.test.js +0 -80
  83. package/esm/ActionsPanel/components/MenuItemRenderer/MenuItemRenderer.spec.d.ts +0 -1
  84. package/esm/AttributesErrorsPanel/components/ErrorsPanel/ErrorsPanel.specs.d.ts +0 -1
  85. package/esm/AttributesErrorsPanel/components/ErrorsPanel/ErrorsPanel.specs.js +0 -95
  86. package/esm/AttributesFiltersButton/components/ActionButtons/ActionButtons.test.d.ts +0 -1
  87. package/esm/AttributesFiltersButton/components/ActionButtons/ActionButtons.test.js +0 -41
  88. package/esm/AvatarWithFallback/AvatarWithFallback.specs.d.ts +0 -1
  89. package/esm/AvatarWithFallback/AvatarWithFallback.specs.js +0 -22
  90. package/esm/BooleanRadioEditor/components/BooleanEditor/BooleanEditor.test.d.ts +0 -1
  91. package/esm/BooleanRadioEditor/components/BooleanEditor/BooleanEditor.test.js +0 -22
  92. package/esm/CollaborationItem/components/Avatar/Avatar.test.d.ts +0 -1
  93. package/esm/CollaborationItem/components/Avatar/Avatar.test.js +0 -10
  94. package/esm/CollaborationItem/components/TextFieldWithMentions/TextFieldWithMentions.test.d.ts +0 -1
  95. package/esm/CollaborationItem/components/TextFieldWithMentions/TextFieldWithMentions.test.js +0 -55
  96. /package/cjs/{ActionsPanel/components/MenuItemRenderer/MenuItemRenderer.spec.d.ts → AvatarWithFallback/AvatarWithFallback.test.d.ts} +0 -0
  97. /package/{cjs/AttributesErrorsPanel/components/ErrorsPanel/ErrorsPanel.specs.d.ts → esm/AvatarWithFallback/AvatarWithFallback.test.d.ts} +0 -0
@@ -10,67 +10,67 @@ var __assign = (this && this.__assign) || function () {
10
10
  };
11
11
  return __assign.apply(this, arguments);
12
12
  };
13
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
14
- if (k2 === undefined) k2 = k;
15
- var desc = Object.getOwnPropertyDescriptor(m, k);
16
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
17
- desc = { enumerable: true, get: function() { return m[k]; } };
13
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
14
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
15
+ return new (P || (P = Promise))(function (resolve, reject) {
16
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
17
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
18
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
19
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
20
+ });
21
+ };
22
+ var __generator = (this && this.__generator) || function (thisArg, body) {
23
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
24
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
25
+ function verb(n) { return function (v) { return step([n, v]); }; }
26
+ function step(op) {
27
+ if (f) throw new TypeError("Generator is already executing.");
28
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
29
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
30
+ if (y = 0, t) op = [op[0] & 2, t.value];
31
+ switch (op[0]) {
32
+ case 0: case 1: t = op; break;
33
+ case 4: _.label++; return { value: op[1], done: false };
34
+ case 5: _.label++; y = op[1]; op = [0]; continue;
35
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
36
+ default:
37
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
38
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
39
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
40
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
41
+ if (t[2]) _.ops.pop();
42
+ _.trys.pop(); continue;
43
+ }
44
+ op = body.call(thisArg, _);
45
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
46
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
18
47
  }
19
- Object.defineProperty(o, k2, desc);
20
- }) : (function(o, m, k, k2) {
21
- if (k2 === undefined) k2 = k;
22
- o[k2] = m[k];
23
- }));
24
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
25
- Object.defineProperty(o, "default", { enumerable: true, value: v });
26
- }) : function(o, v) {
27
- o["default"] = v;
28
- });
29
- var __importStar = (this && this.__importStar) || function (mod) {
30
- if (mod && mod.__esModule) return mod;
31
- var result = {};
32
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
33
- __setModuleDefault(result, mod);
34
- return result;
48
+ };
49
+ var __importDefault = (this && this.__importDefault) || function (mod) {
50
+ return (mod && mod.__esModule) ? mod : { "default": mod };
35
51
  };
36
52
  Object.defineProperty(exports, "__esModule", { value: true });
37
- var react_1 = __importStar(require("react")), react = react_1;
38
- var enzyme_1 = require("enzyme");
53
+ var react_1 = __importDefault(require("react"));
39
54
  var react_2 = require("@testing-library/react");
40
- var SmallIconButton_1 = require("../../../SmallIconButton");
41
55
  var mdm_sdk_1 = require("@reltio/mdm-sdk");
42
56
  var Error_1 = require("../Error");
43
57
  var MdmModuleContext_1 = require("../../../contexts/MdmModuleContext");
44
- jest.mock('react', function () { return (__assign(__assign({}, jest.requireActual('react')), { useContext: jest.fn().mockImplementation(function (f) { return f(); }) })); });
45
- jest.mock('../../../contexts/MdmModuleContext', function () { return (__assign(__assign({}, jest.requireActual('../../../contexts/MdmModuleContext')), { useMdmMetadata: jest.fn(), useMdmIsEditableMode: jest.fn() })); });
58
+ var user_event_1 = __importDefault(require("@testing-library/user-event"));
59
+ var store_test_data_1 = require("../../store.test-data");
60
+ var ScrollToElementContext_1 = require("../../../contexts/ScrollToElementContext");
46
61
  describe('Error tests', function () {
47
- var attributeType = {
48
- uri: 'configuration/entityTypes/HCP/attributes/FirstName',
49
- label: 'First Name',
50
- name: 'FirstName',
51
- type: 'String',
52
- required: true
53
- };
54
- var metadata = {
55
- entityTypes: [
56
- {
57
- uri: 'configuration/entityTypes/HCP',
58
- attributes: [attributeType]
59
- }
60
- ]
62
+ var attributeType = store_test_data_1.store.metadata.entityTypes[0].attributes[0];
63
+ var setUp = function (props, store) {
64
+ if (store === void 0) { store = store_test_data_1.store; }
65
+ var highlightError = jest.fn();
66
+ var Providers = function (_a) {
67
+ var children = _a.children;
68
+ return (react_1.default.createElement(MdmModuleContext_1.MdmModuleProvider, { values: store },
69
+ react_1.default.createElement(ScrollToElementContext_1.ScrollToElementContext.Provider, { value: { highlightError: highlightError, element: null, type: null, scrollIntoRef: null } }, children)));
70
+ };
71
+ var user = user_event_1.default.setup();
72
+ return __assign({ user: user, highlightError: highlightError }, (0, react_2.render)(react_1.default.createElement(Error_1.Error, __assign({}, props)), { wrapper: Providers }));
61
73
  };
62
- beforeAll(function () {
63
- MdmModuleContext_1.useMdmMetadata.mockReturnValue(metadata);
64
- });
65
- var highlightErrorSpy = jest.fn();
66
- beforeAll(function () {
67
- jest.spyOn(react, 'useContext').mockReturnValue({
68
- highlightError: highlightErrorSpy
69
- });
70
- });
71
- afterEach(function () {
72
- jest.clearAllMocks();
73
- });
74
74
  it('should render error message for validation service errors', function () {
75
75
  var error = {
76
76
  type: mdm_sdk_1.ErrorType.missed,
@@ -83,9 +83,9 @@ describe('Error tests', function () {
83
83
  source: mdm_sdk_1.ErrorSource.validationService,
84
84
  path: []
85
85
  };
86
- var component = (0, enzyme_1.shallow)(react_1.default.createElement(Error_1.Error, { error: error }));
87
- expect(component.text()).toBe('Error 1');
88
- expect(component.find(SmallIconButton_1.SmallIconButtonWithTooltip)).toHaveLength(0);
86
+ setUp({ error: error });
87
+ expect(react_2.screen.getByText(error.message)).toBeInTheDocument();
88
+ expect(react_2.screen.queryByTestId('SvgHyperlink')).not.toBeInTheDocument();
89
89
  });
90
90
  it('should render error message for local errors', function () {
91
91
  var error = {
@@ -99,9 +99,8 @@ describe('Error tests', function () {
99
99
  source: mdm_sdk_1.ErrorSource.local,
100
100
  path: []
101
101
  };
102
- var component = (0, enzyme_1.shallow)(react_1.default.createElement(Error_1.Error, { error: error }));
103
- expect(component.text()).toBe('Error 1');
104
- expect(component.find(SmallIconButton_1.SmallIconButtonWithTooltip)).toHaveLength(0);
102
+ setUp({ error: error });
103
+ expect(react_2.screen.getByText(error.message)).toBeInTheDocument();
105
104
  });
106
105
  it('should render special message with attribute type label for local missed errors', function () {
107
106
  var error = {
@@ -114,8 +113,8 @@ describe('Error tests', function () {
114
113
  source: mdm_sdk_1.ErrorSource.local,
115
114
  path: []
116
115
  };
117
- var component = (0, enzyme_1.shallow)(react_1.default.createElement(Error_1.Error, { error: error }));
118
- expect(component.text()).toBe('First Name is required');
116
+ setUp({ error: error });
117
+ expect(react_2.screen.getByText("".concat(attributeType.label, " is required"))).toBeInTheDocument();
119
118
  });
120
119
  it('should render special message with attribute type label for local missed errors even if attributeType is not defined', function () {
121
120
  var error = {
@@ -128,8 +127,8 @@ describe('Error tests', function () {
128
127
  source: mdm_sdk_1.ErrorSource.local,
129
128
  path: []
130
129
  };
131
- var component = (0, enzyme_1.shallow)(react_1.default.createElement(Error_1.Error, { error: error }));
132
- expect(component.text()).toBe('First Name is required');
130
+ setUp({ error: error });
131
+ expect(react_2.screen.getByText("".concat(attributeType.label, " is required"))).toBeInTheDocument();
133
132
  });
134
133
  it('should render parents path for missed errors if error.path is defined', function () {
135
134
  var error = {
@@ -164,8 +163,9 @@ describe('Error tests', function () {
164
163
  }
165
164
  ]
166
165
  };
167
- var component = (0, enzyme_1.shallow)(react_1.default.createElement(Error_1.Error, { error: error }));
168
- expect(component.text()).toBe('Error 1_Connection 1 / Reference 1 / Name1');
166
+ setUp({ error: error });
167
+ expect(react_2.screen.getByText('Error 1_')).toBeInTheDocument();
168
+ expect(react_2.screen.getByText('Connection 1 / Reference 1 / Name1')).toBeInTheDocument();
169
169
  });
170
170
  it('should render attribute types path for errors if error.path is defined', function () {
171
171
  var error = {
@@ -205,8 +205,10 @@ describe('Error tests', function () {
205
205
  }
206
206
  ]
207
207
  };
208
- var component = (0, enzyme_1.shallow)(react_1.default.createElement(Error_1.Error, { error: error }));
209
- expect(component.text()).toBe('ReferenceType1 > Name Type 1__Error 1_Connection 1 / Reference 1 / Name1');
208
+ setUp({ error: error });
209
+ expect(react_2.screen.getByText('ReferenceType1 > Name Type 1__'));
210
+ expect(react_2.screen.getByText('Error 1_')).toBeInTheDocument();
211
+ expect(react_2.screen.getByText('Connection 1 / Reference 1 / Name1')).toBeInTheDocument();
210
212
  });
211
213
  it('should render parents path for invalid errors if error.path is defined', function () {
212
214
  var error = {
@@ -241,30 +243,34 @@ describe('Error tests', function () {
241
243
  }
242
244
  ]
243
245
  };
244
- var component = (0, enzyme_1.shallow)(react_1.default.createElement(Error_1.Error, { error: error }));
245
- expect(component.text()).toBe('Error 1_Connection 1 / Reference 1');
246
+ setUp({ error: error });
247
+ expect(react_2.screen.getByText('Error 1_')).toBeInTheDocument();
248
+ expect(react_2.screen.getByText('Connection 1 / Reference 1')).toBeInTheDocument();
246
249
  });
247
- it('should render button when editing mode and correct error', function () {
248
- var error = {
249
- type: mdm_sdk_1.ErrorType.invalid,
250
- uri: 'some uri',
251
- attributeType: attributeType,
252
- attributeTypeUri: 'configuration/entityTypes/HCP/attributes/Name',
253
- parentUri: 'entities/uri$$123',
254
- message: 'Error 1_',
255
- severity: mdm_sdk_1.ErrorSeverity.ERROR,
256
- source: mdm_sdk_1.ErrorSource.validationService,
257
- path: []
258
- };
259
- MdmModuleContext_1.useMdmIsEditableMode.mockReturnValue(true);
260
- var component = (0, enzyme_1.shallow)(react_1.default.createElement(Error_1.Error, { error: error }));
261
- expect(component.text()).toBe('Error 1_');
262
- var button = component.find(SmallIconButton_1.SmallIconButtonWithTooltip);
263
- expect(button).toHaveLength(1);
264
- expect(button.prop('tooltipTitle')).toBe('Go to error');
265
- (0, react_2.act)(function () {
266
- button.simulate('click');
250
+ it('should render button when editing mode and correct error', function () { return __awaiter(void 0, void 0, void 0, function () {
251
+ var error, _a, user, highlightError;
252
+ return __generator(this, function (_b) {
253
+ switch (_b.label) {
254
+ case 0:
255
+ error = {
256
+ type: mdm_sdk_1.ErrorType.invalid,
257
+ uri: 'some uri',
258
+ attributeType: attributeType,
259
+ attributeTypeUri: 'configuration/entityTypes/HCP/attributes/Name',
260
+ parentUri: 'entities/uri$$123',
261
+ message: 'Error 1_',
262
+ severity: mdm_sdk_1.ErrorSeverity.ERROR,
263
+ source: mdm_sdk_1.ErrorSource.validationService,
264
+ path: []
265
+ };
266
+ _a = setUp({ error: error }, __assign(__assign({}, store_test_data_1.store), { mode: mdm_sdk_1.Mode.Editing })), user = _a.user, highlightError = _a.highlightError;
267
+ expect(react_2.screen.getByText('Error 1_')).toBeInTheDocument();
268
+ return [4 /*yield*/, user.click(react_2.screen.getByLabelText('Go to error'))];
269
+ case 1:
270
+ _b.sent();
271
+ expect(highlightError).toBeCalledWith(error);
272
+ return [2 /*return*/];
273
+ }
267
274
  });
268
- expect(highlightErrorSpy).toBeCalledWith(error);
269
- });
275
+ }); });
270
276
  });
@@ -0,0 +1,22 @@
1
+ import { Mode } from '@reltio/mdm-sdk';
2
+ export declare const store: {
3
+ metadata: {
4
+ entityTypes: {
5
+ uri: string;
6
+ attributes: ({
7
+ uri: string;
8
+ name: string;
9
+ label: string;
10
+ type: string;
11
+ required: boolean;
12
+ } | {
13
+ uri: string;
14
+ type: string;
15
+ label: string;
16
+ name: string;
17
+ required?: undefined;
18
+ })[];
19
+ }[];
20
+ };
21
+ mode: Mode;
22
+ };
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.store = void 0;
4
+ var mdm_sdk_1 = require("@reltio/mdm-sdk");
5
+ exports.store = {
6
+ metadata: {
7
+ entityTypes: [
8
+ {
9
+ uri: 'configuration/entityTypes/HCP',
10
+ attributes: [
11
+ {
12
+ uri: 'configuration/entityTypes/HCP/attributes/Name',
13
+ name: 'Name',
14
+ label: 'Name Label',
15
+ type: 'String',
16
+ required: true
17
+ },
18
+ {
19
+ uri: 'configuration/entityTypes/HCP/attributes/RDMLookup',
20
+ type: 'Reference',
21
+ label: 'RDMLookup Label',
22
+ name: 'RDMLookup'
23
+ }
24
+ ]
25
+ }
26
+ ]
27
+ },
28
+ mode: mdm_sdk_1.Mode.Viewing
29
+ };
@@ -10,132 +10,154 @@ var __assign = (this && this.__assign) || function () {
10
10
  };
11
11
  return __assign.apply(this, arguments);
12
12
  };
13
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
14
- if (k2 === undefined) k2 = k;
15
- var desc = Object.getOwnPropertyDescriptor(m, k);
16
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
17
- desc = { enumerable: true, get: function() { return m[k]; } };
13
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
14
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
15
+ return new (P || (P = Promise))(function (resolve, reject) {
16
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
17
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
18
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
19
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
20
+ });
21
+ };
22
+ var __generator = (this && this.__generator) || function (thisArg, body) {
23
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
24
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
25
+ function verb(n) { return function (v) { return step([n, v]); }; }
26
+ function step(op) {
27
+ if (f) throw new TypeError("Generator is already executing.");
28
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
29
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
30
+ if (y = 0, t) op = [op[0] & 2, t.value];
31
+ switch (op[0]) {
32
+ case 0: case 1: t = op; break;
33
+ case 4: _.label++; return { value: op[1], done: false };
34
+ case 5: _.label++; y = op[1]; op = [0]; continue;
35
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
36
+ default:
37
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
38
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
39
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
40
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
41
+ if (t[2]) _.ops.pop();
42
+ _.trys.pop(); continue;
43
+ }
44
+ op = body.call(thisArg, _);
45
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
46
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
18
47
  }
19
- Object.defineProperty(o, k2, desc);
20
- }) : (function(o, m, k, k2) {
21
- if (k2 === undefined) k2 = k;
22
- o[k2] = m[k];
23
- }));
24
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
25
- Object.defineProperty(o, "default", { enumerable: true, value: v });
26
- }) : function(o, v) {
27
- o["default"] = v;
28
- });
29
- var __importStar = (this && this.__importStar) || function (mod) {
30
- if (mod && mod.__esModule) return mod;
31
- var result = {};
32
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
33
- __setModuleDefault(result, mod);
34
- return result;
35
48
  };
36
49
  var __importDefault = (this && this.__importDefault) || function (mod) {
37
50
  return (mod && mod.__esModule) ? mod : { "default": mod };
38
51
  };
39
52
  Object.defineProperty(exports, "__esModule", { value: true });
40
53
  var react_1 = __importDefault(require("react"));
41
- var enzyme_1 = require("enzyme");
42
- var ui_i18n_1 = __importDefault(require("ui-i18n"));
43
- var mdmSdk = __importStar(require("@reltio/mdm-sdk"));
44
54
  var AttributesFilterSelector_1 = __importDefault(require("./AttributesFilterSelector"));
45
- var SimpleDropDownSelector_1 = require("../SimpleDropDownSelector");
46
- jest.mock('@reltio/mdm-sdk', function () { return (__assign(__assign({}, jest.requireActual('@reltio/mdm-sdk')), { getFilterOptionsForQueryBuilder: jest.fn() })); });
47
- var defaultProps = {
48
- rowData: {
49
- attribute: {
50
- attrType: {},
51
- entityTypeUri: '',
52
- fieldName: 'attribute',
53
- groupName: '',
54
- title: '',
55
- uri: ''
56
- },
57
- filter: 'equals',
58
- id: 0,
59
- values: []
60
- },
61
- rowContext: {
62
- attributesGroup: [],
63
- addNewFilter: jest.fn(),
64
- addRowAfterIndex: jest.fn(),
65
- changeFilter: jest.fn(),
66
- duplicateRow: jest.fn(),
67
- removeRow: jest.fn(),
68
- entityType: {
69
- uri: 'configuration/entityTypes/HCA',
70
- label: 'HCA',
71
- attributes: []
72
- },
73
- attributeSelectorItemsGroups: []
74
- },
75
- textFieldInputRef: { current: null }
76
- };
77
- var value = {
78
- value: 'equals',
79
- label: 'Equals'
80
- };
81
- var filterOptions = [value];
82
- var setUp = function (props) {
83
- if (props === void 0) { props = defaultProps; }
84
- return (0, enzyme_1.shallow)(react_1.default.createElement(AttributesFilterSelector_1.default, __assign({}, props)));
85
- };
55
+ var react_2 = require("@testing-library/react");
56
+ var user_event_1 = __importDefault(require("@testing-library/user-event"));
86
57
  describe('AttributesFilterSelector tests', function () {
87
- it('should render main components', function () {
88
- jest.spyOn(mdmSdk, 'getFilterOptionsForQueryBuilder').mockReturnValue(['equals']);
89
- var component = setUp();
90
- expect(component.find(SimpleDropDownSelector_1.SimpleDropDownSelector)).toHaveLength(1);
91
- expect(component.find(SimpleDropDownSelector_1.SimpleDropDownSelector).props()).toMatchObject({
92
- isDisabled: false,
93
- placeholder: ui_i18n_1.default.text('Equals'),
94
- value: value,
95
- options: filterOptions,
96
- onChange: expect.any(Function),
97
- textFieldInputRef: defaultProps.textFieldInputRef
98
- });
99
- });
100
- it('should call changeFilter prop after filter changing', function () {
101
- var rowContext = defaultProps.rowContext, rowData = defaultProps.rowData;
102
- var newFilterOption = { value: 'exists', label: 'Exists' };
103
- var newFilter = {
104
- fieldName: rowData.attribute.fieldName,
105
- filter: newFilterOption.value,
106
- values: []
107
- };
108
- var component = setUp();
109
- component.find(SimpleDropDownSelector_1.SimpleDropDownSelector).prop('onChange')(newFilterOption);
110
- expect(rowContext.changeFilter).toBeCalledWith(newFilter, rowData.id);
111
- });
112
- it('should call changeFilter prop if there is fieldName in filter and there is no filter', function () {
113
- var rowData = {
58
+ var defaultProps = {
59
+ rowData: {
114
60
  attribute: {
115
- attrType: {},
61
+ attrType: {
62
+ name: 'attribute1',
63
+ uri: 'etityTypes/uri1',
64
+ type: 'string'
65
+ },
116
66
  entityTypeUri: '',
117
67
  fieldName: 'attribute',
118
68
  groupName: '',
119
69
  title: '',
120
70
  uri: ''
121
71
  },
122
- filter: null,
72
+ filter: 'equals',
123
73
  id: 0,
124
74
  values: []
125
- };
126
- var props = __assign(__assign({}, defaultProps), { rowData: rowData });
75
+ },
76
+ rowContext: {
77
+ attributesGroup: [],
78
+ addNewFilter: jest.fn(),
79
+ addRowAfterIndex: jest.fn(),
80
+ changeFilter: jest.fn(),
81
+ duplicateRow: jest.fn(),
82
+ removeRow: jest.fn(),
83
+ entityType: {
84
+ uri: 'configuration/entityTypes/HCA',
85
+ label: 'HCA',
86
+ attributes: []
87
+ },
88
+ attributeSelectorItemsGroups: []
89
+ },
90
+ textFieldInputRef: { current: null }
91
+ };
92
+ var value = {
93
+ value: 'equals',
94
+ label: 'Equals'
95
+ };
96
+ var filterOptions = [value];
97
+ var setUp = function (props) {
98
+ if (props === void 0) { props = defaultProps; }
99
+ var user = user_event_1.default.setup();
100
+ return __assign({ user: user }, (0, react_2.render)(react_1.default.createElement(AttributesFilterSelector_1.default, __assign({}, props))));
101
+ };
102
+ it('should use filters for attribute', function () { return __awaiter(void 0, void 0, void 0, function () {
103
+ var user, menuItems;
104
+ return __generator(this, function (_a) {
105
+ switch (_a.label) {
106
+ case 0:
107
+ user = setUp().user;
108
+ expect(react_2.screen.getByText('Equals')).toBeInTheDocument();
109
+ return [4 /*yield*/, user.click(react_2.screen.getByTestId('filter-selector'))];
110
+ case 1:
111
+ _a.sent();
112
+ menuItems = react_2.screen.getAllByRole('menuitem');
113
+ expect(menuItems.map(function (item) { return item.textContent; })).toEqual(['Equals', 'Not', 'Exists', 'Missing value']);
114
+ return [2 /*return*/];
115
+ }
116
+ });
117
+ }); });
118
+ it('should call changeFilter prop after filter changing', function () { return __awaiter(void 0, void 0, void 0, function () {
119
+ var changeFilterSpy, user;
120
+ return __generator(this, function (_a) {
121
+ switch (_a.label) {
122
+ case 0:
123
+ changeFilterSpy = jest.fn();
124
+ user = setUp(__assign(__assign({}, defaultProps), { rowContext: __assign(__assign({}, defaultProps.rowContext), { changeFilter: changeFilterSpy }) })).user;
125
+ return [4 /*yield*/, user.click(react_2.screen.getByTestId('filter-selector'))];
126
+ case 1:
127
+ _a.sent();
128
+ return [4 /*yield*/, user.click(react_2.screen.getByText('Exists'))];
129
+ case 2:
130
+ _a.sent();
131
+ expect(changeFilterSpy).toHaveBeenCalledWith({ fieldName: 'attribute', filter: 'exists', operator: undefined, values: [] }, defaultProps.rowData.id);
132
+ return [2 /*return*/];
133
+ }
134
+ });
135
+ }); });
136
+ it('should call changeFilter prop if there is fieldName in filter and there is no filter', function () {
137
+ var changeFilterSpy = jest.fn();
138
+ var props = __assign(__assign({}, defaultProps), { rowContext: __assign(__assign({}, defaultProps.rowContext), { changeFilter: changeFilterSpy }), rowData: __assign(__assign({}, defaultProps.rowData), { filter: null }) });
127
139
  var newFilter = {
128
- fieldName: rowData.attribute.fieldName,
140
+ fieldName: props.rowData.attribute.fieldName,
129
141
  filter: filterOptions[0].value,
130
142
  values: []
131
143
  };
132
- (0, enzyme_1.mount)(react_1.default.createElement(AttributesFilterSelector_1.default, __assign({}, props)));
133
- expect(props.rowContext.changeFilter).toBeCalledWith(newFilter, rowData.id);
134
- });
135
- it('should pass options from props', function () {
136
- var options = [{ value: 'not equals', label: 'Not Equals' }];
137
- var props = __assign(__assign({}, defaultProps), { options: options });
138
- var component = setUp(props);
139
- expect(component.find(SimpleDropDownSelector_1.SimpleDropDownSelector).prop('options')).toEqual(options);
144
+ setUp(props);
145
+ expect(changeFilterSpy).toHaveBeenCalledWith(newFilter, props.rowData.id);
140
146
  });
147
+ it('should pass options from props', function () { return __awaiter(void 0, void 0, void 0, function () {
148
+ var options, user, menuItems;
149
+ return __generator(this, function (_a) {
150
+ switch (_a.label) {
151
+ case 0:
152
+ options = [{ value: 'in', label: 'In' }];
153
+ user = setUp(__assign(__assign({}, defaultProps), { options: options })).user;
154
+ return [4 /*yield*/, user.click(react_2.screen.getByTestId('filter-selector'))];
155
+ case 1:
156
+ _a.sent();
157
+ menuItems = react_2.screen.getAllByRole('menuitem');
158
+ expect(menuItems.map(function (item) { return item.textContent; })).toEqual(['In']);
159
+ return [2 /*return*/];
160
+ }
161
+ });
162
+ }); });
141
163
  });