Files
mattermost-mobile/detox/e2e/support/ui/screen/email_notification_settings.ts

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;