* Add autotranslations * Develop latest changes and missing features * i18n-extract * Fix tests and update api behavior * Fix minor bugs * adjustments to shimmer animation, showtranslation modal style * Update post.tsx * Update show_translation.tsx * adjust sizing and opacity of translate icon * Add channel header translated icon * Disable auto translation item if it is not a supported language * Move channel info to the top * Update edit channel to channel info * Fix align of option items * Fix i18n * Add detox related changes for channel settings changes * Add tests * Address changes around the my channel column change * Address feedback * Fix test * Fix bad import * Fix set my channel autotranslation * Fix test * Address feedback * Add missing files from last commit * Remove unneeded change --------- Co-authored-by: Matthew Birtch <mattbirtch@gmail.com>
526 lines
21 KiB
TypeScript
526 lines
21 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 {ClientChannelsMix} from './channels';
|
|
|
|
describe('ClientChannels', () => {
|
|
let client: ClientChannelsMix & ClientBase;
|
|
|
|
beforeAll(() => {
|
|
client = TestHelper.createClient();
|
|
client.doFetch = jest.fn();
|
|
});
|
|
|
|
test('getAllChannels', async () => {
|
|
const page = 1;
|
|
const perPage = 10;
|
|
const notAssociatedToGroup = 'group1';
|
|
const excludeDefaultChannels = true;
|
|
const includeTotalCount = true;
|
|
const expectedUrl = `${client.getChannelsRoute()}?page=${page}&per_page=${perPage}¬_associated_to_group=${notAssociatedToGroup}&exclude_default_channels=${excludeDefaultChannels}&include_total_count=${includeTotalCount}`;
|
|
const expectedOptions = {method: 'get'};
|
|
|
|
await client.getAllChannels(page, perPage, notAssociatedToGroup, excludeDefaultChannels, includeTotalCount);
|
|
|
|
expect(client.doFetch).toHaveBeenCalledWith(expectedUrl, expectedOptions);
|
|
|
|
// Test with default values
|
|
await client.getAllChannels();
|
|
expect(client.doFetch).toHaveBeenCalledWith(`${client.getChannelsRoute()}?page=0&per_page=${PER_PAGE_DEFAULT}¬_associated_to_group=&exclude_default_channels=false&include_total_count=false`, expectedOptions);
|
|
});
|
|
|
|
test('createChannel', async () => {
|
|
const channel = {id: 'channel1', name: 'testchannel'} as Channel;
|
|
const expectedUrl = client.getChannelsRoute();
|
|
const expectedOptions = {method: 'post', body: channel};
|
|
|
|
await client.createChannel(channel);
|
|
|
|
expect(client.doFetch).toHaveBeenCalledWith(expectedUrl, expectedOptions);
|
|
});
|
|
|
|
test('createDirectChannel', async () => {
|
|
const userIds = ['user1', 'user2'];
|
|
const expectedUrl = `${client.getChannelsRoute()}/direct`;
|
|
const expectedOptions = {method: 'post', body: userIds};
|
|
|
|
await client.createDirectChannel(userIds);
|
|
|
|
expect(client.doFetch).toHaveBeenCalledWith(expectedUrl, expectedOptions);
|
|
});
|
|
|
|
test('createGroupChannel', async () => {
|
|
const userIds = ['user1', 'user2', 'user3'];
|
|
const expectedUrl = `${client.getChannelsRoute()}/group`;
|
|
const expectedOptions = {method: 'post', body: userIds};
|
|
|
|
await client.createGroupChannel(userIds);
|
|
|
|
expect(client.doFetch).toHaveBeenCalledWith(expectedUrl, expectedOptions);
|
|
});
|
|
|
|
test('deleteChannel', async () => {
|
|
const channelId = 'channel1';
|
|
const expectedUrl = client.getChannelRoute(channelId);
|
|
const expectedOptions = {method: 'delete'};
|
|
|
|
await client.deleteChannel(channelId);
|
|
|
|
expect(client.doFetch).toHaveBeenCalledWith(expectedUrl, expectedOptions);
|
|
});
|
|
|
|
test('unarchiveChannel', async () => {
|
|
const channelId = 'channel1';
|
|
const expectedUrl = `${client.getChannelRoute(channelId)}/restore`;
|
|
const expectedOptions = {method: 'post'};
|
|
|
|
await client.unarchiveChannel(channelId);
|
|
|
|
expect(client.doFetch).toHaveBeenCalledWith(expectedUrl, expectedOptions);
|
|
});
|
|
|
|
test('updateChannel', async () => {
|
|
const channel = {id: 'channel1', name: 'updatedchannel'} as Channel;
|
|
const expectedUrl = client.getChannelRoute(channel.id);
|
|
const expectedOptions = {method: 'put', body: channel};
|
|
|
|
await client.updateChannel(channel);
|
|
|
|
expect(client.doFetch).toHaveBeenCalledWith(expectedUrl, expectedOptions);
|
|
});
|
|
|
|
test('convertChannelToPrivate', async () => {
|
|
const channelId = 'channel1';
|
|
const expectedUrl = `${client.getChannelRoute(channelId)}/privacy`;
|
|
const expectedOptions = {method: 'put', body: {privacy: 'P'}};
|
|
|
|
await client.convertChannelToPrivate(channelId);
|
|
|
|
expect(client.doFetch).toHaveBeenCalledWith(expectedUrl, expectedOptions);
|
|
});
|
|
|
|
test('updateChannelPrivacy', async () => {
|
|
const channelId = 'channel1';
|
|
const privacy = 'P';
|
|
const expectedUrl = `${client.getChannelRoute(channelId)}/privacy`;
|
|
const expectedOptions = {method: 'put', body: {privacy}};
|
|
|
|
await client.updateChannelPrivacy(channelId, privacy);
|
|
|
|
expect(client.doFetch).toHaveBeenCalledWith(expectedUrl, expectedOptions);
|
|
});
|
|
|
|
test('patchChannel', async () => {
|
|
const channelId = 'channel1';
|
|
const channelPatch = {name: 'patchedchannel'};
|
|
const expectedUrl = `${client.getChannelRoute(channelId)}/patch`;
|
|
const expectedOptions = {method: 'put', body: channelPatch};
|
|
|
|
await client.patchChannel(channelId, channelPatch);
|
|
|
|
expect(client.doFetch).toHaveBeenCalledWith(expectedUrl, expectedOptions);
|
|
});
|
|
|
|
test('updateChannelNotifyProps', async () => {
|
|
const props = {channel_id: 'channel1', user_id: 'user1', mark_unread: 'all'} as ChannelNotifyProps & {channel_id: string; user_id: string};
|
|
const expectedUrl = `${client.getChannelMemberRoute(props.channel_id, props.user_id)}/notify_props`;
|
|
const expectedOptions = {method: 'put', body: props};
|
|
|
|
await client.updateChannelNotifyProps(props);
|
|
|
|
expect(client.doFetch).toHaveBeenCalledWith(expectedUrl, expectedOptions);
|
|
});
|
|
|
|
test('setChannelAutotranslation', async () => {
|
|
const channelId = 'channel1';
|
|
const enabled = true;
|
|
const expectedUrl = `${client.getChannelRoute(channelId)}/patch`;
|
|
const expectedOptions = {method: 'put', body: {autotranslation: enabled}};
|
|
jest.mocked(client.doFetch).mockResolvedValue({id: channelId, autotranslation: enabled});
|
|
|
|
const result = await client.setChannelAutotranslation(channelId, enabled);
|
|
|
|
expect(client.doFetch).toHaveBeenCalledWith(expectedUrl, expectedOptions);
|
|
expect(result.autotranslation).toBe(enabled);
|
|
});
|
|
|
|
test('setMyChannelAutotranslation', async () => {
|
|
const channelId = 'channel1';
|
|
const enabled = false;
|
|
const expectedUrl = `${client.getChannelMemberRoute(channelId, 'me')}/autotranslation`;
|
|
const expectedOptions = {method: 'put', body: {autotranslation_disabled: !enabled}};
|
|
const mockMembership = {id: 'me-channel1', channel_id: channelId, user_id: 'me', autotranslation_disabled: !enabled};
|
|
jest.mocked(client.doFetch).mockResolvedValue(mockMembership);
|
|
|
|
const result = await client.setMyChannelAutotranslation(channelId, enabled);
|
|
|
|
expect(client.doFetch).toHaveBeenCalledWith(expectedUrl, expectedOptions);
|
|
expect(result).toEqual(mockMembership);
|
|
});
|
|
|
|
test('getChannel', async () => {
|
|
const channelId = 'channel1';
|
|
const expectedUrl = client.getChannelRoute(channelId);
|
|
const expectedOptions = {method: 'get'};
|
|
|
|
await client.getChannel(channelId);
|
|
|
|
expect(client.doFetch).toHaveBeenCalledWith(expectedUrl, expectedOptions);
|
|
});
|
|
|
|
test('getChannelByName', async () => {
|
|
const teamId = 'team1';
|
|
const channelName = 'channelname';
|
|
const includeDeleted = true;
|
|
const expectedUrl = `${client.getTeamRoute(teamId)}/channels/name/${channelName}?include_deleted=${includeDeleted}`;
|
|
const expectedOptions = {method: 'get'};
|
|
|
|
await client.getChannelByName(teamId, channelName, includeDeleted);
|
|
|
|
expect(client.doFetch).toHaveBeenCalledWith(expectedUrl, expectedOptions);
|
|
|
|
// Test with default values
|
|
await client.getChannelByName(teamId, channelName);
|
|
expect(client.doFetch).toHaveBeenCalledWith(`${client.getTeamRoute(teamId)}/channels/name/${channelName}?include_deleted=false`, expectedOptions);
|
|
});
|
|
|
|
test('getChannelByNameAndTeamName', async () => {
|
|
const teamName = 'teamname';
|
|
const channelName = 'channelname';
|
|
const includeDeleted = true;
|
|
const expectedUrl = `${client.getTeamNameRoute(teamName)}/channels/name/${channelName}?include_deleted=${includeDeleted}`;
|
|
const expectedOptions = {method: 'get'};
|
|
|
|
await client.getChannelByNameAndTeamName(teamName, channelName, includeDeleted);
|
|
|
|
expect(client.doFetch).toHaveBeenCalledWith(expectedUrl, expectedOptions);
|
|
|
|
// Test with default values
|
|
await client.getChannelByNameAndTeamName(teamName, channelName);
|
|
expect(client.doFetch).toHaveBeenCalledWith(`${client.getTeamNameRoute(teamName)}/channels/name/${channelName}?include_deleted=false`, expectedOptions);
|
|
});
|
|
|
|
test('getChannels', async () => {
|
|
const teamId = 'team1';
|
|
const page = 1;
|
|
const perPage = 10;
|
|
const expectedUrl = `${client.getTeamRoute(teamId)}/channels?page=${page}&per_page=${perPage}`;
|
|
const expectedOptions = {method: 'get'};
|
|
|
|
await client.getChannels(teamId, page, perPage);
|
|
|
|
expect(client.doFetch).toHaveBeenCalledWith(expectedUrl, expectedOptions);
|
|
|
|
// Test with default values
|
|
await client.getChannels(teamId);
|
|
expect(client.doFetch).toHaveBeenCalledWith(`${client.getTeamRoute(teamId)}/channels?page=0&per_page=${PER_PAGE_DEFAULT}`, expectedOptions);
|
|
});
|
|
|
|
test('getArchivedChannels', async () => {
|
|
const teamId = 'team1';
|
|
const page = 1;
|
|
const perPage = 10;
|
|
const expectedUrl = `${client.getTeamRoute(teamId)}/channels/deleted?page=${page}&per_page=${perPage}`;
|
|
const expectedOptions = {method: 'get'};
|
|
|
|
await client.getArchivedChannels(teamId, page, perPage);
|
|
|
|
expect(client.doFetch).toHaveBeenCalledWith(expectedUrl, expectedOptions);
|
|
|
|
// Test with default values
|
|
await client.getArchivedChannels(teamId);
|
|
expect(client.doFetch).toHaveBeenCalledWith(`${client.getTeamRoute(teamId)}/channels/deleted?page=0&per_page=${PER_PAGE_DEFAULT}`, expectedOptions);
|
|
});
|
|
|
|
test('getSharedChannels', async () => {
|
|
const teamId = 'team1';
|
|
const page = 1;
|
|
const perPage = 10;
|
|
const expectedUrl = `${client.getSharedChannelsRoute()}/${teamId}?page=${page}&per_page=${perPage}`;
|
|
const expectedOptions = {method: 'get'};
|
|
|
|
await client.getSharedChannels(teamId, page, perPage);
|
|
|
|
expect(client.doFetch).toHaveBeenCalledWith(expectedUrl, expectedOptions);
|
|
|
|
// Test with default values
|
|
await client.getSharedChannels(teamId);
|
|
expect(client.doFetch).toHaveBeenCalledWith(`${client.getSharedChannelsRoute()}/${teamId}?page=0&per_page=${PER_PAGE_DEFAULT}`, expectedOptions);
|
|
});
|
|
|
|
test('getMyChannels', async () => {
|
|
const teamId = 'team1';
|
|
const includeDeleted = true;
|
|
const since = 123456;
|
|
const expectedUrl = `${client.getUserRoute('me')}/teams/${teamId}/channels?include_deleted=${includeDeleted}&last_delete_at=${since}`;
|
|
const expectedOptions = {method: 'get'};
|
|
|
|
await client.getMyChannels(teamId, includeDeleted, since);
|
|
|
|
expect(client.doFetch).toHaveBeenCalledWith(expectedUrl, expectedOptions);
|
|
|
|
// Test with default values
|
|
await client.getMyChannels(teamId);
|
|
expect(client.doFetch).toHaveBeenCalledWith(`${client.getUserRoute('me')}/teams/${teamId}/channels?include_deleted=false&last_delete_at=0`, expectedOptions);
|
|
});
|
|
|
|
test('getMyChannelMember', async () => {
|
|
const channelId = 'channel1';
|
|
const expectedUrl = client.getChannelMemberRoute(channelId, 'me');
|
|
const expectedOptions = {method: 'get'};
|
|
|
|
await client.getMyChannelMember(channelId);
|
|
|
|
expect(client.doFetch).toHaveBeenCalledWith(expectedUrl, expectedOptions);
|
|
});
|
|
|
|
test('getMyChannelMembers', async () => {
|
|
const teamId = 'team1';
|
|
const expectedUrl = `${client.getUserRoute('me')}/teams/${teamId}/channels/members`;
|
|
const expectedOptions = {method: 'get'};
|
|
|
|
await client.getMyChannelMembers(teamId);
|
|
|
|
expect(client.doFetch).toHaveBeenCalledWith(expectedUrl, expectedOptions);
|
|
});
|
|
|
|
test('getChannelMembers', async () => {
|
|
const channelId = 'channel1';
|
|
const page = 1;
|
|
const perPage = 10;
|
|
const expectedUrl = `${client.getChannelMembersRoute(channelId)}?page=${page}&per_page=${perPage}`;
|
|
const expectedOptions = {method: 'get'};
|
|
|
|
await client.getChannelMembers(channelId, page, perPage);
|
|
|
|
expect(client.doFetch).toHaveBeenCalledWith(expectedUrl, expectedOptions);
|
|
|
|
// Test with default values
|
|
await client.getChannelMembers(channelId);
|
|
expect(client.doFetch).toHaveBeenCalledWith(`${client.getChannelMembersRoute(channelId)}?page=0&per_page=${PER_PAGE_DEFAULT}`, expectedOptions);
|
|
});
|
|
|
|
test('getChannelTimezones', async () => {
|
|
const channelId = 'channel1';
|
|
const expectedUrl = `${client.getChannelRoute(channelId)}/timezones`;
|
|
const expectedOptions = {method: 'get'};
|
|
|
|
await client.getChannelTimezones(channelId);
|
|
|
|
expect(client.doFetch).toHaveBeenCalledWith(expectedUrl, expectedOptions);
|
|
});
|
|
|
|
test('getChannelMember', async () => {
|
|
const channelId = 'channel1';
|
|
const userId = 'user1';
|
|
const expectedUrl = client.getChannelMemberRoute(channelId, userId);
|
|
const expectedOptions = {method: 'get'};
|
|
|
|
await client.getChannelMember(channelId, userId);
|
|
|
|
expect(client.doFetch).toHaveBeenCalledWith(expectedUrl, expectedOptions);
|
|
});
|
|
|
|
test('getChannelMembersByIds', async () => {
|
|
const channelId = 'channel1';
|
|
const userIds = ['user1', 'user2'];
|
|
const expectedUrl = `${client.getChannelMembersRoute(channelId)}/ids`;
|
|
const expectedOptions = {method: 'post', body: userIds};
|
|
|
|
await client.getChannelMembersByIds(channelId, userIds);
|
|
|
|
expect(client.doFetch).toHaveBeenCalledWith(expectedUrl, expectedOptions);
|
|
});
|
|
|
|
test('addToChannel', async () => {
|
|
const userId = 'user1';
|
|
const channelId = 'channel1';
|
|
const postRootId = 'post1';
|
|
const member = {user_id: userId, channel_id: channelId, post_root_id: postRootId};
|
|
const expectedUrl = client.getChannelMembersRoute(channelId);
|
|
const expectedOptions = {method: 'post', body: member};
|
|
|
|
await client.addToChannel(userId, channelId, postRootId);
|
|
|
|
expect(client.doFetch).toHaveBeenCalledWith(expectedUrl, expectedOptions);
|
|
|
|
// Test without postRootId
|
|
await client.addToChannel(userId, channelId);
|
|
expect(client.doFetch).toHaveBeenCalledWith(expectedUrl, {...expectedOptions, body: {user_id: userId, channel_id: channelId, post_root_id: ''}});
|
|
});
|
|
|
|
test('removeFromChannel', async () => {
|
|
const userId = 'user1';
|
|
const channelId = 'channel1';
|
|
const expectedUrl = client.getChannelMemberRoute(channelId, userId);
|
|
const expectedOptions = {method: 'delete'};
|
|
|
|
await client.removeFromChannel(userId, channelId);
|
|
|
|
expect(client.doFetch).toHaveBeenCalledWith(expectedUrl, expectedOptions);
|
|
});
|
|
|
|
test('getChannelStats', async () => {
|
|
const channelId = 'channel1';
|
|
const expectedUrl = `${client.getChannelRoute(channelId)}/stats`;
|
|
const expectedOptions = {method: 'get'};
|
|
|
|
await client.getChannelStats(channelId);
|
|
|
|
expect(client.doFetch).toHaveBeenCalledWith(expectedUrl, expectedOptions);
|
|
});
|
|
|
|
test('getChannelMemberCountsByGroup', async () => {
|
|
const channelId = 'channel1';
|
|
const includeTimezones = true;
|
|
const expectedUrl = `${client.getChannelRoute(channelId)}/member_counts_by_group?include_timezones=${includeTimezones}`;
|
|
const expectedOptions = {method: 'get'};
|
|
|
|
await client.getChannelMemberCountsByGroup(channelId, includeTimezones);
|
|
|
|
expect(client.doFetch).toHaveBeenCalledWith(expectedUrl, expectedOptions);
|
|
});
|
|
|
|
test('viewMyChannel', async () => {
|
|
const channelId = 'channel1';
|
|
const prevChannelId = 'channel2';
|
|
const data = {channel_id: channelId, prev_channel_id: prevChannelId, collapsed_threads_supported: true};
|
|
const expectedUrl = `${client.getChannelsRoute()}/members/me/view`;
|
|
const expectedOptions = {method: 'post', body: data};
|
|
|
|
await client.viewMyChannel(channelId, prevChannelId);
|
|
|
|
expect(client.doFetch).toHaveBeenCalledWith(expectedUrl, expectedOptions);
|
|
});
|
|
|
|
test('autocompleteChannels', async () => {
|
|
const teamId = 'team1';
|
|
const name = 'channelname';
|
|
const expectedUrl = `${client.getTeamRoute(teamId)}/channels/autocomplete?name=${name}`;
|
|
const expectedOptions = {method: 'get'};
|
|
|
|
await client.autocompleteChannels(teamId, name);
|
|
|
|
expect(client.doFetch).toHaveBeenCalledWith(expectedUrl, expectedOptions);
|
|
});
|
|
|
|
test('autocompleteChannelsForSearch', async () => {
|
|
const teamId = 'team1';
|
|
const name = 'channelname';
|
|
const expectedUrl = `${client.getTeamRoute(teamId)}/channels/search_autocomplete?name=${name}`;
|
|
const expectedOptions = {method: 'get'};
|
|
|
|
await client.autocompleteChannelsForSearch(teamId, name);
|
|
|
|
expect(client.doFetch).toHaveBeenCalledWith(expectedUrl, expectedOptions);
|
|
});
|
|
|
|
test('searchChannels', async () => {
|
|
const teamId = 'team1';
|
|
const term = 'searchterm';
|
|
const expectedUrl = `${client.getTeamRoute(teamId)}/channels/search`;
|
|
const expectedOptions = {method: 'post', body: {term}};
|
|
|
|
await client.searchChannels(teamId, term);
|
|
|
|
expect(client.doFetch).toHaveBeenCalledWith(expectedUrl, expectedOptions);
|
|
});
|
|
|
|
test('searchArchivedChannels', async () => {
|
|
const teamId = 'team1';
|
|
const term = 'searchterm';
|
|
const expectedUrl = `${client.getTeamRoute(teamId)}/channels/search_archived`;
|
|
const expectedOptions = {method: 'post', body: {term}};
|
|
|
|
await client.searchArchivedChannels(teamId, term);
|
|
|
|
expect(client.doFetch).toHaveBeenCalledWith(expectedUrl, expectedOptions);
|
|
});
|
|
|
|
test('searchAllChannels', async () => {
|
|
const term = 'searchterm';
|
|
const teamIds = ['team1', 'team2'];
|
|
const archivedOnly = true;
|
|
const queryParams = {include_deleted: false, system_console: false, exclude_default_channels: false};
|
|
const body = {
|
|
term,
|
|
team_ids: teamIds,
|
|
deleted: archivedOnly,
|
|
exclude_default_channels: true,
|
|
exclude_group_constrained: true,
|
|
public: true,
|
|
private: false,
|
|
};
|
|
const expectedUrl = `${client.getChannelsRoute()}/search${buildQueryString(queryParams)}`;
|
|
const expectedOptions = {method: 'post', body};
|
|
|
|
await client.searchAllChannels(term, teamIds, archivedOnly);
|
|
|
|
expect(client.doFetch).toHaveBeenCalledWith(expectedUrl, expectedOptions);
|
|
|
|
// Test with default values
|
|
const defaultExpectedOptions = {method: 'post', body: {...body, deleted: false}};
|
|
await client.searchAllChannels(term, teamIds);
|
|
expect(client.doFetch).toHaveBeenCalledWith(`${client.getChannelsRoute()}/search${buildQueryString(queryParams)}`, defaultExpectedOptions);
|
|
});
|
|
|
|
test('updateChannelMemberSchemeRoles', async () => {
|
|
const channelId = 'channel1';
|
|
const userId = 'user1';
|
|
const isSchemeUser = true;
|
|
const isSchemeAdmin = false;
|
|
const body = {scheme_user: isSchemeUser, scheme_admin: isSchemeAdmin};
|
|
const expectedUrl = `${client.getChannelMembersRoute(channelId)}/${userId}/schemeRoles`;
|
|
const expectedOptions = {method: 'put', body};
|
|
|
|
await client.updateChannelMemberSchemeRoles(channelId, userId, isSchemeUser, isSchemeAdmin);
|
|
|
|
expect(client.doFetch).toHaveBeenCalledWith(expectedUrl, expectedOptions);
|
|
});
|
|
|
|
test('getMemberInChannel', async () => {
|
|
const channelId = 'channel1';
|
|
const userId = 'user1';
|
|
const expectedUrl = `${client.getChannelMembersRoute(channelId)}/${userId}`;
|
|
const expectedOptions = {method: 'get'};
|
|
|
|
await client.getMemberInChannel(channelId, userId);
|
|
|
|
expect(client.doFetch).toHaveBeenCalledWith(expectedUrl, expectedOptions);
|
|
});
|
|
|
|
test('getGroupMessageMembersCommonTeams', async () => {
|
|
const channelId = 'channel1';
|
|
const expectedUrl = `${client.getChannelRoute(channelId)}/common_teams`;
|
|
const expectedOptions = {method: 'get'};
|
|
|
|
await client.getGroupMessageMembersCommonTeams(channelId);
|
|
|
|
expect(client.doFetch).toHaveBeenCalledWith(expectedUrl, expectedOptions);
|
|
});
|
|
|
|
test('convertGroupMessageToPrivateChannel', async () => {
|
|
const channelId = 'channel1';
|
|
const teamId = 'team1';
|
|
const displayName = 'Private Channel';
|
|
const name = 'private-channel';
|
|
const body = {
|
|
channel_id: channelId,
|
|
team_id: teamId,
|
|
display_name: displayName,
|
|
name,
|
|
};
|
|
const expectedUrl = `${client.getChannelRoute(channelId)}/convert_to_channel?team-id=${teamId}`;
|
|
const expectedOptions = {method: 'post', body};
|
|
|
|
await client.convertGroupMessageToPrivateChannel(channelId, teamId, displayName, name);
|
|
|
|
expect(client.doFetch).toHaveBeenCalledWith(expectedUrl, expectedOptions);
|
|
});
|
|
});
|