forked from Ivasoft/mattermost-mobile
70 lines
3.4 KiB
TypeScript
70 lines
3.4 KiB
TypeScript
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
|
|
// See LICENSE.txt for license information.
|
|
|
|
import {NotificationSettingsScreen} from '@support/ui/screen';
|
|
import {timeouts} from '@support/utils';
|
|
import {expect} from 'detox';
|
|
|
|
class EmailNotificationSettingsScreen {
|
|
testID = {
|
|
emailNotificationSettingsScreen: 'email_notification_settings.screen',
|
|
backButton: 'screen.back.button',
|
|
scrollView: 'email_notification_settings.scroll_view',
|
|
immediatelyOption: 'email_notification_settings.immediately.option',
|
|
immediatelyOptionSelected: 'email_notification_settings.immediately.option.selected',
|
|
everyFifteenMinutesOption: 'email_notification_settings.every_fifteen_minutes.option',
|
|
everyFifteenMinutesOptionSelected: 'email_notification_settings.every_fifteen_minutes.option.selected',
|
|
everyHourOption: 'email_notification_settings.every_hour.option',
|
|
everyHourOptionSelected: 'email_notification_settings.every_hour.option.selected',
|
|
neverOption: 'email_notification_settings.never.option',
|
|
neverOptionSelected: 'email_notification_settings.never.option.selected',
|
|
emailThreadsOptionToggledOff: 'email_notification_settings.email_threads.option.toggled.false',
|
|
emailThreadsOptionToggledOn: 'email_notification_settings.email_threads.option.toggled.true',
|
|
};
|
|
|
|
emailNotificationSettingsScreen = element(by.id(this.testID.emailNotificationSettingsScreen));
|
|
backButton = element(by.id(this.testID.backButton));
|
|
scrollView = element(by.id(this.testID.scrollView));
|
|
immediatelyOption = element(by.id(this.testID.immediatelyOption));
|
|
immediatelyOptionSelected = element(by.id(this.testID.immediatelyOptionSelected));
|
|
everyFifteenMinutesOption = element(by.id(this.testID.everyFifteenMinutesOption));
|
|
everyFifteenMinutesOptionSelected = element(by.id(this.testID.everyFifteenMinutesOptionSelected));
|
|
everyHourOption = element(by.id(this.testID.everyHourOption));
|
|
everyHourOptionSelected = element(by.id(this.testID.everyHourOptionSelected));
|
|
neverOption = element(by.id(this.testID.neverOption));
|
|
neverOptionSelected = element(by.id(this.testID.neverOptionSelected));
|
|
emailThreadsOptionToggledOff = element(by.id(this.testID.emailThreadsOptionToggledOff));
|
|
emailThreadsOptionToggledOn = element(by.id(this.testID.emailThreadsOptionToggledOn));
|
|
|
|
toBeVisible = async () => {
|
|
await waitFor(this.emailNotificationSettingsScreen).toExist().withTimeout(timeouts.TEN_SEC);
|
|
|
|
return this.emailNotificationSettingsScreen;
|
|
};
|
|
|
|
open = async () => {
|
|
// # Open email notification settings screen
|
|
await NotificationSettingsScreen.emailNotificationsOption.tap();
|
|
|
|
return this.toBeVisible();
|
|
};
|
|
|
|
back = async () => {
|
|
await this.backButton.tap();
|
|
await expect(this.emailNotificationSettingsScreen).not.toBeVisible();
|
|
};
|
|
|
|
toggleEmailThreadsOptionOn = async () => {
|
|
await this.emailThreadsOptionToggledOff.tap();
|
|
await expect(this.emailThreadsOptionToggledOn).toBeVisible();
|
|
};
|
|
|
|
toggleEmailThreadsOptionOff = async () => {
|
|
await this.emailThreadsOptionToggledOn.tap();
|
|
await expect(this.emailThreadsOptionToggledOff).toBeVisible();
|
|
};
|
|
}
|
|
|
|
const emailNotificationSettingsScreen = new EmailNotificationSettingsScreen();
|
|
export default emailNotificationSettingsScreen;
|