mattermost-mobile/app/client/rest/emojis.test.ts
Joram Wilander 4fedb846bc
MM-59683 + more - Add tests to client/rest (#8447)
* Add tests to client/rest/users

* Add tests to client/rest/channels

* Add tests to client/rest/posts

* Add tests to client/rest/teams

* Add tests to client/rest/general

* Minor clean-up

* Add tests to client/rest/file

* Add tests to client/rest/threads

* Add tests to client/rest/emojis

* Add tests to client/rest/integrations

* Add tests to client/rest/categories

* Add tests to client/rest/groups

* Add tests to client/rest/channel_bookmark

* Add tests to client/rest/preferences

* Add tests to client/rest/tos

* Add tests to client/rest/nps and client/rest/plugins

* Minor clean-up

* Fix type error with proper client.searchFiles definition

* add more test to cover 100%

* add teamId test

* improve users test

---------

Co-authored-by: Rahim Rahman <rahim.rahman@mattermost.com>
2025-01-07 08:23:28 -05:00

100 lines
3.1 KiB
TypeScript

// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
// See LICENSE.txt for license information.
import TestHelper from '@test/test_helper';
import {buildQueryString} from '@utils/helpers';
import {PER_PAGE_DEFAULT} from './constants';
import type ClientBase from './base';
import type {ClientEmojisMix} from './emojis';
describe('ClientEmojis', () => {
let client: ClientEmojisMix & ClientBase;
beforeAll(() => {
client = TestHelper.createClient();
client.doFetch = jest.fn();
});
test('getCustomEmoji', async () => {
const id = 'emoji_id';
await client.getCustomEmoji(id);
expect(client.doFetch).toHaveBeenCalledWith(
`${client.getEmojisRoute()}/${id}`,
{method: 'get'},
);
});
test('getCustomEmojiByName', async () => {
const name = 'emoji_name';
await client.getCustomEmojiByName(name);
expect(client.doFetch).toHaveBeenCalledWith(
`${client.getEmojisRoute()}/name/${name}`,
{method: 'get'},
);
});
test('getCustomEmojis', async () => {
const page = 1;
const perPage = 10;
const sort = 'create_at';
await client.getCustomEmojis(page, perPage, sort);
expect(client.doFetch).toHaveBeenCalledWith(
`${client.getEmojisRoute()}${buildQueryString({page, per_page: perPage, sort})}`,
{method: 'get'},
);
// Test with default values
await client.getCustomEmojis();
expect(client.doFetch).toHaveBeenCalledWith(
`${client.getEmojisRoute()}${buildQueryString({page: 0, per_page: PER_PAGE_DEFAULT, sort: ''})}`,
{method: 'get'},
);
});
test('getSystemEmojiImageUrl', () => {
const filename = 'emoji_filename';
const result = client.getSystemEmojiImageUrl(filename);
expect(result).toBe(`${client.apiClient.baseUrl}static/emoji/${filename}.png`);
});
test('getCustomEmojiImageUrl', () => {
const id = 'emoji_id';
const result = client.getCustomEmojiImageUrl(id);
expect(result).toBe(`${client.apiClient.baseUrl}${client.getEmojiRoute(id)}/image`);
});
test('searchCustomEmoji', async () => {
const term = 'search_term';
const options = {option1: 'value1'};
await client.searchCustomEmoji(term, options);
expect(client.doFetch).toHaveBeenCalledWith(
`${client.getEmojisRoute()}/search`,
{method: 'post', body: {term, ...options}},
);
// Test with default values
await client.searchCustomEmoji(term);
expect(client.doFetch).toHaveBeenCalledWith(
`${client.getEmojisRoute()}/search`,
{method: 'post', body: {term}},
);
});
test('autocompleteCustomEmoji', async () => {
const name = 'emoji_name';
await client.autocompleteCustomEmoji(name);
expect(client.doFetch).toHaveBeenCalledWith(
`${client.getEmojisRoute()}/autocomplete${buildQueryString({name})}`,
{method: 'get'},
);
});
});