mattermost-mobile/detox/e2e/support/ui/screen/recent_mentions.js

52 lines
1.6 KiB
JavaScript

// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
// See LICENSE.txt for license information.
import {
PostOptions,
SettingsSidebar,
} from '@support/ui/component';
import {SearchResultPostScreen} from '@support/ui/screen';
class RecentMentionsScreen {
testID = {
recentMentionsScreen: 'recent_mentions.screen',
closeSettingsButton: 'close.settings.button',
}
recentMentionsScreen = element(by.id(this.testID.recentMentionsScreen));
closeSettingsButton = element(by.id(this.testID.closeSettingsButton));
getSearchResultPostItem = (postId, text, postProfileOptions = {}) => {
return SearchResultPostScreen.getPost(postId, text, postProfileOptions);
}
toBeVisible = async () => {
await expect(this.recentMentionsScreen).toBeVisible();
return this.recentMentionsScreen;
}
open = async () => {
// # Open recent mentions screen
await SettingsSidebar.recentMentionsAction.tap();
return this.toBeVisible();
}
close = async () => {
await this.closeSettingsButton.tap();
await expect(this.recentMentionsScreen).not.toBeVisible();
}
openPostOptionsFor = async (postId, text) => {
const {searchResultPostItem} = await this.getSearchResultPostItem(postId, text);
await expect(searchResultPostItem).toBeVisible();
// # Open post options
await searchResultPostItem.longPress();
await PostOptions.toBeVisible();
}
}
const recentMentionsScreen = new RecentMentionsScreen();
export default recentMentionsScreen;