forked from Ivasoft/mattermost-mobile
127 lines
5.0 KiB
TypeScript
127 lines
5.0 KiB
TypeScript
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
|
|
// See LICENSE.txt for license information.
|
|
|
|
import {ChannelListScreen} from '@support/ui/screen';
|
|
import {timeouts} from '@support/utils';
|
|
import {expect} from 'detox';
|
|
|
|
class InviteScreen {
|
|
testID = {
|
|
inviteScreen: 'invite.screen',
|
|
screenSummary: 'invite.screen.summary',
|
|
screenSelection: 'invite.screen.selection',
|
|
closeButton: 'invite.close.button',
|
|
sendButton: 'invite.send.button',
|
|
teamIcon: 'invite.team_icon',
|
|
teamDisplayName: 'invite.team_display_name',
|
|
serverDisplayName: 'invite.server_display_name',
|
|
shareLinkButton: 'invite.share_link.button',
|
|
searchBarTitle: 'invite.search_bar_title',
|
|
searchBarInput: 'invite.search_bar_input',
|
|
selectedItems: 'invite.selected_items',
|
|
selectedItemPrefix: 'invite.selected_item',
|
|
searchList: 'invite.search_list',
|
|
searchListItemPrefix: 'invite.search_list_item.',
|
|
searchListTextItemPrefix: 'invite.search_list_text_item',
|
|
searchListUserItemPrefix: 'invite.search_list_user_item',
|
|
searchListNoResultsPrefix: 'invite.search_list_no_results',
|
|
summaryReportPrefix: 'invite.summary_report',
|
|
summaryReportTextItemPrefix: 'invite.summary_report.text_item',
|
|
summaryReportUserItemPrefix: 'invite.summary_report.user_item',
|
|
};
|
|
|
|
inviteScreen = element(by.id(this.testID.inviteScreen));
|
|
screenSummary = element(by.id(this.testID.screenSummary));
|
|
screenSelection = element(by.id(this.testID.screenSelection));
|
|
closeButton = element(by.id(this.testID.closeButton));
|
|
sendButton = element(by.id(this.testID.sendButton));
|
|
teamIcon = element(by.id(this.testID.teamIcon));
|
|
teamDisplayName = element(by.id(this.testID.teamDisplayName));
|
|
serverDisplayName = element(by.id(this.testID.serverDisplayName));
|
|
shareLinkButton = element(by.id(this.testID.shareLinkButton));
|
|
searchBarTitle = element(by.id(this.testID.searchBarTitle));
|
|
searchBarInput = element(by.id(this.testID.searchBarInput));
|
|
selectedItems = element(by.id(this.testID.selectedItems));
|
|
selectedItemPrefix = element(by.id(this.testID.selectedItemPrefix));
|
|
searchList = element(by.id(this.testID.searchList));
|
|
searchListItemPrefix = element(by.id(this.testID.searchListItemPrefix));
|
|
searchListTextItemPrefix = element(by.id(this.testID.searchListTextItemPrefix));
|
|
searchListUserItemPrefix = element(by.id(this.testID.searchListUserItemPrefix));
|
|
searchListNoResultsPrefix = element(by.id(this.testID.searchListNoResultsPrefix));
|
|
summaryReportTextItemPrefix = element(by.id(this.testID.summaryReportTextItemPrefix));
|
|
summaryReportUserItemPrefix = element(by.id(this.testID.summaryReportUserItemPrefix));
|
|
|
|
getSearchListTextItem = (id: string) => {
|
|
return element(by.id(`${this.testID.searchListTextItemPrefix}.${id}`));
|
|
};
|
|
|
|
getSearchListTextItemText = (id: string) => {
|
|
return element(by.id(`${this.testID.searchListTextItemPrefix}.text.${id}`));
|
|
};
|
|
|
|
getSearchListUserItem = (id: string) => {
|
|
return element(by.id(`${this.testID.searchListUserItemPrefix}.${id}`));
|
|
};
|
|
|
|
getSearchListUserItemText = (id: string) => {
|
|
return element(by.id(`${this.testID.searchListUserItemPrefix}.${id}.username`));
|
|
};
|
|
|
|
getSearchListNoResults = (id: string) => {
|
|
return element(by.id(`${this.testID.searchListNoResultsPrefix}.${id}`));
|
|
};
|
|
|
|
getSearchListNoResultsText = (id: string) => {
|
|
return element(by.id(`${this.testID.searchListNoResultsPrefix}.text.${id}`));
|
|
};
|
|
|
|
getSelectedItem = (id: string) => {
|
|
return element(by.id(`${this.testID.selectedItemPrefix}.${id}`));
|
|
};
|
|
|
|
getSummaryReportSent = () => {
|
|
return element(by.id(`${this.testID.summaryReportPrefix}.sent`));
|
|
};
|
|
|
|
getSummaryReportNotSent = () => {
|
|
return element(by.id(`${this.testID.summaryReportPrefix}.not_sent`));
|
|
};
|
|
|
|
getSummaryReportTextItem = (id: string) => {
|
|
return element(by.id(`${this.testID.summaryReportTextItemPrefix}.${id}`));
|
|
};
|
|
|
|
getSummaryReportTextItemText = (id: string) => {
|
|
return element(by.id(`${this.testID.summaryReportTextItemPrefix}.text.${id}`));
|
|
};
|
|
|
|
getSummaryReportUserItem = (id: string) => {
|
|
return element(by.id(`${this.testID.summaryReportUserItemPrefix}.${id}`));
|
|
};
|
|
|
|
getSummaryReportUserItemText = (id: string) => {
|
|
return element(by.id(`${this.testID.summaryReportUserItemPrefix}.${id}.username`));
|
|
};
|
|
|
|
toBeVisible = async () => {
|
|
await waitFor(this.inviteScreen).toExist().withTimeout(timeouts.TEN_SEC);
|
|
|
|
return this.inviteScreen;
|
|
};
|
|
|
|
open = async () => {
|
|
await ChannelListScreen.headerPlusButton.tap();
|
|
await ChannelListScreen.invitePeopleToTeamItem.tap();
|
|
|
|
return this.toBeVisible();
|
|
};
|
|
|
|
close = async () => {
|
|
await this.closeButton.tap();
|
|
await expect(this.inviteScreen).not.toBeVisible();
|
|
};
|
|
}
|
|
|
|
const inviteScreen = new InviteScreen();
|
|
export default inviteScreen;
|