mattermost-mobile/detox/e2e/support/ui/screen/clock_display_settings.js
Elias Nahum 5ea470a235
V1 dependencies and bump to RN 0.67.2 (#5908)
* update dependencies

* eslint fixes

* Upgrade to RN 67

* update other deps

* Update to RN 0.67.2

* fix Android build (mmkv)

* Fix crash when root message is deleted from the thread screen

* Fix gif emoji playing at high speed on iOS ProMotion capable devices
2022-02-02 15:28:57 -03:00

65 lines
2.3 KiB
JavaScript

// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
// See LICENSE.txt for license information.
import {DisplaySettingsScreen} from '@support/ui/screen';
import {isAndroid} from '@support/utils';
class ClockDisplaySettingsScreen {
testID = {
clockDisplaySettingsScreen: 'clock_display_settings.screen',
backButton: 'screen.back.button',
militaryClockAction: 'clock_display_settings.military_clock.action',
normalClockAction: 'clock_display_settings.normal_clock.action',
// ANDROID ONLY
clockModal: 'clock_display_settings.clock.modal',
clockModalCancelButton: 'clock_display_settings.clock_modal_cancel.button',
clockModalSaveButton: 'clock_display_settings.clock_modal_save.button',
};
clockDisplaySettingsScreen = element(by.id(this.testID.clockDisplaySettingsScreen));
backButton = element(by.id(this.testID.backButton));
militaryClockAction = element(by.id(this.testID.militaryClockAction));
normalClockAction = element(by.id(this.testID.normalClockAction));
// ANDROID ONLY
clockModal = element(by.id(this.testID.clockModal));
clockModalCancelButton = element(by.id(this.testID.clockModalCancelButton));
clockModalSaveButton = element(by.id(this.testID.clockModalSaveButton));
getClockActionFor = (clockKey) => {
switch (clockKey) {
case 'military':
return this.militaryClockAction;
case 'normal':
return this.normalClockAction;
default:
throw new Error('Not a valid clock option: ' + clockKey);
}
};
toBeVisible = async () => {
if (isAndroid()) {
await expect(this.clockModal).toBeVisible();
return this.clockModal;
}
await expect(this.clockDisplaySettingsScreen).toBeVisible();
return this.clockDisplaySettingsScreen;
};
open = async () => {
// # Open clock display settings screen
await DisplaySettingsScreen.clockDisplayAction.tap();
return this.toBeVisible();
};
back = async () => {
await this.backButton.tap();
await expect(this.clockDisplaySettingsScreen).not.toBeVisible();
};
}
const clockDisplaySettingsScreen = new ClockDisplaySettingsScreen();
export default clockDisplaySettingsScreen;