@reltio/components 1.4.1999 → 1.4.2000

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 (89) hide show
  1. package/cjs/features/crosswalks/AttributesTable/AttributesTable.test-data.d.ts +36 -0
  2. package/cjs/features/crosswalks/AttributesTable/AttributesTable.test-data.js +288 -0
  3. package/cjs/features/crosswalks/AttributesTable/AttributesTable.test.js +708 -370
  4. package/cjs/features/crosswalks/ColoredBlock/ColoredBlock.test.js +77 -15
  5. package/cjs/features/crosswalks/CopyableValueField/CopyableValueField.test.js +85 -15
  6. package/cjs/features/crosswalks/CrosswalkAttributes/CrosswalkAttributes.test.js +265 -193
  7. package/cjs/features/crosswalks/CrosswalkDateEditor/CrosswalkDateEditor.test.js +106 -12
  8. package/cjs/features/crosswalks/CrosswalkDragLayer/CrosswalkDragLayer.test.js +21 -9
  9. package/cjs/features/crosswalks/CrosswalkEditor/CrosswalkEditor.test.js +190 -90
  10. package/cjs/features/crosswalks/CrosswalkRow/CrosswalkRow.test.js +323 -225
  11. package/cjs/features/crosswalks/ShowDependentLink/ShowDependentLink.test.js +75 -12
  12. package/cjs/features/crosswalks/SourceCrosswalksRow/SourceCrosswalksRow.test.js +171 -138
  13. package/esm/features/crosswalks/AttributesTable/AttributesTable.test-data.d.ts +36 -0
  14. package/esm/features/crosswalks/AttributesTable/AttributesTable.test-data.js +283 -0
  15. package/esm/features/crosswalks/AttributesTable/AttributesTable.test.js +711 -350
  16. package/esm/features/crosswalks/ColoredBlock/ColoredBlock.test.js +77 -15
  17. package/esm/features/crosswalks/CopyableValueField/CopyableValueField.test.js +85 -15
  18. package/esm/features/crosswalks/CrosswalkAttributes/CrosswalkAttributes.test.js +266 -194
  19. package/esm/features/crosswalks/CrosswalkDateEditor/CrosswalkDateEditor.test.js +106 -12
  20. package/esm/features/crosswalks/CrosswalkDragLayer/CrosswalkDragLayer.test.js +21 -9
  21. package/esm/features/crosswalks/CrosswalkEditor/CrosswalkEditor.test.js +190 -90
  22. package/esm/features/crosswalks/CrosswalkRow/CrosswalkRow.test.js +324 -226
  23. package/esm/features/crosswalks/ShowDependentLink/ShowDependentLink.test.js +75 -12
  24. package/esm/features/crosswalks/SourceCrosswalksRow/SourceCrosswalksRow.test.js +171 -138
  25. package/package.json +1 -1
  26. package/cjs/features/crosswalks/AttributesTable/IntegrationAttributesTable.test-data.d.ts +0 -3
  27. package/cjs/features/crosswalks/AttributesTable/IntegrationAttributesTable.test-data.js +0 -52
  28. package/cjs/features/crosswalks/AttributesTable/IntegrationAttributesTable.test.d.ts +0 -1
  29. package/cjs/features/crosswalks/AttributesTable/IntegrationAttributesTable.test.js +0 -323
  30. package/cjs/features/crosswalks/AttributesTable/components/AddAttributesButton/AddAttributesButton.test.d.ts +0 -1
  31. package/cjs/features/crosswalks/AttributesTable/components/AddAttributesButton/AddAttributesButton.test.js +0 -142
  32. package/cjs/features/crosswalks/AttributesTable/components/AttributeValuesRenderer/AttributeValuesRenderer.test.d.ts +0 -1
  33. package/cjs/features/crosswalks/AttributesTable/components/AttributeValuesRenderer/AttributeValuesRenderer.test.js +0 -146
  34. package/cjs/features/crosswalks/AttributesTable/components/AttributesHeadCellRenderer/AttributesHeadCellRenderer.test.d.ts +0 -1
  35. package/cjs/features/crosswalks/AttributesTable/components/AttributesHeadCellRenderer/AttributesHeadCellRenderer.test.js +0 -50
  36. package/cjs/features/crosswalks/AttributesTable/components/ConfirmEditIgnoredDialog/ConfirmEditIgnoredDialog.test.d.ts +0 -1
  37. package/cjs/features/crosswalks/AttributesTable/components/ConfirmEditIgnoredDialog/ConfirmEditIgnoredDialog.test.js +0 -58
  38. package/cjs/features/crosswalks/AttributesTable/components/CountRenderer/CountRenderer.test.d.ts +0 -1
  39. package/cjs/features/crosswalks/AttributesTable/components/CountRenderer/CountRenderer.test.js +0 -14
  40. package/cjs/features/crosswalks/AttributesTable/components/ImageAttributesRenderer/ImageAttributesRenderer.test.d.ts +0 -1
  41. package/cjs/features/crosswalks/AttributesTable/components/ImageAttributesRenderer/ImageAttributesRenderer.test.js +0 -110
  42. package/cjs/features/crosswalks/AttributesTable/components/NestedAttributesRenderer/NestedAttributesRenderer.test.d.ts +0 -1
  43. package/cjs/features/crosswalks/AttributesTable/components/NestedAttributesRenderer/NestedAttributesRenderer.test.js +0 -111
  44. package/cjs/features/crosswalks/AttributesTable/components/OvValuesRenderer/OvValuesRenderer.test.d.ts +0 -1
  45. package/cjs/features/crosswalks/AttributesTable/components/OvValuesRenderer/OvValuesRenderer.test.js +0 -67
  46. package/cjs/features/crosswalks/AttributesTable/components/ReferenceAttributesRenderer/ReferenceAttributesRenderer.test.d.ts +0 -1
  47. package/cjs/features/crosswalks/AttributesTable/components/ReferenceAttributesRenderer/ReferenceAttributesRenderer.test.js +0 -193
  48. package/cjs/features/crosswalks/AttributesTable/components/RuleTypeInfoButton/RuleTypeInfoButton.test.d.ts +0 -1
  49. package/cjs/features/crosswalks/AttributesTable/components/RuleTypeInfoButton/RuleTypeInfoButton.test.js +0 -22
  50. package/cjs/features/crosswalks/AttributesTable/components/RuleTypeRenderer/RuleTypeRenderer.test.d.ts +0 -1
  51. package/cjs/features/crosswalks/AttributesTable/components/RuleTypeRenderer/RuleTypeRenderer.test.js +0 -58
  52. package/cjs/features/crosswalks/AttributesTable/components/SimpleAttributesRenderer/SimpleAttributesRenderer.test.d.ts +0 -1
  53. package/cjs/features/crosswalks/AttributesTable/components/SimpleAttributesRenderer/SimpleAttributesRenderer.test.js +0 -69
  54. package/cjs/features/crosswalks/CrosswalkDateEditor/IntegrationCrosswalkDateEditor.test.d.ts +0 -1
  55. package/cjs/features/crosswalks/CrosswalkDateEditor/IntegrationCrosswalkDateEditor.test.js +0 -137
  56. package/cjs/features/crosswalks/CrosswalkDragLayer/components/CrosswalkDragPreview/CrosswalkDragPreview.test.d.ts +0 -1
  57. package/cjs/features/crosswalks/CrosswalkDragLayer/components/CrosswalkDragPreview/CrosswalkDragPreview.test.js +0 -56
  58. package/esm/features/crosswalks/AttributesTable/IntegrationAttributesTable.test-data.d.ts +0 -3
  59. package/esm/features/crosswalks/AttributesTable/IntegrationAttributesTable.test-data.js +0 -47
  60. package/esm/features/crosswalks/AttributesTable/IntegrationAttributesTable.test.d.ts +0 -1
  61. package/esm/features/crosswalks/AttributesTable/IntegrationAttributesTable.test.js +0 -318
  62. package/esm/features/crosswalks/AttributesTable/components/AddAttributesButton/AddAttributesButton.test.d.ts +0 -1
  63. package/esm/features/crosswalks/AttributesTable/components/AddAttributesButton/AddAttributesButton.test.js +0 -137
  64. package/esm/features/crosswalks/AttributesTable/components/AttributeValuesRenderer/AttributeValuesRenderer.test.d.ts +0 -1
  65. package/esm/features/crosswalks/AttributesTable/components/AttributeValuesRenderer/AttributeValuesRenderer.test.js +0 -141
  66. package/esm/features/crosswalks/AttributesTable/components/AttributesHeadCellRenderer/AttributesHeadCellRenderer.test.d.ts +0 -1
  67. package/esm/features/crosswalks/AttributesTable/components/AttributesHeadCellRenderer/AttributesHeadCellRenderer.test.js +0 -45
  68. package/esm/features/crosswalks/AttributesTable/components/ConfirmEditIgnoredDialog/ConfirmEditIgnoredDialog.test.d.ts +0 -1
  69. package/esm/features/crosswalks/AttributesTable/components/ConfirmEditIgnoredDialog/ConfirmEditIgnoredDialog.test.js +0 -53
  70. package/esm/features/crosswalks/AttributesTable/components/CountRenderer/CountRenderer.test.d.ts +0 -1
  71. package/esm/features/crosswalks/AttributesTable/components/CountRenderer/CountRenderer.test.js +0 -9
  72. package/esm/features/crosswalks/AttributesTable/components/ImageAttributesRenderer/ImageAttributesRenderer.test.d.ts +0 -1
  73. package/esm/features/crosswalks/AttributesTable/components/ImageAttributesRenderer/ImageAttributesRenderer.test.js +0 -105
  74. package/esm/features/crosswalks/AttributesTable/components/NestedAttributesRenderer/NestedAttributesRenderer.test.d.ts +0 -1
  75. package/esm/features/crosswalks/AttributesTable/components/NestedAttributesRenderer/NestedAttributesRenderer.test.js +0 -106
  76. package/esm/features/crosswalks/AttributesTable/components/OvValuesRenderer/OvValuesRenderer.test.d.ts +0 -1
  77. package/esm/features/crosswalks/AttributesTable/components/OvValuesRenderer/OvValuesRenderer.test.js +0 -62
  78. package/esm/features/crosswalks/AttributesTable/components/ReferenceAttributesRenderer/ReferenceAttributesRenderer.test.d.ts +0 -1
  79. package/esm/features/crosswalks/AttributesTable/components/ReferenceAttributesRenderer/ReferenceAttributesRenderer.test.js +0 -188
  80. package/esm/features/crosswalks/AttributesTable/components/RuleTypeInfoButton/RuleTypeInfoButton.test.d.ts +0 -1
  81. package/esm/features/crosswalks/AttributesTable/components/RuleTypeInfoButton/RuleTypeInfoButton.test.js +0 -17
  82. package/esm/features/crosswalks/AttributesTable/components/RuleTypeRenderer/RuleTypeRenderer.test.d.ts +0 -1
  83. package/esm/features/crosswalks/AttributesTable/components/RuleTypeRenderer/RuleTypeRenderer.test.js +0 -53
  84. package/esm/features/crosswalks/AttributesTable/components/SimpleAttributesRenderer/SimpleAttributesRenderer.test.d.ts +0 -1
  85. package/esm/features/crosswalks/AttributesTable/components/SimpleAttributesRenderer/SimpleAttributesRenderer.test.js +0 -64
  86. package/esm/features/crosswalks/CrosswalkDateEditor/IntegrationCrosswalkDateEditor.test.d.ts +0 -1
  87. package/esm/features/crosswalks/CrosswalkDateEditor/IntegrationCrosswalkDateEditor.test.js +0 -132
  88. package/esm/features/crosswalks/CrosswalkDragLayer/components/CrosswalkDragPreview/CrosswalkDragPreview.test.d.ts +0 -1
  89. package/esm/features/crosswalks/CrosswalkDragLayer/components/CrosswalkDragPreview/CrosswalkDragPreview.test.js +0 -28
@@ -10,29 +10,54 @@ var __assign = (this && this.__assign) || function () {
10
10
  };
11
11
  return __assign.apply(this, arguments);
12
12
  };
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 = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
24
+ return g.next = verb(0), g["throw"] = verb(1), g["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 };
47
+ }
48
+ };
13
49
  var __importDefault = (this && this.__importDefault) || function (mod) {
14
50
  return (mod && mod.__esModule) ? mod : { "default": mod };
15
51
  };
16
52
  Object.defineProperty(exports, "__esModule", { value: true });
17
53
  var react_1 = __importDefault(require("react"));
18
- var enzyme_1 = require("enzyme");
19
- var ramda_1 = require("ramda");
20
- var moment_1 = __importDefault(require("moment"));
21
- var test_utils_1 = require("react-dom/test-utils");
22
- var Delete_1 = __importDefault(require("@mui/icons-material/Delete"));
54
+ var react_2 = require("@testing-library/react");
55
+ var user_event_1 = __importDefault(require("@testing-library/user-event"));
56
+ var LocalizationProvider_1 = require("@mui/x-date-pickers/LocalizationProvider");
57
+ var AdapterMoment_1 = require("@mui/x-date-pickers/AdapterMoment");
23
58
  var mdm_sdk_1 = require("@reltio/mdm-sdk");
24
59
  var MdmModuleContext_1 = require("../../../contexts/MdmModuleContext");
25
- var ConfirmDeleteDialog_1 = require("../../../ConfirmDeleteDialog");
26
- var MoreAttributesButton_1 = require("../../../MoreAttributesButton");
27
- var SimpleDropDownSelector_1 = require("../../../SimpleDropDownSelector");
28
- var SmallIconButton_1 = require("../../../SmallIconButton");
29
- var TextEditor_1 = require("../../../TextEditor");
30
- var CopyableValueField_1 = require("../CopyableValueField");
31
- var CrosswalkDateEditor_1 = require("../CrosswalkDateEditor");
32
60
  var CrosswalkAttributes_1 = require("./CrosswalkAttributes");
33
- jest.mock('../CrosswalkDateEditor', function () { return ({
34
- CrosswalkDateEditor: function () { return null; }
35
- }); });
36
61
  var metadata = {
37
62
  sources: [
38
63
  {
@@ -49,7 +74,6 @@ var metadata = {
49
74
  }
50
75
  ]
51
76
  };
52
- var attributesSortingStrategy = mdm_sdk_1.SortingStrategy.ASC_BY_NAME;
53
77
  var crosswalk = {
54
78
  uri: 'entities/j8K1vc9/crosswalks/1kQ5cap2n',
55
79
  type: 'configuration/sources/Reltio',
@@ -71,202 +95,250 @@ var defaultProps = {
71
95
  };
72
96
  var setUp = function (props) {
73
97
  if (props === void 0) { props = defaultProps; }
74
- return (0, enzyme_1.mount)(react_1.default.createElement(MdmModuleContext_1.MdmModuleProvider, { values: { metadata: metadata, attributesSortingStrategy: attributesSortingStrategy } },
75
- react_1.default.createElement(CrosswalkAttributes_1.CrosswalkAttributes, __assign({}, props))));
98
+ var user = user_event_1.default.setup({ delay: null });
99
+ var Providers = function (_a) {
100
+ var children = _a.children;
101
+ return (react_1.default.createElement(MdmModuleContext_1.MdmModuleProvider, { values: { metadata: metadata } },
102
+ react_1.default.createElement(LocalizationProvider_1.LocalizationProvider, { dateAdapter: AdapterMoment_1.AdapterMoment }, children)));
103
+ };
104
+ var renderer = (0, react_2.render)(react_1.default.createElement(CrosswalkAttributes_1.CrosswalkAttributes, __assign({}, props)), { wrapper: Providers });
105
+ return __assign(__assign({}, renderer), { user: user });
76
106
  };
77
107
  describe('CrosswalkAttributes tests', function () {
78
108
  afterEach(function () {
79
109
  jest.clearAllMocks();
80
110
  });
81
111
  it('should render edit mode correctly', function () {
82
- var wrapper = setUp();
83
- var moreButton = wrapper.find(MoreAttributesButton_1.MoreAttributesButton);
84
- expect(wrapper.find(MoreAttributesButton_1.MoreAttributesButton).prop('label')).toBe('Add attributes');
85
- var extraAttributes = (0, ramda_1.map)((0, ramda_1.prop)('label'), moreButton.prop('data'));
86
- expect(extraAttributes).toEqual(['Delete Date']);
87
- expect(wrapper.find('p.attributeTitle').at(0).text()).toBe('Source System Name:');
88
- expect(wrapper.find('.attributeValue').at(0).text()).toBe(metadata.sources[0].label);
89
- expect(wrapper.find('p.attributeTitle').at(1).text()).toBe('ID Value:');
90
- expect(wrapper.find(CopyableValueField_1.CopyableValueField).prop('value')).toBe(crosswalk.value);
91
- expect(wrapper.find('p.attributeTitle').at(2).text()).toBe('Create Date:');
92
- expect(wrapper.find('.attributeValue').at(2).text()).toBe((0, mdm_sdk_1.formatDateTime)(crosswalk.createDate));
93
- expect(wrapper.find('p.attributeTitle').at(3).text()).toBe('Update Date:');
94
- expect(wrapper.find('.attributeValue').at(3).text()).toBe((0, mdm_sdk_1.formatDateTime)(crosswalk.updateDate));
95
- expect(wrapper.find('p.attributeTitle').at(4).text()).toBe('Reltio Load Date:');
96
- expect(wrapper.find('.attributeValue').at(4).text()).toBe((0, mdm_sdk_1.formatDateTime)(crosswalk.reltioLoadDate));
112
+ setUp();
113
+ expect(react_2.screen.getByText('Add attributes')).toBeInTheDocument();
114
+ expect(react_2.screen.getByText('Source System Name:')).toBeInTheDocument();
115
+ expect(react_2.screen.getByText('Reltio')).toBeInTheDocument();
116
+ expect(react_2.screen.getByText('ID Value:')).toBeInTheDocument();
117
+ expect(react_2.screen.getByText(crosswalk.value)).toBeInTheDocument();
118
+ expect(react_2.screen.getByText('Create Date:')).toBeInTheDocument();
119
+ expect(react_2.screen.getByText((0, mdm_sdk_1.formatDateTime)(crosswalk.createDate))).toBeInTheDocument();
120
+ expect(react_2.screen.getByText('Update Date:')).toBeInTheDocument();
121
+ expect(react_2.screen.getByText((0, mdm_sdk_1.formatDateTime)(crosswalk.updateDate))).toBeInTheDocument();
122
+ expect(react_2.screen.getByText('Reltio Load Date:')).toBeInTheDocument();
123
+ expect(react_2.screen.getByText((0, mdm_sdk_1.formatDateTime)(crosswalk.reltioLoadDate))).toBeInTheDocument();
97
124
  });
98
125
  it('should render create mode correctly', function () {
99
- var wrapper = setUp(__assign(__assign({}, defaultProps), { crosswalk: newCrosswalk }));
100
- var moreButton = wrapper.find(MoreAttributesButton_1.MoreAttributesButton);
101
- expect(wrapper.find(MoreAttributesButton_1.MoreAttributesButton).prop('label')).toBe('Add attributes');
102
- var extraAttributes = (0, ramda_1.map)((0, ramda_1.prop)('label'), moreButton.prop('data'));
103
- expect(extraAttributes).toEqual(['Source Table', 'Delete Date']);
104
- expect(wrapper.find('p.attributeTitle').at(0).text()).toBe('Source System Name:');
105
- expect(wrapper.find(SimpleDropDownSelector_1.SimpleDropDownSelector).props()).toMatchObject({
106
- value: {
107
- value: ''
108
- },
109
- options: [
110
- {
111
- value: 'configuration/sources/AHA',
112
- label: 'AHA'
113
- },
114
- {
115
- value: 'configuration/sources/Reltio',
116
- label: 'Reltio'
117
- }
118
- ]
119
- });
120
- expect(wrapper.find('p.attributeTitle').at(1).text()).toBe('ID Value:');
121
- expect(wrapper.find(TextEditor_1.TextEditor).prop('value')).toBe('');
126
+ setUp(__assign(__assign({}, defaultProps), { crosswalk: newCrosswalk }));
127
+ expect(react_2.screen.getByText('Add attributes')).toBeInTheDocument();
128
+ expect(react_2.screen.getByText('Source System Name:')).toBeInTheDocument();
129
+ expect(react_2.screen.getByTestId('crosswalk-attribute-type-selector')).toBeInTheDocument();
130
+ expect(react_2.screen.getByText('ID Value:')).toBeInTheDocument();
131
+ expect(react_2.screen.getByRole('textbox')).toBeInTheDocument();
122
132
  });
123
- it('should render deleteDate editor when it is added from MoreAttributesButton selector', function () {
124
- var wrapper = setUp();
125
- (0, test_utils_1.act)(function () {
126
- wrapper.find(MoreAttributesButton_1.MoreAttributesButton).prop('onApply')([
127
- {
128
- label: mdm_sdk_1.CrosswalksAttrTypes.deleteDate.label,
129
- uri: 'deleteDate',
130
- name: 'crosswalks.deleteDate',
131
- type: mdm_sdk_1.DataTypes.TYPE_TIMESTAMP
132
- }
133
- ]);
133
+ it('should render deleteDate editor when it is added from MoreAttributesButton selector', function () { return __awaiter(void 0, void 0, void 0, function () {
134
+ var user;
135
+ return __generator(this, function (_a) {
136
+ switch (_a.label) {
137
+ case 0:
138
+ user = setUp().user;
139
+ return [4 /*yield*/, user.click(react_2.screen.getByText('Add attributes'))];
140
+ case 1:
141
+ _a.sent();
142
+ return [4 /*yield*/, user.click(react_2.screen.getByText('Delete Date'))];
143
+ case 2:
144
+ _a.sent();
145
+ return [4 /*yield*/, user.keyboard('{Escape}')];
146
+ case 3:
147
+ _a.sent();
148
+ return [4 /*yield*/, (0, react_2.waitFor)(function () {
149
+ expect(react_2.screen.getByText('Delete Date:')).toBeInTheDocument();
150
+ })];
151
+ case 4:
152
+ _a.sent();
153
+ return [4 /*yield*/, user.hover(react_2.screen.getByLabelText('Delete attribute'))];
154
+ case 5:
155
+ _a.sent();
156
+ expect((0, react_2.within)(react_2.screen.getByRole('tooltip')).getByText('Delete attribute')).toBeInTheDocument();
157
+ return [2 /*return*/];
158
+ }
134
159
  });
135
- wrapper.update();
136
- expect(wrapper.find('p.attributeTitle').at(4).text()).toBe('Delete Date:');
137
- expect(wrapper.find(CrosswalkDateEditor_1.CrosswalkDateEditor).prop('value')).toBeUndefined();
138
- expect(wrapper.find(SmallIconButton_1.SmallIconButtonWithTooltip).props()).toMatchObject({
139
- icon: Delete_1.default,
140
- disabled: false,
141
- tooltipTitle: 'Delete attribute'
160
+ }); });
161
+ it('should provide correct value to deleteDate editor and call props.onEditAttribute on editing', function () { return __awaiter(void 0, void 0, void 0, function () {
162
+ var deleteDate, newDeleteDate, user;
163
+ return __generator(this, function (_a) {
164
+ switch (_a.label) {
165
+ case 0:
166
+ deleteDate = '2021-02-02';
167
+ newDeleteDate = new Date('2021-01-01').valueOf();
168
+ user = setUp(__assign(__assign({}, defaultProps), { crosswalk: __assign(__assign({}, crosswalk), { deleteDate: deleteDate }) })).user;
169
+ expect(react_2.screen.getByDisplayValue(/^02\/02\/2021/)).toBeInTheDocument();
170
+ return [4 /*yield*/, user.type(react_2.screen.getByRole('textbox'), '01/01/2021')];
171
+ case 1:
172
+ _a.sent();
173
+ return [4 /*yield*/, user.click(react_2.screen.getByText('Delete Date:'))];
174
+ case 2:
175
+ _a.sent();
176
+ expect(defaultProps.onEditAttribute).toHaveBeenCalledWith('deleteDate', newDeleteDate.toString());
177
+ return [2 /*return*/];
178
+ }
142
179
  });
143
- });
144
- it('should provide correct value to deleteDate editor and call props.onEditAttribute on editing', function () {
145
- var deleteDate = '2021-02-02';
146
- var wrapper = setUp(__assign(__assign({}, defaultProps), { crosswalk: __assign(__assign({}, crosswalk), { deleteDate: deleteDate }) }));
147
- expect(wrapper.find(CrosswalkDateEditor_1.CrosswalkDateEditor).prop('value')).toBe(moment_1.default.utc(deleteDate).valueOf());
148
- var newDeleteDate = new Date('2021-01-01').valueOf();
149
- (0, test_utils_1.act)(function () {
150
- wrapper.find(CrosswalkDateEditor_1.CrosswalkDateEditor).prop('onChange')(newDeleteDate);
180
+ }); });
181
+ it('should render sourceTable editor when it is added from MoreAttributesButton selector', function () { return __awaiter(void 0, void 0, void 0, function () {
182
+ var user;
183
+ return __generator(this, function (_a) {
184
+ switch (_a.label) {
185
+ case 0:
186
+ user = setUp(__assign(__assign({}, defaultProps), { crosswalk: newCrosswalk })).user;
187
+ return [4 /*yield*/, user.click(react_2.screen.getByText('Add attributes'))];
188
+ case 1:
189
+ _a.sent();
190
+ return [4 /*yield*/, user.click(react_2.screen.getByText('Source Table'))];
191
+ case 2:
192
+ _a.sent();
193
+ return [4 /*yield*/, user.keyboard('{Escape}')];
194
+ case 3:
195
+ _a.sent();
196
+ return [4 /*yield*/, (0, react_2.waitFor)(function () {
197
+ expect(react_2.screen.getByText('Source Table:')).toBeInTheDocument();
198
+ })];
199
+ case 4:
200
+ _a.sent();
201
+ return [4 /*yield*/, user.hover(react_2.screen.getByLabelText('Delete attribute'))];
202
+ case 5:
203
+ _a.sent();
204
+ expect((0, react_2.within)(react_2.screen.getByRole('tooltip')).getByText('Delete attribute')).toBeInTheDocument();
205
+ return [2 /*return*/];
206
+ }
151
207
  });
152
- expect(defaultProps.onEditAttribute).toHaveBeenCalledWith('deleteDate', newDeleteDate.toString());
153
- });
154
- it('should work correctly with deleteDate timestamps', function () {
155
- var deleteDate = '123456789';
156
- var wrapper = setUp(__assign(__assign({}, defaultProps), { crosswalk: __assign(__assign({}, crosswalk), { deleteDate: deleteDate }) }));
157
- expect(wrapper.find(CrosswalkDateEditor_1.CrosswalkDateEditor).prop('value')).toBe(123456789);
158
- });
159
- it('should render sourceTable editor when it is added from MoreAttributesButton selector', function () {
160
- var wrapper = setUp(__assign(__assign({}, defaultProps), { crosswalk: newCrosswalk }));
161
- (0, test_utils_1.act)(function () {
162
- wrapper.find(MoreAttributesButton_1.MoreAttributesButton).prop('onApply')([
163
- {
164
- label: mdm_sdk_1.CrosswalksAttrTypes.sourceTable.label,
165
- uri: 'sourceTable',
166
- name: 'crosswalks.sourceTable',
167
- type: mdm_sdk_1.DataTypes.TYPE_STRING
168
- }
169
- ]);
208
+ }); });
209
+ it('should provide correct value to sourceTable editor and call props.onEditAttribute on editing', function () { return __awaiter(void 0, void 0, void 0, function () {
210
+ var user;
211
+ return __generator(this, function (_a) {
212
+ switch (_a.label) {
213
+ case 0:
214
+ user = setUp(__assign(__assign({}, defaultProps), { crosswalk: newCrosswalk })).user;
215
+ return [4 /*yield*/, user.click(react_2.screen.getByText('Add attributes'))];
216
+ case 1:
217
+ _a.sent();
218
+ return [4 /*yield*/, user.click(react_2.screen.getByText('Source Table'))];
219
+ case 2:
220
+ _a.sent();
221
+ return [4 /*yield*/, user.keyboard('{Escape}')];
222
+ case 3:
223
+ _a.sent();
224
+ return [4 /*yield*/, (0, react_2.waitFor)(function () {
225
+ expect(react_2.screen.getByText('Source Table:')).toBeInTheDocument();
226
+ })];
227
+ case 4:
228
+ _a.sent();
229
+ return [4 /*yield*/, user.type(react_2.screen.getAllByRole('textbox')[1], 'new sourceTable')];
230
+ case 5:
231
+ _a.sent();
232
+ expect(defaultProps.onEditAttribute).toHaveBeenCalledWith('sourceTable', 'new sourceTable');
233
+ return [2 /*return*/];
234
+ }
170
235
  });
171
- wrapper.update();
172
- expect(wrapper.find('p.attributeTitle').at(2).text()).toBe('Source Table:');
173
- expect(wrapper.find(TextEditor_1.TextEditor).length).toBe(2);
174
- expect(wrapper.find(TextEditor_1.TextEditor).at(1).prop('value')).toBeUndefined();
175
- expect(wrapper.find(SmallIconButton_1.SmallIconButtonWithTooltip).props()).toMatchObject({
176
- icon: Delete_1.default,
177
- disabled: false,
178
- tooltipTitle: 'Delete attribute'
236
+ }); });
237
+ it('should provide correct value to sourceSystem editor and call props.onEditAttribute on editing', function () { return __awaiter(void 0, void 0, void 0, function () {
238
+ var user;
239
+ return __generator(this, function (_a) {
240
+ switch (_a.label) {
241
+ case 0:
242
+ user = setUp(__assign(__assign({}, defaultProps), { crosswalk: newCrosswalk })).user;
243
+ return [4 /*yield*/, user.click(react_2.screen.getByRole('combobox'))];
244
+ case 1:
245
+ _a.sent();
246
+ return [4 /*yield*/, user.click(react_2.screen.getByText('Reltio'))];
247
+ case 2:
248
+ _a.sent();
249
+ expect(defaultProps.onEditAttribute).toHaveBeenCalledWith('type', 'configuration/sources/Reltio');
250
+ return [2 /*return*/];
251
+ }
179
252
  });
180
- });
181
- it('should provide correct value to sourceTable editor and call props.onEditAttribute on editing', function () {
182
- var wrapper = setUp(__assign(__assign({}, defaultProps), { crosswalk: newCrosswalk }));
183
- (0, test_utils_1.act)(function () {
184
- wrapper.find(MoreAttributesButton_1.MoreAttributesButton).prop('onApply')([
185
- {
186
- label: mdm_sdk_1.CrosswalksAttrTypes.sourceTable.label,
187
- uri: 'sourceTable',
188
- name: 'crosswalks.sourceTable',
189
- type: mdm_sdk_1.DataTypes.TYPE_STRING
190
- }
191
- ]);
253
+ }); });
254
+ it('should provide correct value to value editor and call props.onEditAttribute on editing', function () { return __awaiter(void 0, void 0, void 0, function () {
255
+ var user;
256
+ return __generator(this, function (_a) {
257
+ switch (_a.label) {
258
+ case 0:
259
+ user = setUp(__assign(__assign({}, defaultProps), { crosswalk: newCrosswalk })).user;
260
+ return [4 /*yield*/, user.type(react_2.screen.getByRole('textbox'), 'new id value')];
261
+ case 1:
262
+ _a.sent();
263
+ expect(defaultProps.onEditAttribute).toHaveBeenCalledWith('value', 'new id value');
264
+ return [2 /*return*/];
265
+ }
192
266
  });
193
- wrapper.update();
194
- (0, test_utils_1.act)(function () {
195
- wrapper.find(TextEditor_1.TextEditor).at(1).prop('onInput')({
196
- target: { value: 'new sourceTable' }
197
- });
267
+ }); });
268
+ it('should call props.onDeleteAttribute when confirm deleting attribute', function () { return __awaiter(void 0, void 0, void 0, function () {
269
+ var deleteDate, user;
270
+ return __generator(this, function (_a) {
271
+ switch (_a.label) {
272
+ case 0:
273
+ deleteDate = '2021-02-02';
274
+ user = setUp(__assign(__assign({}, defaultProps), { crosswalk: __assign(__assign({}, crosswalk), { deleteDate: deleteDate }) })).user;
275
+ return [4 /*yield*/, user.click((0, react_2.within)(react_2.screen.getByLabelText('Delete attribute')).getByRole('button'))];
276
+ case 1:
277
+ _a.sent();
278
+ expect(react_2.screen.getByText('Are you sure you want to delete this?')).toBeInTheDocument();
279
+ expect(react_2.screen.getByText('Yes')).toBeInTheDocument();
280
+ expect(react_2.screen.getByText('No')).toBeInTheDocument();
281
+ return [4 /*yield*/, user.click(react_2.screen.getByText('Yes'))];
282
+ case 2:
283
+ _a.sent();
284
+ expect(defaultProps.onDeleteAttribute).toHaveBeenCalledWith('deleteDate');
285
+ return [2 /*return*/];
286
+ }
198
287
  });
199
- expect(defaultProps.onEditAttribute).toHaveBeenCalledWith('sourceTable', 'new sourceTable');
200
- });
201
- it('should provide correct value to sourceSystem editor and call props.onEditAttribute on editing', function () {
202
- var wrapper = setUp(__assign(__assign({}, defaultProps), { crosswalk: newCrosswalk }));
203
- (0, test_utils_1.act)(function () {
204
- wrapper.find(SimpleDropDownSelector_1.SimpleDropDownSelector).prop('onChange')({
205
- value: 'configuration/sources/Reltio',
206
- label: 'Reltio'
207
- });
288
+ }); });
289
+ it('should not call props.onDeleteAttribute without confirmation of deleting attribute', function () { return __awaiter(void 0, void 0, void 0, function () {
290
+ var deleteDate, user;
291
+ return __generator(this, function (_a) {
292
+ switch (_a.label) {
293
+ case 0:
294
+ deleteDate = '2021-02-02';
295
+ user = setUp(__assign(__assign({}, defaultProps), { crosswalk: __assign(__assign({}, crosswalk), { deleteDate: deleteDate }) })).user;
296
+ return [4 /*yield*/, user.click((0, react_2.within)(react_2.screen.getByLabelText('Delete attribute')).getByRole('button'))];
297
+ case 1:
298
+ _a.sent();
299
+ return [4 /*yield*/, user.click(react_2.screen.getByText('No'))];
300
+ case 2:
301
+ _a.sent();
302
+ expect(defaultProps.onDeleteAttribute).not.toHaveBeenCalled();
303
+ return [2 /*return*/];
304
+ }
208
305
  });
209
- expect(defaultProps.onEditAttribute).toHaveBeenCalledWith('type', 'configuration/sources/Reltio');
210
- });
211
- it('should provide correct value to value editor and call props.onEditAttribute on editing', function () {
212
- var wrapper = setUp(__assign(__assign({}, defaultProps), { crosswalk: newCrosswalk }));
213
- (0, test_utils_1.act)(function () {
214
- wrapper.find(TextEditor_1.TextEditor).prop('onInput')({
215
- target: { value: 'new id value' }
216
- });
306
+ }); });
307
+ it('should not call props.onDeleteAttribute when confirm deleting attribute if attribute is not set', function () { return __awaiter(void 0, void 0, void 0, function () {
308
+ var user;
309
+ return __generator(this, function (_a) {
310
+ switch (_a.label) {
311
+ case 0:
312
+ user = setUp().user;
313
+ return [4 /*yield*/, user.click(react_2.screen.getByText('Add attributes'))];
314
+ case 1:
315
+ _a.sent();
316
+ return [4 /*yield*/, user.click(react_2.screen.getByText('Delete Date'))];
317
+ case 2:
318
+ _a.sent();
319
+ return [4 /*yield*/, user.keyboard('{Escape}')];
320
+ case 3:
321
+ _a.sent();
322
+ return [4 /*yield*/, (0, react_2.waitFor)(function () {
323
+ expect(react_2.screen.getByText('Delete Date:')).toBeInTheDocument();
324
+ })];
325
+ case 4:
326
+ _a.sent();
327
+ return [4 /*yield*/, user.click((0, react_2.within)(react_2.screen.getByLabelText('Delete attribute')).getByRole('button'))];
328
+ case 5:
329
+ _a.sent();
330
+ return [4 /*yield*/, user.click(react_2.screen.getByText('Yes'))];
331
+ case 6:
332
+ _a.sent();
333
+ expect(defaultProps.onDeleteAttribute).not.toHaveBeenCalled();
334
+ return [2 /*return*/];
335
+ }
217
336
  });
218
- expect(defaultProps.onEditAttribute).toHaveBeenCalledWith('value', 'new id value');
219
- });
220
- it('should call props.onDeleteAttribute when confirm deleting attribute', function () {
221
- var deleteDate = '2021-02-02';
222
- var wrapper = setUp(__assign(__assign({}, defaultProps), { crosswalk: __assign(__assign({}, crosswalk), { deleteDate: deleteDate }) }));
223
- (0, test_utils_1.act)(function () {
224
- wrapper.find(SmallIconButton_1.SmallIconButtonWithTooltip).prop('onClick')({});
225
- });
226
- wrapper.update();
227
- (0, test_utils_1.act)(function () {
228
- wrapper.find(ConfirmDeleteDialog_1.ConfirmDeleteDialog).prop('onConfirm')();
229
- });
230
- expect(defaultProps.onDeleteAttribute).toHaveBeenCalledWith('deleteDate');
231
- });
232
- it('should not call props.onDeleteAttribute without confirmation of deleting attribute', function () {
233
- var deleteDate = '2021-02-02';
234
- var wrapper = setUp(__assign(__assign({}, defaultProps), { crosswalk: __assign(__assign({}, crosswalk), { deleteDate: deleteDate }) }));
235
- (0, test_utils_1.act)(function () {
236
- wrapper.find(SmallIconButton_1.SmallIconButtonWithTooltip).prop('onClick')({});
237
- });
238
- wrapper.update();
239
- (0, test_utils_1.act)(function () {
240
- wrapper.find(ConfirmDeleteDialog_1.ConfirmDeleteDialog).prop('onClose')();
241
- });
242
- expect(defaultProps.onDeleteAttribute).not.toHaveBeenCalled();
243
- });
244
- it('should not call props.onDeleteAttribute when confirm deleting attribute if attribute is not set', function () {
245
- var wrapper = setUp();
246
- (0, test_utils_1.act)(function () {
247
- wrapper.find(MoreAttributesButton_1.MoreAttributesButton).prop('onApply')([
248
- {
249
- label: mdm_sdk_1.CrosswalksAttrTypes.deleteDate.label,
250
- uri: 'deleteDate',
251
- name: 'crosswalks.deleteDate',
252
- type: mdm_sdk_1.DataTypes.TYPE_TIMESTAMP
253
- }
254
- ]);
255
- });
256
- wrapper.update();
257
- (0, test_utils_1.act)(function () {
258
- wrapper.find(SmallIconButton_1.SmallIconButtonWithTooltip).prop('onClick')({});
259
- });
260
- wrapper.update();
261
- (0, test_utils_1.act)(function () {
262
- wrapper.find(ConfirmDeleteDialog_1.ConfirmDeleteDialog).prop('onConfirm')();
263
- });
264
- expect(defaultProps.onDeleteAttribute).not.toHaveBeenCalled();
265
- });
337
+ }); });
266
338
  it('should render correctly if props.canEditAttribute = false', function () {
267
339
  var deleteDate = '2021-02-02';
268
- var wrapper = setUp(__assign(__assign({}, defaultProps), { crosswalk: __assign(__assign({}, crosswalk), { deleteDate: deleteDate }), canEditAttribute: false }));
269
- expect(wrapper.find(MoreAttributesButton_1.MoreAttributesButton).length).toBe(0);
270
- expect(wrapper.find(SmallIconButton_1.SmallIconButtonWithTooltip).prop('disabled')).toBeTruthy();
340
+ setUp(__assign(__assign({}, defaultProps), { crosswalk: __assign(__assign({}, crosswalk), { deleteDate: deleteDate }), canEditAttribute: false }));
341
+ expect(react_2.screen.queryByText('Add attributes')).not.toBeInTheDocument();
342
+ expect((0, react_2.within)(react_2.screen.getByLabelText('Delete attribute')).getByRole('button')).toBeDisabled();
271
343
  });
272
344
  });