-
Notifications
You must be signed in to change notification settings - Fork 960
Expand file tree
/
Copy pathattachMenuButton.test.tsx
More file actions
40 lines (31 loc) · 1.38 KB
/
Copy pathattachMenuButton.test.tsx
File metadata and controls
40 lines (31 loc) · 1.38 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
import {getIconContent} from '@components/icon';
import AttachMenuButton from '@components/chat/attachMenuButton';
import {shouldUseReplaceMediaIcon} from '@components/chat/utils';
import {Message} from '@layer';
import {beforeEach, describe, expect, it} from 'vitest';
describe('AttachMenuButton', () => {
beforeEach(() => {
document.body.replaceChildren();
});
it('shows the replace icon only when there is media to replace', () => {
const button = new AttachMenuButton;
button.feedProps({isReplacingMedia: false});
document.body.append(button);
const getIcon = () => button.querySelector<HTMLElement>('.button-icon')?.textContent;
expect(getIcon()).toBe(getIconContent('attach'));
button.feedProps({isReplacingMedia: true});
expect(getIcon()).toBe(getIconContent('replace_squares'));
button.feedProps({isReplacingMedia: false});
expect(getIcon()).toBe(getIconContent('attach'));
});
it('only enables media replacement while editing replaceable media', () => {
const textMessage = {_:'message'} as Message.message;
const photoMessage = {
_: 'message',
media: {_:'messageMediaPhoto'}
} as Message.message;
expect(shouldUseReplaceMediaIcon(false, photoMessage)).toBe(false);
expect(shouldUseReplaceMediaIcon(true, textMessage)).toBe(false);
expect(shouldUseReplaceMediaIcon(true, photoMessage)).toBe(true);
});
});