@reltio/components 1.4.1905 → 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 (105) 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/cjs/ConnectionRelationTypeSelector/ConnectionRelationTypeSelector.d.ts +3 -1
  37. package/cjs/ReactSortableTree/ReactSortableTree.js +2 -7
  38. package/cjs/RelationTypeSelector/RelationTypeSelector.d.ts +3 -1
  39. package/cjs/types/index.d.ts +1 -1
  40. package/esm/ActionsPanel/ActionsPanel.test.js +133 -49
  41. package/esm/AttributeListItem/AttributeListItem.spec.js +149 -97
  42. package/esm/AttributeSelector/AttributeSelector.specs.js +125 -193
  43. package/esm/AttributesErrorsPanel/AttributesErrorsPanel.specs.js +128 -71
  44. package/esm/AttributesErrorsPanel/components/Error/Error.specs.js +98 -72
  45. package/esm/AttributesErrorsPanel/store.test-data.d.ts +22 -0
  46. package/esm/AttributesErrorsPanel/store.test-data.js +26 -0
  47. package/esm/AttributesFilterSelector/AttributesFilterSelector.test.js +129 -84
  48. package/esm/AttributesFiltersButton/AttributesFiltersButton.test.js +218 -136
  49. package/esm/AttributesValuesEditor/AttributesValuesEditor.test.js +94 -67
  50. package/esm/AttributesView/AttributesView.test.js +67 -34
  51. package/esm/AutoSizeList/AutoSizeList.test.js +81 -59
  52. package/esm/{ActionsPanel/components/MenuItemRenderer/MenuItemRenderer.spec.js → AvatarWithFallback/AvatarWithFallback.test.js} +16 -32
  53. package/esm/BarChart/BarChart.test.js +128 -65
  54. package/esm/BasicAttributeSelector/BasicAttributeSelector.spec.js +27 -10
  55. package/esm/BasicViewContent/BasicViewContent.test.js +7 -9
  56. package/esm/BlobRenderer/BlobRenderer.test.js +28 -9
  57. package/esm/BooleanRadioEditor/BooleanRadioEditor.test.js +89 -35
  58. package/esm/BubbleChart/BubbleChart.test.js +111 -87
  59. package/esm/CloudChart/CloudChart.test.js +95 -36
  60. package/esm/CollaborationItem/CollaborationItem.test.js +67 -30
  61. package/esm/CollaborationItem/components/Comment/Comment.test.js +221 -189
  62. package/esm/CollaborationItem/components/CommentContent/CommentContent.test.js +46 -58
  63. package/esm/CollaborationItem/components/RepliedComment/RepliedComment.test.js +194 -163
  64. package/esm/CollaborationItem/components/SendMessageArea/SendMessageArea.test.js +307 -266
  65. package/esm/CollapseButton/CollapseButton.test.js +74 -15
  66. package/esm/CollapseRowButton/CollapseRowButton.test.js +82 -24
  67. package/esm/ColorBar/ColorBar.test.js +13 -15
  68. package/esm/ColumnsSettings/components/ColumnsSettingsPopup/ColumnsSettingsPopup.spec.js +207 -129
  69. package/esm/CommentsContainer/CommentsContainer.test.js +282 -211
  70. package/esm/CommentsContainer/components/CollaborationPopup/CollaborationPopup.test.js +182 -101
  71. package/esm/ConfigureColumnsPopup/ConfigureColumnsPopup.test.js +42 -41
  72. package/esm/ConfirmDeleteDialog/ConfirmDeleteDialog.test.js +77 -28
  73. package/esm/ConfirmationDialog/ConfirmationDialog.test.js +85 -48
  74. package/esm/ConnectionEditor/ConnectionEditor.test.js +300 -283
  75. package/esm/ConnectionRelationTypeSelector/ConnectionRelationTypeSelector.d.ts +3 -1
  76. package/esm/ReactSortableTree/ReactSortableTree.js +2 -7
  77. package/esm/RelationTypeSelector/RelationTypeSelector.d.ts +3 -1
  78. package/esm/types/index.d.ts +1 -1
  79. package/package.json +2 -2
  80. package/cjs/AttributesErrorsPanel/components/ErrorsPanel/ErrorsPanel.specs.js +0 -100
  81. package/cjs/AttributesFiltersButton/components/ActionButtons/ActionButtons.test.d.ts +0 -1
  82. package/cjs/AttributesFiltersButton/components/ActionButtons/ActionButtons.test.js +0 -46
  83. package/cjs/AvatarWithFallback/AvatarWithFallback.specs.d.ts +0 -1
  84. package/cjs/AvatarWithFallback/AvatarWithFallback.specs.js +0 -27
  85. package/cjs/BooleanRadioEditor/components/BooleanEditor/BooleanEditor.test.d.ts +0 -1
  86. package/cjs/BooleanRadioEditor/components/BooleanEditor/BooleanEditor.test.js +0 -27
  87. package/cjs/CollaborationItem/components/Avatar/Avatar.test.d.ts +0 -1
  88. package/cjs/CollaborationItem/components/Avatar/Avatar.test.js +0 -15
  89. package/cjs/CollaborationItem/components/TextFieldWithMentions/TextFieldWithMentions.test.d.ts +0 -1
  90. package/cjs/CollaborationItem/components/TextFieldWithMentions/TextFieldWithMentions.test.js +0 -80
  91. package/esm/ActionsPanel/components/MenuItemRenderer/MenuItemRenderer.spec.d.ts +0 -1
  92. package/esm/AttributesErrorsPanel/components/ErrorsPanel/ErrorsPanel.specs.d.ts +0 -1
  93. package/esm/AttributesErrorsPanel/components/ErrorsPanel/ErrorsPanel.specs.js +0 -95
  94. package/esm/AttributesFiltersButton/components/ActionButtons/ActionButtons.test.d.ts +0 -1
  95. package/esm/AttributesFiltersButton/components/ActionButtons/ActionButtons.test.js +0 -41
  96. package/esm/AvatarWithFallback/AvatarWithFallback.specs.d.ts +0 -1
  97. package/esm/AvatarWithFallback/AvatarWithFallback.specs.js +0 -22
  98. package/esm/BooleanRadioEditor/components/BooleanEditor/BooleanEditor.test.d.ts +0 -1
  99. package/esm/BooleanRadioEditor/components/BooleanEditor/BooleanEditor.test.js +0 -22
  100. package/esm/CollaborationItem/components/Avatar/Avatar.test.d.ts +0 -1
  101. package/esm/CollaborationItem/components/Avatar/Avatar.test.js +0 -10
  102. package/esm/CollaborationItem/components/TextFieldWithMentions/TextFieldWithMentions.test.d.ts +0 -1
  103. package/esm/CollaborationItem/components/TextFieldWithMentions/TextFieldWithMentions.test.js +0 -55
  104. /package/cjs/{ActionsPanel/components/MenuItemRenderer/MenuItemRenderer.spec.d.ts → AvatarWithFallback/AvatarWithFallback.test.d.ts} +0 -0
  105. /package/{cjs/AttributesErrorsPanel/components/ErrorsPanel/ErrorsPanel.specs.d.ts → esm/AvatarWithFallback/AvatarWithFallback.test.d.ts} +0 -0
@@ -9,74 +9,62 @@ var __assign = (this && this.__assign) || function () {
9
9
  };
10
10
  return __assign.apply(this, arguments);
11
11
  };
12
- import React, * as react from 'react';
13
- import { shallow } from 'enzyme';
14
- import Link from '@mui/material/Link';
12
+ import React from 'react';
15
13
  import { CommentContent } from './CommentContent';
16
- jest.mock('react', function () { return (__assign(__assign({}, jest.requireActual('react')), { useContext: jest.fn().mockImplementation(function (f) { return f(); }) })); });
17
- var allUsers = [
18
- { username: 'vyacheslav.kovyazin', email: 'vyacheslav.kovyazin@reltio.com' },
19
- { username: 'user', email: 'user@reltio.com' }
20
- ];
21
- var createProps = function (text, namedUsers) {
22
- if (namedUsers === void 0) { namedUsers = []; }
23
- return {
24
- comment: {
25
- content: text,
26
- namedUsers: namedUsers
27
- }
14
+ import { UsersContext } from '../../../contexts/UsersContext';
15
+ import { render, screen } from '@testing-library/react';
16
+ describe('CommentContent test', function () {
17
+ var createProps = function (text, namedUsers) {
18
+ if (namedUsers === void 0) { namedUsers = []; }
19
+ return {
20
+ comment: {
21
+ content: text,
22
+ namedUsers: namedUsers
23
+ }
24
+ };
25
+ };
26
+ var allUsers = [
27
+ { username: 'vyacheslav.kovyazin', email: 'vyacheslav.kovyazin@reltio.com' },
28
+ { username: 'user', email: 'user@reltio.com' }
29
+ ];
30
+ var setUp = function (props, usersContext) {
31
+ if (usersContext === void 0) { usersContext = allUsers; }
32
+ var Providers = function (_a) {
33
+ var children = _a.children;
34
+ return (React.createElement(UsersContext.Provider, { value: usersContext }, children));
35
+ };
36
+ return render(React.createElement(CommentContent, __assign({}, props)), { wrapper: Providers });
28
37
  };
29
- };
30
- var setUp = function (props) { return shallow(React.createElement(CommentContent, __assign({}, props))); };
31
- var mockUsersContext = function (users) {
32
- if (users === void 0) { users = allUsers; }
33
- return jest.spyOn(react, 'useContext').mockImplementation(function () { return users; });
34
- };
35
- describe('CommentContent tests', function () {
36
- afterEach(function () {
37
- jest.resetAllMocks();
38
- });
39
38
  it('should render comment without mentions correctly', function () {
40
- mockUsersContext();
41
- var component = setUp(createProps('Hello world!!!'));
42
- expect(component.find('.root').text()).toBe('Hello world!!!');
39
+ setUp(createProps('Hello world!!!'));
40
+ expect(screen.queryByText('Hello world!!!')).toBeInTheDocument();
43
41
  });
44
42
  it('should render comment with one mention correctly', function () {
45
- mockUsersContext();
46
- var component = setUp(createProps('Hello +vyacheslav.kovyazin', ['vyacheslav.kovyazin']));
47
- expect(component.find('.root').childAt(0).text()).toBe('Hello ');
48
- expect(component
49
- .find('.root')
50
- .childAt(1)
51
- .matchesElement(React.createElement(Link, { href: "mailto:vyacheslav.kovyazin@reltio.com", underline: "hover" }, "+vyacheslav.kovyazin"))).toBe(true);
43
+ setUp(createProps('Hello +vyacheslav.kovyazin', ['vyacheslav.kovyazin']));
44
+ var link = screen.getByRole('link');
45
+ var textBlock = screen.getByText('Hello');
46
+ expect(link).toHaveAttribute('href', 'mailto:vyacheslav.kovyazin@reltio.com');
47
+ expect(link).toHaveTextContent('+vyacheslav.kovyazin');
48
+ expect(textBlock.childNodes[1]).toBe(link);
49
+ expect(textBlock.textContent).toBe('Hello +vyacheslav.kovyazin');
52
50
  });
53
51
  it('should render comment with one mention in the beginning correctly', function () {
54
- mockUsersContext();
55
- var component = setUp(createProps('+vyacheslav.kovyazin Hello', ['vyacheslav.kovyazin']));
56
- expect(component
57
- .find('.root')
58
- .childAt(0)
59
- .matchesElement(React.createElement(Link, { href: "mailto:vyacheslav.kovyazin@reltio.com", underline: "hover" }, "+vyacheslav.kovyazin"))).toBe(true);
60
- expect(component.find('.root').childAt(1).text()).toBe(' Hello');
52
+ setUp(createProps('+vyacheslav.kovyazin Hello', ['vyacheslav.kovyazin']));
53
+ var link = screen.getByRole('link');
54
+ var textBlock = screen.getByText('Hello');
55
+ expect(textBlock.childNodes[0]).toBe(link);
56
+ expect(textBlock.textContent).toBe('+vyacheslav.kovyazin Hello');
61
57
  });
62
58
  it('should render comment with two mentions correctly', function () {
63
- mockUsersContext();
64
- var component = setUp(createProps('Hello +vyacheslav.kovyazin and +user!!!', ['vyacheslav.kovyazin', 'user']));
65
- expect(component.find('.root').childAt(0).text()).toBe('Hello ');
66
- expect(component
67
- .find('.root')
68
- .childAt(1)
69
- .matchesElement(React.createElement(Link, { href: "mailto:vyacheslav.kovyazin@reltio.com", underline: "hover" }, "+vyacheslav.kovyazin"))).toBe(true);
70
- expect(component.find('.root').childAt(2).text()).toBe(' and ');
71
- expect(component
72
- .find('.root')
73
- .childAt(3)
74
- .matchesElement(React.createElement(Link, { href: "mailto:user@reltio.com", underline: "hover" }, "+user"))).toBe(true);
75
- expect(component.find('.root').childAt(4).text()).toBe('!!!');
59
+ var container = setUp(createProps('Hello +vyacheslav.kovyazin and +user!!!', ['vyacheslav.kovyazin', 'user'])).container;
60
+ var links = screen.getAllByRole('link');
61
+ var textBlock = container.querySelector('.root');
62
+ expect(textBlock.childNodes[1]).toBe(links[0]);
63
+ expect(textBlock.childNodes[3]).toBe(links[1]);
64
+ expect(textBlock.textContent).toBe('Hello +vyacheslav.kovyazin and +user!!!');
76
65
  });
77
66
  it('should render comment correctly if users is empty array', function () {
78
- mockUsersContext([]);
79
- var component = setUp(createProps('Hello +vyacheslav.kovyazin', ['vyacheslav.kovyazin']));
80
- expect(component.find('.root').text()).toBe('Hello +vyacheslav.kovyazin');
67
+ var container = setUp(createProps('Hello +vyacheslav.kovyazin', ['vyacheslav.kovyazin']), []).container;
68
+ expect(container.querySelector('.root').textContent).toBe('Hello +vyacheslav.kovyazin');
81
69
  });
82
70
  });
@@ -9,203 +9,234 @@ var __assign = (this && this.__assign) || function () {
9
9
  };
10
10
  return __assign.apply(this, arguments);
11
11
  };
12
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
13
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
14
+ return new (P || (P = Promise))(function (resolve, reject) {
15
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
16
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
17
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
18
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
19
+ });
20
+ };
21
+ var __generator = (this && this.__generator) || function (thisArg, body) {
22
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
23
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
24
+ function verb(n) { return function (v) { return step([n, v]); }; }
25
+ function step(op) {
26
+ if (f) throw new TypeError("Generator is already executing.");
27
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
28
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
29
+ if (y = 0, t) op = [op[0] & 2, t.value];
30
+ switch (op[0]) {
31
+ case 0: case 1: t = op; break;
32
+ case 4: _.label++; return { value: op[1], done: false };
33
+ case 5: _.label++; y = op[1]; op = [0]; continue;
34
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
35
+ default:
36
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
37
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
38
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
39
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
40
+ if (t[2]) _.ops.pop();
41
+ _.trys.pop(); continue;
42
+ }
43
+ op = body.call(thisArg, _);
44
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
45
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
46
+ }
47
+ };
12
48
  import React from 'react';
13
- import { mount } from 'enzyme';
14
49
  import { render, screen } from '@testing-library/react';
15
- import { act } from 'react-dom/test-utils';
16
50
  import { CollaborationObjectTypes } from '@reltio/mdm-sdk';
17
51
  import { MdmModuleProvider } from '../../../contexts/MdmModuleContext';
18
52
  import { CollaborationContext } from '../../../contexts/CollaborationContext';
19
- import { DropDownMenuButton } from '../../../DropDownMenuButton';
20
53
  import { formatDate } from '../../helpers';
21
- import { Avatar } from '../Avatar';
22
- import { SendMessageArea } from '../SendMessageArea';
23
- import { CommentContent } from '../CommentContent';
24
54
  import { RepliedComment } from './RepliedComment';
25
- var TIME = 1620280049022;
26
- var defaultComment = {
27
- createdBy: 'vyacheslav.kovyazin',
28
- createdTime: TIME,
29
- status: 'open',
30
- objectId: 'entities/13JKIKAz/attributes/Name/2mlWuqDq5',
31
- objectType: CollaborationObjectTypes.ENTITY_ATTRIBUTE,
32
- content: 'comment',
33
- relatedObjectUris: ['entities/13JKIKAz'],
34
- commentId: 'commentId',
35
- namedUsers: [],
36
- replies: [],
37
- modifiedTime: 0,
38
- deleted: false,
39
- visibility: '',
40
- selfLink: '',
41
- permanentLink: ''
42
- };
43
- var defaultReply = {
44
- action: 'none',
45
- content: 'Some message',
46
- createdTime: TIME,
47
- createdBy: 'vyacheslav.kovyazin',
48
- namedUsers: [],
49
- replyId: 'replyId'
50
- };
51
- var defaultProps = {
52
- reply: defaultReply,
53
- uri: 'entities/13JKIKAz/attributes/Name/2mlWuqDq5',
54
- comment: defaultComment
55
- };
56
- var commentsMap = {
57
- uri1: [
58
- {
59
- commentId: defaultComment.commentId,
60
- status: 'open',
61
- replies: 0
62
- }
63
- ]
64
- };
65
- var defaultCollaborationContextValue = {
66
- commentsMap: commentsMap,
67
- currentComment: defaultComment,
68
- createComment: function () { return Promise.resolve(); },
69
- editComment: function () { return Promise.resolve(); },
70
- editReply: function () { return Promise.resolve(); },
71
- deleteComment: jest.fn(),
72
- deleteReply: jest.fn(),
73
- createReply: function () { return Promise.resolve(); },
74
- reOpenThread: jest.fn(),
75
- resolveThread: jest.fn(),
76
- getComment: jest.fn(),
77
- clearCurrentComment: jest.fn(),
78
- sending: false,
79
- loading: false,
80
- pageToken: '',
81
- getComments: function () { return Promise.resolve(); },
82
- comments: [],
83
- getCommentsCount: function () { return Promise.resolve(); },
84
- getCommentState: function () { return ({}); },
85
- updateCommentState: jest.fn(),
86
- clearCommentState: function () { }
87
- };
88
- var mdmValues = {
89
- user: {
90
- username: 'vyacheslav.kovyazin'
91
- }
92
- };
93
- var setUp = function (_a) {
94
- var _b = _a === void 0 ? {} : _a, _c = _b.props, props = _c === void 0 ? defaultProps : _c, _d = _b.collaborationContextValue, collaborationContextValue = _d === void 0 ? defaultCollaborationContextValue : _d;
95
- return mount(React.createElement(MdmModuleProvider, { values: mdmValues },
96
- React.createElement(CollaborationContext.Provider, { value: collaborationContextValue },
97
- React.createElement(RepliedComment, __assign({}, props)))));
98
- };
55
+ import userEvent from '@testing-library/user-event';
99
56
  describe('RepliedComment tests', function () {
57
+ var TIME = 1620280049022;
58
+ var defaultComment = {
59
+ createdBy: 'vyacheslav.kovyazin',
60
+ createdTime: TIME,
61
+ status: 'open',
62
+ objectId: 'entities/13JKIKAz/attributes/Name/2mlWuqDq5',
63
+ objectType: CollaborationObjectTypes.ENTITY_ATTRIBUTE,
64
+ content: 'comment',
65
+ relatedObjectUris: ['entities/13JKIKAz'],
66
+ commentId: 'commentId',
67
+ namedUsers: [],
68
+ replies: [],
69
+ modifiedTime: 0,
70
+ deleted: false,
71
+ visibility: '',
72
+ selfLink: '',
73
+ permanentLink: ''
74
+ };
75
+ var defaultReply = {
76
+ action: 'none',
77
+ content: 'Some message',
78
+ createdTime: TIME,
79
+ createdBy: 'vyacheslav.kovyazin',
80
+ namedUsers: [],
81
+ replyId: 'replyId'
82
+ };
83
+ var defaultProps = {
84
+ reply: defaultReply,
85
+ uri: 'entities/13JKIKAz/attributes/Name/2mlWuqDq5',
86
+ comment: defaultComment
87
+ };
88
+ var commentsMap = {
89
+ uri1: [
90
+ {
91
+ commentId: defaultComment.commentId,
92
+ status: 'open',
93
+ replies: 0
94
+ }
95
+ ]
96
+ };
97
+ var defaultCollaborationContextValue = {
98
+ commentsMap: commentsMap,
99
+ currentComment: defaultComment,
100
+ createComment: function () { return Promise.resolve(); },
101
+ editComment: function () { return Promise.resolve(); },
102
+ editReply: function () { return Promise.resolve(); },
103
+ deleteComment: jest.fn(),
104
+ deleteReply: jest.fn(),
105
+ createReply: function () { return Promise.resolve(); },
106
+ reOpenThread: jest.fn(),
107
+ resolveThread: jest.fn(),
108
+ getComment: jest.fn(),
109
+ clearCurrentComment: jest.fn(),
110
+ sending: false,
111
+ loading: false,
112
+ pageToken: '',
113
+ getComments: function () { return Promise.resolve(); },
114
+ comments: [],
115
+ getCommentsCount: function () { return Promise.resolve(); },
116
+ getCommentState: function () { return ({}); },
117
+ updateCommentState: jest.fn(),
118
+ clearCommentState: function () { }
119
+ };
120
+ var mdmValues = {
121
+ user: {
122
+ username: 'vyacheslav.kovyazin'
123
+ }
124
+ };
125
+ var setUp = function (_a) {
126
+ var _b = _a === void 0 ? {} : _a, _c = _b.props, props = _c === void 0 ? defaultProps : _c, _d = _b.collaborationContextValue, collaborationContextValue = _d === void 0 ? defaultCollaborationContextValue : _d;
127
+ var Providers = function (_a) {
128
+ var children = _a.children;
129
+ return (React.createElement(MdmModuleProvider, { values: mdmValues },
130
+ React.createElement(CollaborationContext.Provider, { value: collaborationContextValue }, children)));
131
+ };
132
+ var user = userEvent.setup();
133
+ return __assign({ user: user }, render(React.createElement(RepliedComment, __assign({}, props)), { wrapper: Providers }));
134
+ };
100
135
  it('should render avatar correctly', function () {
101
- var component = setUp();
102
- expect(component.find(Avatar)).toHaveLength(1);
103
- expect(component.find(Avatar).prop('children')).toBe('vyacheslav.kovyazin');
136
+ setUp();
137
+ expect(screen.queryByText('VK')).toBeInTheDocument();
104
138
  });
105
139
  it('should render username correctly', function () {
106
- var component = setUp();
107
- expect(component.find('.username').length).toBeTruthy();
108
- expect(component.find('.username').at(0).text()).toBe('vyacheslav.kovyazin');
140
+ setUp();
141
+ expect(screen.queryByText('vyacheslav.kovyazin')).toBeInTheDocument();
109
142
  });
110
143
  it('should render correctly if action is "none"', function () {
111
- var component = setUp();
112
- expect(component.find('.marked')).toHaveLength(0);
113
- expect(component.find('.message').length).toBeTruthy();
114
- expect(component.find('.message').at(0).props()).toMatchObject({
115
- comment: {
116
- content: 'Some message',
117
- namedUsers: []
118
- }
119
- });
144
+ setUp();
145
+ expect(screen.queryByText('Some message')).toBeInTheDocument();
120
146
  });
121
147
  it('should render correctly if action is "resolve"', function () {
122
148
  var props = __assign(__assign({}, defaultProps), { reply: __assign(__assign({}, defaultReply), { action: 'resolve' }) });
123
- var component = setUp({ props: props });
124
- expect(component.find('.marked').length).toBeTruthy();
125
- expect(component.find('.marked').at(0).text()).toBe('Marked as resolved');
126
- expect(component.find('.message')).toHaveLength(0);
149
+ setUp({ props: props });
150
+ expect(screen.queryByText('Marked as resolved')).toBeInTheDocument();
151
+ expect(screen.queryByText('Some message')).not.toBeInTheDocument();
127
152
  });
128
153
  it('should render correctly if action is "reopen"', function () {
129
154
  var props = __assign(__assign({}, defaultProps), { reply: __assign(__assign({}, defaultReply), { action: 'reopen' }) });
130
- var component = setUp({ props: props });
131
- expect(component.find('.marked').length).toBeTruthy();
132
- expect(component.find('.marked').at(0).text()).toBe('Re-opened');
133
- expect(component.find('.message').at(0).props()).toMatchObject({
134
- comment: {
135
- content: 'Some message',
136
- namedUsers: []
137
- }
138
- });
155
+ setUp({ props: props });
156
+ expect(screen.queryByText('Re-opened')).toBeInTheDocument();
157
+ expect(screen.queryByText('Some message')).toBeInTheDocument();
139
158
  });
140
159
  it('should render time correctly', function () {
141
- var component = setUp();
142
- expect(component.find('.createdAt').length).toBeTruthy();
143
- expect(component.find('.createdAt').at(0).text()).toBe(formatDate(TIME));
160
+ setUp();
161
+ expect(screen.queryByText(formatDate(TIME))).toBeInTheDocument();
144
162
  });
145
- it('should call updateCommentState with right params when onCancel called', function () {
146
- var updateCommentState = defaultCollaborationContextValue.updateCommentState;
147
- var getCommentState = function () { return ({ isEditing: true }); };
148
- var collaborationContextValue = __assign(__assign({}, defaultCollaborationContextValue), { getCommentState: getCommentState });
149
- var component = setUp({ collaborationContextValue: collaborationContextValue });
150
- act(function () {
151
- var _a;
152
- (_a = component.find(SendMessageArea).prop('onCancel')) === null || _a === void 0 ? void 0 : _a();
153
- });
154
- expect(updateCommentState).toHaveBeenCalledWith(defaultProps.uri, 'comment/commentId/reply/replyId', {
155
- isEditing: false
156
- });
157
- });
158
- it('should call updateCommentState with right params when updateIsEditingComment called', function () {
159
- var updateCommentState = defaultCollaborationContextValue.updateCommentState;
160
- var getCommentState = function () { return ({ isEditing: false }); };
161
- var collaborationContextValue = __assign(__assign({}, defaultCollaborationContextValue), { getCommentState: getCommentState });
162
- var component = setUp({ collaborationContextValue: collaborationContextValue });
163
- var menuItems = component.find(DropDownMenuButton).prop('menuItems');
164
- var EditButton = menuItems.find(function (_a) {
165
- var text = _a.text;
166
- return text === 'Edit';
167
- });
168
- act(function () {
169
- EditButton === null || EditButton === void 0 ? void 0 : EditButton.onClick();
163
+ it('should call updateCommentState with right params when onCancel called', function () { return __awaiter(void 0, void 0, void 0, function () {
164
+ var updateCommentState, getCommentState, collaborationContextValue, user;
165
+ return __generator(this, function (_a) {
166
+ switch (_a.label) {
167
+ case 0:
168
+ updateCommentState = defaultCollaborationContextValue.updateCommentState;
169
+ getCommentState = function () { return ({ isEditing: true }); };
170
+ collaborationContextValue = __assign(__assign({}, defaultCollaborationContextValue), { getCommentState: getCommentState });
171
+ user = setUp({ collaborationContextValue: collaborationContextValue }).user;
172
+ return [4 /*yield*/, user.click(screen.getByRole('button', { name: 'Cancel' }))];
173
+ case 1:
174
+ _a.sent();
175
+ expect(updateCommentState).toHaveBeenCalledWith(defaultProps.uri, 'comment/commentId/reply/replyId', {
176
+ isEditing: false
177
+ });
178
+ return [2 /*return*/];
179
+ }
170
180
  });
171
- expect(updateCommentState).toHaveBeenCalledWith(defaultProps.uri, 'comment/commentId/reply/replyId', {
172
- isEditing: true
181
+ }); });
182
+ it('should call updateCommentState with right params when updateIsEditingComment called', function () { return __awaiter(void 0, void 0, void 0, function () {
183
+ var updateCommentState, getCommentState, collaborationContextValue, user;
184
+ return __generator(this, function (_a) {
185
+ switch (_a.label) {
186
+ case 0:
187
+ updateCommentState = defaultCollaborationContextValue.updateCommentState;
188
+ getCommentState = function () { return ({ isEditing: false }); };
189
+ collaborationContextValue = __assign(__assign({}, defaultCollaborationContextValue), { getCommentState: getCommentState });
190
+ user = setUp({ collaborationContextValue: collaborationContextValue }).user;
191
+ return [4 /*yield*/, user.click(screen.getByRole('button', { name: 'Open menu' }))];
192
+ case 1:
193
+ _a.sent();
194
+ return [4 /*yield*/, user.click(screen.getByRole('menuitem', { name: 'Edit' }))];
195
+ case 2:
196
+ _a.sent();
197
+ expect(updateCommentState).toHaveBeenCalledWith(defaultProps.uri, 'comment/commentId/reply/replyId', {
198
+ isEditing: true
199
+ });
200
+ return [2 /*return*/];
201
+ }
173
202
  });
174
- });
203
+ }); });
175
204
  it('should render sendMessageArea instead of reply if isEditing equals true', function () {
176
205
  var getCommentState = function () { return ({ isEditing: true }); };
177
206
  var collaborationContextValue = __assign(__assign({}, defaultCollaborationContextValue), { getCommentState: getCommentState });
178
- var component = setUp({ collaborationContextValue: collaborationContextValue });
179
- expect(component.find(CommentContent)).toHaveLength(0);
180
- var sendMessageArea = component.find(SendMessageArea);
181
- expect(sendMessageArea).toHaveLength(1);
182
- var inputRef = sendMessageArea.prop('inputRef');
183
- expect(inputRef.current.value).toEqual('Some message');
207
+ setUp({ collaborationContextValue: collaborationContextValue });
208
+ expect(screen.queryByText('comment')).not.toBeInTheDocument();
209
+ expect(screen.getByRole('textbox')).toHaveValue('Some message');
184
210
  });
185
- it('should call deleteReply after delete btn clicking', function () {
186
- var deleteReply = defaultCollaborationContextValue.deleteReply;
187
- var component = setUp();
188
- var menuItems = component.find(DropDownMenuButton).prop('menuItems');
189
- var deleteButton = menuItems.find(function (_a) {
190
- var text = _a.text;
191
- return text === 'Delete';
192
- });
193
- if (deleteButton)
194
- deleteButton.onClick();
195
- expect(deleteReply).toHaveBeenCalledWith({
196
- uri: 'entities/13JKIKAz/attributes/Name/2mlWuqDq5',
197
- commentId: 'commentId',
198
- reply: defaultReply
211
+ it('should call deleteReply after delete btn clicking', function () { return __awaiter(void 0, void 0, void 0, function () {
212
+ var deleteReply, user;
213
+ return __generator(this, function (_a) {
214
+ switch (_a.label) {
215
+ case 0:
216
+ deleteReply = defaultCollaborationContextValue.deleteReply;
217
+ user = setUp().user;
218
+ return [4 /*yield*/, user.click(screen.getByRole('button', { name: 'Open menu' }))];
219
+ case 1:
220
+ _a.sent();
221
+ return [4 /*yield*/, user.click(screen.getByRole('menuitem', { name: 'Delete' }))];
222
+ case 2:
223
+ _a.sent();
224
+ expect(deleteReply).toHaveBeenCalledWith({
225
+ uri: 'entities/13JKIKAz/attributes/Name/2mlWuqDq5',
226
+ commentId: 'commentId',
227
+ reply: defaultReply
228
+ });
229
+ return [2 /*return*/];
230
+ }
199
231
  });
200
- });
232
+ }); });
201
233
  it('should not render DropDownMenuButton if comment is resolved', function () {
202
234
  var props = {
203
235
  reply: defaultReply,
204
236
  uri: 'entities/13JKIKAz/attributes/Name/2mlWuqDq5',
205
237
  comment: __assign(__assign({}, defaultComment), { status: 'resolved' })
206
238
  };
207
- render(React.createElement(MdmModuleProvider, { values: mdmValues },
208
- React.createElement(RepliedComment, __assign({}, props))));
209
- expect(screen.queryByTitle('Open menu')).not.toBeInTheDocument();
239
+ setUp({ props: props });
240
+ expect(screen.queryByRole('button', { name: 'Open menu' })).not.toBeInTheDocument();
210
241
  });
211
242
  });