52 lines
1.6 KiB
JavaScript
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;
|