@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.
- package/cjs/ActionsPanel/ActionsPanel.test.js +133 -49
- package/cjs/AttributeListItem/AttributeListItem.spec.js +147 -118
- package/cjs/AttributeSelector/AttributeSelector.specs.js +125 -193
- package/cjs/AttributesErrorsPanel/AttributesErrorsPanel.specs.js +128 -71
- package/cjs/AttributesErrorsPanel/components/Error/Error.specs.js +96 -90
- package/cjs/AttributesErrorsPanel/store.test-data.d.ts +22 -0
- package/cjs/AttributesErrorsPanel/store.test-data.js +29 -0
- package/cjs/AttributesFilterSelector/AttributesFilterSelector.test.js +127 -105
- package/cjs/AttributesFiltersButton/AttributesFiltersButton.test.js +218 -136
- package/cjs/AttributesValuesEditor/AttributesValuesEditor.test.js +92 -88
- package/cjs/AttributesView/AttributesView.test.js +67 -34
- package/cjs/AutoSizeList/AutoSizeList.test.js +81 -59
- package/cjs/{ActionsPanel/components/MenuItemRenderer/MenuItemRenderer.spec.js → AvatarWithFallback/AvatarWithFallback.test.js} +15 -31
- package/cjs/BarChart/BarChart.test.js +128 -65
- package/cjs/BasicAttributeSelector/BasicAttributeSelector.spec.js +27 -10
- package/cjs/BasicViewContent/BasicViewContent.test.js +7 -9
- package/cjs/BlobRenderer/BlobRenderer.test.js +28 -9
- package/cjs/BooleanRadioEditor/BooleanRadioEditor.test.js +89 -35
- package/cjs/BubbleChart/BubbleChart.test.js +111 -87
- package/cjs/CloudChart/CloudChart.test.js +95 -36
- package/cjs/CollaborationItem/CollaborationItem.test.js +67 -30
- package/cjs/CollaborationItem/components/Comment/Comment.test.js +221 -189
- package/cjs/CollaborationItem/components/CommentContent/CommentContent.test.js +46 -81
- package/cjs/CollaborationItem/components/RepliedComment/RepliedComment.test.js +194 -163
- package/cjs/CollaborationItem/components/SendMessageArea/SendMessageArea.test.js +307 -266
- package/cjs/CollapseButton/CollapseButton.test.js +74 -15
- package/cjs/CollapseRowButton/CollapseRowButton.test.js +82 -24
- package/cjs/ColorBar/ColorBar.test.js +13 -15
- package/cjs/ColumnsSettings/components/ColumnsSettingsPopup/ColumnsSettingsPopup.spec.js +207 -129
- package/cjs/CommentsContainer/CommentsContainer.test.js +282 -211
- package/cjs/CommentsContainer/components/CollaborationPopup/CollaborationPopup.test.js +183 -122
- package/cjs/ConfigureColumnsPopup/ConfigureColumnsPopup.test.js +42 -41
- package/cjs/ConfirmDeleteDialog/ConfirmDeleteDialog.test.js +77 -28
- package/cjs/ConfirmationDialog/ConfirmationDialog.test.js +85 -48
- package/cjs/ConnectionEditor/ConnectionEditor.test.js +299 -282
- package/esm/ActionsPanel/ActionsPanel.test.js +133 -49
- package/esm/AttributeListItem/AttributeListItem.spec.js +149 -97
- package/esm/AttributeSelector/AttributeSelector.specs.js +125 -193
- package/esm/AttributesErrorsPanel/AttributesErrorsPanel.specs.js +128 -71
- package/esm/AttributesErrorsPanel/components/Error/Error.specs.js +98 -72
- package/esm/AttributesErrorsPanel/store.test-data.d.ts +22 -0
- package/esm/AttributesErrorsPanel/store.test-data.js +26 -0
- package/esm/AttributesFilterSelector/AttributesFilterSelector.test.js +129 -84
- package/esm/AttributesFiltersButton/AttributesFiltersButton.test.js +218 -136
- package/esm/AttributesValuesEditor/AttributesValuesEditor.test.js +94 -67
- package/esm/AttributesView/AttributesView.test.js +67 -34
- package/esm/AutoSizeList/AutoSizeList.test.js +81 -59
- package/esm/{ActionsPanel/components/MenuItemRenderer/MenuItemRenderer.spec.js → AvatarWithFallback/AvatarWithFallback.test.js} +16 -32
- package/esm/BarChart/BarChart.test.js +128 -65
- package/esm/BasicAttributeSelector/BasicAttributeSelector.spec.js +27 -10
- package/esm/BasicViewContent/BasicViewContent.test.js +7 -9
- package/esm/BlobRenderer/BlobRenderer.test.js +28 -9
- package/esm/BooleanRadioEditor/BooleanRadioEditor.test.js +89 -35
- package/esm/BubbleChart/BubbleChart.test.js +111 -87
- package/esm/CloudChart/CloudChart.test.js +95 -36
- package/esm/CollaborationItem/CollaborationItem.test.js +67 -30
- package/esm/CollaborationItem/components/Comment/Comment.test.js +221 -189
- package/esm/CollaborationItem/components/CommentContent/CommentContent.test.js +46 -58
- package/esm/CollaborationItem/components/RepliedComment/RepliedComment.test.js +194 -163
- package/esm/CollaborationItem/components/SendMessageArea/SendMessageArea.test.js +307 -266
- package/esm/CollapseButton/CollapseButton.test.js +74 -15
- package/esm/CollapseRowButton/CollapseRowButton.test.js +82 -24
- package/esm/ColorBar/ColorBar.test.js +13 -15
- package/esm/ColumnsSettings/components/ColumnsSettingsPopup/ColumnsSettingsPopup.spec.js +207 -129
- package/esm/CommentsContainer/CommentsContainer.test.js +282 -211
- package/esm/CommentsContainer/components/CollaborationPopup/CollaborationPopup.test.js +182 -101
- package/esm/ConfigureColumnsPopup/ConfigureColumnsPopup.test.js +42 -41
- package/esm/ConfirmDeleteDialog/ConfirmDeleteDialog.test.js +77 -28
- package/esm/ConfirmationDialog/ConfirmationDialog.test.js +85 -48
- package/esm/ConnectionEditor/ConnectionEditor.test.js +300 -283
- package/package.json +1 -1
- package/cjs/AttributesErrorsPanel/components/ErrorsPanel/ErrorsPanel.specs.js +0 -100
- package/cjs/AttributesFiltersButton/components/ActionButtons/ActionButtons.test.d.ts +0 -1
- package/cjs/AttributesFiltersButton/components/ActionButtons/ActionButtons.test.js +0 -46
- package/cjs/AvatarWithFallback/AvatarWithFallback.specs.d.ts +0 -1
- package/cjs/AvatarWithFallback/AvatarWithFallback.specs.js +0 -27
- package/cjs/BooleanRadioEditor/components/BooleanEditor/BooleanEditor.test.d.ts +0 -1
- package/cjs/BooleanRadioEditor/components/BooleanEditor/BooleanEditor.test.js +0 -27
- package/cjs/CollaborationItem/components/Avatar/Avatar.test.d.ts +0 -1
- package/cjs/CollaborationItem/components/Avatar/Avatar.test.js +0 -15
- package/cjs/CollaborationItem/components/TextFieldWithMentions/TextFieldWithMentions.test.d.ts +0 -1
- package/cjs/CollaborationItem/components/TextFieldWithMentions/TextFieldWithMentions.test.js +0 -80
- package/esm/ActionsPanel/components/MenuItemRenderer/MenuItemRenderer.spec.d.ts +0 -1
- package/esm/AttributesErrorsPanel/components/ErrorsPanel/ErrorsPanel.specs.d.ts +0 -1
- package/esm/AttributesErrorsPanel/components/ErrorsPanel/ErrorsPanel.specs.js +0 -95
- package/esm/AttributesFiltersButton/components/ActionButtons/ActionButtons.test.d.ts +0 -1
- package/esm/AttributesFiltersButton/components/ActionButtons/ActionButtons.test.js +0 -41
- package/esm/AvatarWithFallback/AvatarWithFallback.specs.d.ts +0 -1
- package/esm/AvatarWithFallback/AvatarWithFallback.specs.js +0 -22
- package/esm/BooleanRadioEditor/components/BooleanEditor/BooleanEditor.test.d.ts +0 -1
- package/esm/BooleanRadioEditor/components/BooleanEditor/BooleanEditor.test.js +0 -22
- package/esm/CollaborationItem/components/Avatar/Avatar.test.d.ts +0 -1
- package/esm/CollaborationItem/components/Avatar/Avatar.test.js +0 -10
- package/esm/CollaborationItem/components/TextFieldWithMentions/TextFieldWithMentions.test.d.ts +0 -1
- package/esm/CollaborationItem/components/TextFieldWithMentions/TextFieldWithMentions.test.js +0 -55
- /package/cjs/{ActionsPanel/components/MenuItemRenderer/MenuItemRenderer.spec.d.ts → AvatarWithFallback/AvatarWithFallback.test.d.ts} +0 -0
- /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
|
|
13
|
-
import { shallow } from 'enzyme';
|
|
14
|
-
import Link from '@mui/material/Link';
|
|
12
|
+
import React from 'react';
|
|
15
13
|
import { CommentContent } from './CommentContent';
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
];
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
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
|
-
|
|
41
|
-
|
|
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
|
-
|
|
46
|
-
var
|
|
47
|
-
|
|
48
|
-
expect(
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
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
|
-
|
|
55
|
-
var
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
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
|
-
|
|
64
|
-
var
|
|
65
|
-
|
|
66
|
-
expect(
|
|
67
|
-
|
|
68
|
-
|
|
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
|
-
|
|
79
|
-
|
|
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
|
-
|
|
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
|
-
|
|
102
|
-
expect(
|
|
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
|
-
|
|
107
|
-
expect(
|
|
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
|
-
|
|
112
|
-
expect(
|
|
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
|
-
|
|
124
|
-
expect(
|
|
125
|
-
expect(
|
|
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
|
-
|
|
131
|
-
expect(
|
|
132
|
-
expect(
|
|
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
|
-
|
|
142
|
-
expect(
|
|
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
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
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
|
-
|
|
172
|
-
|
|
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
|
-
|
|
179
|
-
expect(
|
|
180
|
-
|
|
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
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
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
|
-
|
|
208
|
-
|
|
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
|
});
|