Skip to content

Commit 4c7e741

Browse files
marker-daomarker dao ®
andauthored
Chat: Add screenshot tests for MessageBubble and MessageBox with attachments (#31594)
Co-authored-by: marker dao ® <[email protected]>
1 parent 05c6fb4 commit 4c7e741

10 files changed

+77
-18
lines changed

e2e/testcafe-devextreme/tests/editors/chat/data/index.ts

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,18 @@ interface User {
44
avatarUrl: string;
55
}
66

7+
interface Attachment {
8+
name: string;
9+
size: number;
10+
}
11+
712
interface Message {
813
timestamp: Date;
914
author: User;
1015
type?: 'image' | 'text';
1116
src?: string;
1217
text?: string;
18+
attachments?: Attachment[];
1319
}
1420

1521
export const avatarUrl = 'data:image/png;base64,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';
@@ -75,3 +81,29 @@ export const generateImageMessage = (
7581
type: 'image',
7682
src,
7783
});
84+
85+
export const attachments = [
86+
{
87+
name: '9138cf2e-ced3-426a-bb53-4478536f690b.zip',
88+
size: 1024,
89+
},
90+
{
91+
name: '9138cf2e-ced3-426a-bb53-4478536f690b.png',
92+
size: 10240,
93+
},
94+
{
95+
name: '9138cf2e-ced3-426a-bb53-4478536f690b.jpeg',
96+
size: 102400,
97+
},
98+
{
99+
name: '9138cf2e-ced3-426a-bb53-4478536f690b.zip',
100+
size: 1024000,
101+
},
102+
];
103+
104+
export const generateFileMessage = (author: User, longText = false): Message => ({
105+
text: longText ? getLongText() : getShortText(),
106+
timestamp,
107+
author,
108+
attachments,
109+
});
81.8 KB
Loading
Binary file not shown.
44.8 KB
Loading
Binary file not shown.
158 KB
Loading

e2e/testcafe-devextreme/tests/editors/chat/messageBox.ts

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
import { createScreenshotsComparer } from 'devextreme-screenshot-comparer';
22
import Chat from 'devextreme-testcafe-models/chat';
3-
import { getShortText, getLongText, createUser } from './data';
3+
import {
4+
getShortText, getLongText, createUser, attachments,
5+
} from './data';
46
import url from '../../../helpers/getPageUrl';
57
import { createWidget } from '../../../helpers/createWidget';
68
import { testScreenshot } from '../../../helpers/themeUtils';
@@ -81,13 +83,24 @@ test('Chat: messagebox with editing preview', async (t) => {
8183
}, '#chat');
8284
});
8385

84-
test('Chat: messagebox with attach button', async (t) => {
86+
test('Chat: messagebox with attachments and informer', async (t) => {
8587
const { takeScreenshot, compareResults } = createScreenshotsComparer(t);
8688

8789
const chat = new Chat('#chat');
8890

91+
await t.typeText(chat.getInput(), getLongText(false, 4));
92+
await chat.option({
93+
fileUploaderOptions: {
94+
value: [
95+
...attachments,
96+
...attachments,
97+
...attachments,
98+
],
99+
},
100+
});
101+
89102
await chat.focus();
90-
await testScreenshot(t, takeScreenshot, 'Messagebox with attach button.png', { element: '#chat' });
103+
await testScreenshot(t, takeScreenshot, 'Messagebox with attachments and informer.png', { element: '#chat' });
91104

92105
await t
93106
.expect(compareResults.isValid())
@@ -96,8 +109,7 @@ test('Chat: messagebox with attach button', async (t) => {
96109
await appendElementTo('#container', 'div', 'chat');
97110

98111
return createWidget('dxChat', {
99-
width: 400,
112+
width: 812,
100113
height: 600,
101-
fileUploaderOptions: {},
102114
}, '#chat');
103115
});

e2e/testcafe-devextreme/tests/editors/chat/messageBubble.ts

Lines changed: 26 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,11 @@
11
import { createScreenshotsComparer } from 'devextreme-screenshot-comparer';
22
import Chat from 'devextreme-testcafe-models/chat';
3-
import { createUser, generateImageMessage, generateMessages } from './data';
3+
import {
4+
createUser,
5+
generateImageMessage,
6+
generateMessages,
7+
generateFileMessage,
8+
} from './data';
49
import url from '../../../helpers/getPageUrl';
510
import { createWidget } from '../../../helpers/createWidget';
611
import { testScreenshot } from '../../../helpers/themeUtils';
@@ -39,21 +44,31 @@ test('Chat: messagebubble', async (t) => {
3944
}, '#chat');
4045
});
4146

42-
test('Chat: messagebubble - image rendering with size variations', async (t) => {
47+
test('Chat: messagebubble with images and files', async (t) => {
4348
const { takeScreenshot, compareResults } = createScreenshotsComparer(t);
4449
const chat = new Chat('#chat');
4550

4651
const user = createUser(1, 'ImageUser');
4752

48-
let imageMessages = generateImageMessage(user, '../../../apps/demos/images/products/1.png');
49-
50-
await chat.option({ items: [imageMessages] });
51-
await testScreenshot(t, takeScreenshot, 'Bubbles with image.png', { element: '#chat' });
52-
53-
imageMessages = generateImageMessage(user, '../../../apps/demos/images/products/1-small.png');
54-
55-
await chat.option({ items: [imageMessages] });
56-
await testScreenshot(t, takeScreenshot, 'Bubbles with small image.png', { element: '#chat' });
53+
const imageMessages = [
54+
generateImageMessage(user, '../../../apps/demos/images/products/1.png'),
55+
generateImageMessage(user, '../../../apps/demos/images/products/1-small.png'),
56+
];
57+
58+
await chat.option({ items: imageMessages });
59+
await testScreenshot(t, takeScreenshot, 'Bubbles with images.png', { element: '#chat' });
60+
61+
const fileMessages = [
62+
generateFileMessage(user),
63+
generateFileMessage(user, true),
64+
];
65+
66+
await chat.option({
67+
width: 700,
68+
height: 720,
69+
items: fileMessages,
70+
});
71+
await testScreenshot(t, takeScreenshot, 'Bubbles with files.png', { element: '#chat' });
5772

5873
await t.expect(compareResults.isValid()).ok(compareResults.errorMessages());
5974
}).before(async () => {

packages/devextreme/js/__internal/ui/file_uploader/file_uploader.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ const FILEUPLOADER_INVALID_CLASS = 'dx-fileuploader-invalid';
7373
const FILEUPLOADER_AFTER_LOAD_DELAY = 400;
7474
const DRAG_EVENT_DELTA = 1;
7575
const GAP = 10;
76-
const ETALON_TEXT = '1023 bytes';
76+
const REFERENCE_TEXT = '1023 bytes';
7777

7878
const DIALOG_TRIGGER_EVENT_NAMESPACE = 'dxFileUploaderDialogTrigger';
7979

@@ -793,7 +793,7 @@ class FileUploader extends Editor<FileUploaderProperties> {
793793
const iconWidth = _showFileIcon ? getOuterWidth($icon) : 0;
794794

795795
const prevFileSize = $fileSize?.text();
796-
$fileSize?.text(ETALON_TEXT);
796+
$fileSize?.text(REFERENCE_TEXT);
797797
const fileSizeWidth = getWidth($fileSize);
798798
$fileSize?.text(prevFileSize ?? '');
799799

0 commit comments

Comments
 (0)