mattermost-mobile/detox/e2e/support/ui/screen/theme_display_settings.ts

63 lines
2.9 KiB
TypeScript

// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
// See LICENSE.txt for license information.
import {DisplaySettingsScreen} from '@support/ui/screen';
import {timeouts} from '@support/utils';
import {expect} from 'detox';
class ThemeDisplaySettingsScreen {
testID = {
themeDisplaySettingsScreen: 'theme_display_settings.screen',
backButton: 'screen.back.button',
scrollView: 'theme_display_settings.scroll_view',
denimOption: 'theme_display_settings.denim.option',
denimOptionSelected: 'theme_display_settings.denim.option.selected',
sapphireOption: 'theme_display_settings.sapphire.option',
sapphireOptionSelected: 'theme_display_settings.sapphire.option.selected',
quartzOption: 'theme_display_settings.quartz.option',
quartzOptionSelected: 'theme_display_settings.quartz.option.selected',
indigoOption: 'theme_display_settings.indigo.option',
indigoOptionSelected: 'theme_display_settings.indigo.option.selected',
onyxOption: 'theme_display_settings.onyx.option',
onyxOptionSelected: 'theme_display_settings.onyx.option.selected',
customOption: 'theme_display_settings.custom.option',
customOptionSelected: 'theme_display_settings.custom.option.selected',
};
themeDisplaySettingsScreen = element(by.id(this.testID.themeDisplaySettingsScreen));
backButton = element(by.id(this.testID.backButton));
scrollView = element(by.id(this.testID.scrollView));
denimOption = element(by.id(this.testID.denimOption));
denimOptionSelected = element(by.id(this.testID.denimOptionSelected));
sapphireOption = element(by.id(this.testID.sapphireOption));
sapphireOptionSelected = element(by.id(this.testID.sapphireOptionSelected));
quartzOption = element(by.id(this.testID.quartzOption));
quartzOptionSelected = element(by.id(this.testID.quartzOptionSelected));
indigoOption = element(by.id(this.testID.indigoOption));
indigoOptionSelected = element(by.id(this.testID.indigoOptionSelected));
onyxOption = element(by.id(this.testID.onyxOption));
onyxOptionSelected = element(by.id(this.testID.onyxOptionSelected));
customOption = element(by.id(this.testID.customOption));
customOptionSelected = element(by.id(this.testID.customOptionSelected));
toBeVisible = async () => {
await waitFor(this.themeDisplaySettingsScreen).toExist().withTimeout(timeouts.TEN_SEC);
return this.themeDisplaySettingsScreen;
};
open = async () => {
// # Open theme display settings screen
await DisplaySettingsScreen.themeOption.tap();
return this.toBeVisible();
};
back = async () => {
await this.backButton.tap();
await expect(this.themeDisplaySettingsScreen).not.toBeVisible();
};
}
const themeDisplaySettingsScreen = new ThemeDisplaySettingsScreen();
export default themeDisplaySettingsScreen;