mattermost-mobile/detox/e2e/support/ui/screen/edit_profile.ts
Joseph Baylon 25ae8fdb88
Detox/E2E: Account e2e tests in Gekidou (#6584)
* Detox/E2E: Account e2e tests in Gekidou

* Fix suite title

* Changed ldap port to number

* Fix testIDs for settings

* Added zephyr test case keys
2022-08-18 03:18:46 -07:00

73 lines
3.3 KiB
TypeScript

// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
// See LICENSE.txt for license information.
import {ProfilePicture} from '@support/ui/component';
import {AccountScreen} from '@support/ui/screen';
import {timeouts} from '@support/utils';
import {expect} from 'detox';
class EditProfileScreen {
testID = {
editProfileScreen: 'edit_profile.screen',
editProfilePrefix: 'edit_profile.',
closeButton: 'close.edit_profile.button',
saveButton: 'edit_profile.save.button',
scrollView: 'edit_profile.scroll_view',
firstNameInput: 'edit_profile_form.first_name.input',
firstNameInputDisabled: 'edit_profile_form.first_name.input.disabled',
lastNameInput: 'edit_profile_form.last_name.input',
lastNameInputDisabled: 'edit_profile_form.last_name.input.disabled',
usernameInput: 'edit_profile_form.username.input',
usernameInputDisabled: 'edit_profile_form.username.input.disabled',
emailInput: 'edit_profile_form.email.input',
emailInputDisabled: 'edit_profile_form.email.input.disabled',
emailInputDescription: 'edit_profile_form.email.input.description',
nicknameInput: 'edit_profile_form.nickname.input',
nicknameInputDisabled: 'edit_profile_form.nickname.input.disabled',
positionInput: 'edit_profile_form.position.input',
positionInputDisabled: 'edit_profile_form.position.input.disabled',
};
editProfileScreen = element(by.id(this.testID.editProfileScreen));
closeButton = element(by.id(this.testID.closeButton));
saveButton = element(by.id(this.testID.saveButton));
scrollView = element(by.id(this.testID.scrollView));
firstNameInput = element(by.id(this.testID.firstNameInput));
firstNameInputDisabled = element(by.id(this.testID.firstNameInputDisabled));
lastNameInput = element(by.id(this.testID.lastNameInput));
lastNameInputDisabled = element(by.id(this.testID.lastNameInputDisabled));
usernameInput = element(by.id(this.testID.usernameInput));
usernameInputDisabled = element(by.id(this.testID.usernameInputDisabled));
emailInput = element(by.id(this.testID.emailInput));
emailInputDisabled = element(by.id(this.testID.emailInputDisabled));
emailInputDescription = element(by.id(this.testID.emailInputDescription));
nicknameInput = element(by.id(this.testID.nicknameInput));
nicknameInputDisabled = element(by.id(this.testID.nicknameInputDisabled));
positionInput = element(by.id(this.testID.positionInput));
positionInputDisabled = element(by.id(this.testID.positionInputDisabled));
getEditProfilePicture = (userId: string) => {
return element(ProfilePicture.getProfilePictureItemMatcher(this.testID.editProfilePrefix, userId));
};
toBeVisible = async () => {
await waitFor(this.editProfileScreen).toExist().withTimeout(timeouts.TEN_SEC);
return this.editProfileScreen;
};
open = async () => {
// # Open edit profile screen
await AccountScreen.yourProfileOption.tap();
return this.toBeVisible();
};
close = async () => {
await this.closeButton.tap();
await expect(this.editProfileScreen).not.toBeVisible();
};
}
const editProfileScreen = new EditProfileScreen();
export default editProfileScreen;