MM-39720_Invite People - phase 1

This commit is contained in:
Julian Mondragon
2022-10-31 17:25:52 -05:00
parent f033a28eb2
commit 647cd4c9c2
17 changed files with 224 additions and 11 deletions

View File

@@ -6,11 +6,13 @@ class PlusMenu {
browseChannelsItem: 'plus_menu_item.browse_channels',
createNewChannelItem: 'plus_menu_item.create_new_channel',
openDirectMessageItem: 'plus_menu_item.open_direct_message',
invitePeopleToTeamItem: 'plus_menu_item.invite_people_to_team',
};
browseChannelsItem = element(by.id(this.testID.browseChannelsItem));
createNewChannelItem = element(by.id(this.testID.createNewChannelItem));
openDirectMessageItem = element(by.id(this.testID.openDirectMessageItem));
invitePeopleToTeamItem = element(by.id(this.testID.invitePeopleToTeamItem));
}
const plusMenu = new PlusMenu();

View File

@@ -39,6 +39,7 @@ class ChannelListScreen {
browseChannelsItem = PlusMenu.browseChannelsItem;
createNewChannelItem = PlusMenu.createNewChannelItem;
openDirectMessageItem = PlusMenu.openDirectMessageItem;
invitePeopleToTeamItem = PlusMenu.invitePeopleToTeamItem;
getCategoryCollapsed = (categoryKey: string) => {
return element(by.id(`${this.testID.categoryHeaderPrefix}${categoryKey}.collapsed.true`));

View File

@@ -0,0 +1,76 @@
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
// See LICENSE.txt for license information.
// *******************************************************************
// - [#] indicates a test step (e.g. # Go to a screen)
// - [*] indicates an assertion (e.g. * Check the title)
// - Use element testID when selecting an element. Create one if none.
// *******************************************************************
import {Setup} from '@support/server_api';
import {
serverOneUrl,
siteOneUrl,
} from '@support/test_config';
import {
ChannelListScreen,
HomeScreen,
LoginScreen,
ServerScreen,
} from '@support/ui/screen';
import {isIos} from '@support/utils';
import {expect} from 'detox';
function systemDialog(label: string) {
if (device.getPlatform() === 'ios') {
return element(by.label(label)).atIndex(0);
}
return element(by.text(label));
}
describe('Teams - Invite people', () => {
const serverOneDisplayName = 'Server 1';
let testTeam: any;
let testUser: any;
beforeAll(async () => {
const {team, user} = await Setup.apiInit(siteOneUrl);
testTeam = team;
testUser = user;
// # Log in to server
await ServerScreen.connectToServer(serverOneUrl, serverOneDisplayName);
await LoginScreen.login(testUser);
});
beforeEach(async () => {
// * Verify on channel list screen
await ChannelListScreen.toBeVisible();
});
afterAll(async () => {
// # Close share dialog
await ChannelListScreen.headerTeamDisplayName.tap();
// # Log out
await HomeScreen.logout();
});
it('MM-T4729_2 - should be able to share a URL invite to the team', async () => {
// # Open plus menu
await ChannelListScreen.headerPlusButton.tap();
// * Verify invite people to team item is available
await expect(ChannelListScreen.invitePeopleToTeamItem).toExist();
// # Tap on invite people to team item
await ChannelListScreen.invitePeopleToTeamItem.tap();
if (isIos()) {
// * Verify share dialog is open
await expect(systemDialog(`Join the ${testTeam.display_name} team`)).toExist();
}
});
});