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

47 lines
1.6 KiB
TypeScript

// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
// See LICENSE.txt for license information.
import {PostOptionsScreen} from '@support/ui/screen';
import {timeouts} from '@support/utils';
import {expect} from 'detox';
class EditPostScreen {
testID = {
editPostScreen: 'edit_post.screen',
closeButton: 'close.edit_post.button',
saveButton: 'edit_post.save.button',
messageInput: 'edit_post.message.input',
messageInputError: 'edit_post.message.input.error',
messageInputErrorExtra: 'edit_post.message.input.error.extra',
};
editPostScreen = element(by.id(this.testID.editPostScreen));
closeButton = element(by.id(this.testID.closeButton));
saveButton = element(by.id(this.testID.saveButton));
messageInput = element(by.id(this.testID.messageInput));
messageInputError = element(by.id(this.testID.messageInputError));
messageInputErrorExtra = element(by.id(this.testID.messageInputErrorExtra));
toBeVisible = async () => {
await waitFor(this.editPostScreen).toExist().withTimeout(timeouts.TEN_SEC);
await waitFor(this.messageInput).toBeVisible().withTimeout(timeouts.TEN_SEC);
return this.editPostScreen;
};
open = async () => {
// # Open edit post screen
await PostOptionsScreen.editPostOption.tap();
return this.toBeVisible();
};
close = async () => {
await this.closeButton.tap();
await expect(this.editPostScreen).not.toBeVisible();
};
}
const editPostScreen = new EditPostScreen();
export default editPostScreen;