mattermost-mobile/detox/e2e/support/ui/component/autocomplete.js
Joseph Baylon 8c8348ea0b
MM-35681 Detox/E2E: Add e2e for bot account, mention badges, at mention (#5539)
* MM-35681 Detox/E2E: Add e2e for bot account, mention badges, at mention

* Fix return for apiUpdateUserActiveStatus

* Fix param comment for apiCreateBot

* Move it blocks to the top
2021-07-15 09:10:08 -07:00

58 lines
2.6 KiB
JavaScript

// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
// See LICENSE.txt for license information.
import ProfilePicture from './profile_picture';
class Autocomplete {
testID = {
atMentionItemPrefix: 'autocomplete.at_mention.item.',
atMentionItemProfilePicturePrefix: 'at_mention_item.profile_picture.',
channelMentionItemPrefix: 'autocomplete.channel_mention.item.',
autocomplete: 'autocomplete',
atMentionItemName: 'at_mention_item.name',
atMentionItemUsername: 'at_mention_item.username',
atMentionSuggestionList: 'at_mention_suggestion.list',
channelMentionSuggestionList: 'channel_mention_suggestion.list',
dateSuggestion: 'autocomplete.date_suggestion',
emojiSuggestionList: 'emoji_suggestion.list',
slashSuggestionList: 'slash_suggestion.list',
}
autocomplete = element(by.id(this.testID.autocomplete));
atMentionSuggestionList = element(by.id(this.testID.atMentionSuggestionList));
channelMentionSuggestionList = element(by.id(this.testID.channelMentionSuggestionList));
dateSuggestion = element(by.id(this.testID.dateSuggestion));
emojiSuggestionList = element(by.id(this.testID.emojiSuggestionList));
slashSuggestionList = element(by.id(this.testID.slashSuggestionList));
getAtMentionItem = (userId) => {
const atMentionItemMatcher = by.id(`${this.testID.atMentionItemPrefix}${userId}`);
const atMentionItemNameMatcher = by.id(this.testID.atMentionItemName).withAncestor(atMentionItemMatcher);
const atMentionItemProfilePictureMatcher = ProfilePicture.getProfilePictureItemMatcher(this.testID.atMentionItemProfilePicturePrefix, userId).withAncestor(atMentionItemMatcher);
const atMentionItemUsernameMatcher = by.id(this.testID.atMentionItemUsername).withAncestor(atMentionItemMatcher);
return {
atMentionItem: element(atMentionItemMatcher),
atMentionItemName: element(atMentionItemNameMatcher),
atMentionItemProfilePicture: element(atMentionItemProfilePictureMatcher),
atMentionItemUsername: element(atMentionItemUsernameMatcher),
};
}
getChannelMentionItem = (channelId) => {
return element(by.id(`${this.testID.channelMentionItemPrefix}${channelId}`));
}
toBeVisible = async (isVisible = true) => {
if (isVisible) {
await expect(this.autocomplete.atIndex(0)).toBeVisible();
return this.autocomplete;
}
await expect(this.autocomplete).not.toBeVisible();
return null;
}
}
const autocomplete = new Autocomplete();
export default autocomplete;