Skip to content

Commit

Permalink
fix: no spaces between emoji aliases (#33278)
Browse files Browse the repository at this point in the history
  • Loading branch information
abhinavkrin authored Nov 15, 2024
1 parent daa1934 commit 41d1cd5
Show file tree
Hide file tree
Showing 3 changed files with 85 additions and 1 deletion.
5 changes: 5 additions & 0 deletions .changeset/spotty-ads-knock.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'@rocket.chat/meteor': patch
---

Fixes display of emoji aliases in custom emoji list by adding commas between aliases
79 changes: 79 additions & 0 deletions apps/meteor/client/views/admin/customEmoji/CustomEmoji.spec.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
import { mockAppRoot } from '@rocket.chat/mock-providers';
import { render, screen, waitFor } from '@testing-library/react';
import React from 'react';

import '@testing-library/jest-dom';

import CustomEmoji from './CustomEmoji';

const appRoot = mockAppRoot().withEndpoint('GET', '/v1/emoji-custom.all', () => ({
count: 1,
offset: 0,
total: 1,
success: true,
emojis: [
{
_id: '1',
name: 'smile',
aliases: ['happy', 'joy'],
extension: 'webp',
_updatedAt: new Date().toISOString(),
etag: 'abcdef',
},
],
}));

describe('CustomEmoji Component', () => {
const mockRef = { current: jest.fn() };
const mockOnClick = jest.fn();

it('renders emoji list', async () => {
render(<CustomEmoji onClick={mockOnClick} reload={mockRef} />, {
legacyRoot: true,
wrapper: appRoot.build(),
});

await waitFor(() => {
expect(screen.getByText('smile')).toBeInTheDocument();
});
});

it("renders emoji's aliases as comma-separated values when aliases is an array", async () => {
render(<CustomEmoji onClick={mockOnClick} reload={mockRef} />, {
legacyRoot: true,
wrapper: appRoot.build(),
});

await waitFor(() => {
expect(screen.getByText('happy, joy')).toBeInTheDocument();
});
});

it("renders emoji's aliases values when aliases is a string", async () => {
render(<CustomEmoji onClick={mockOnClick} reload={mockRef} />, {
legacyRoot: true,
wrapper: mockAppRoot()
.withEndpoint('GET', '/v1/emoji-custom.all', () => ({
count: 1,
offset: 0,
total: 1,
success: true,
emojis: [
{
_id: '1',
name: 'smile',
aliases: 'happy' as any,
extension: 'webp',
_updatedAt: new Date().toISOString(),
etag: 'abcdef',
},
],
}))
.build(),
});

await waitFor(() => {
expect(screen.getByText('happy')).toBeInTheDocument();
});
});
});
2 changes: 1 addition & 1 deletion apps/meteor/client/views/admin/customEmoji/CustomEmoji.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,7 @@ const CustomEmoji = ({ onClick, reload }: CustomEmojiProps) => {
<Box withTruncatedText>{emojis.name}</Box>
</GenericTableCell>
<GenericTableCell color='default'>
<Box withTruncatedText>{emojis.aliases.join(', ')}</Box>
<Box withTruncatedText>{Array.isArray(emojis.aliases) ? emojis.aliases.join(', ') : emojis.aliases}</Box>
</GenericTableCell>
</GenericTableRow>
))}
Expand Down

0 comments on commit 41d1cd5

Please sign in to comment.