* Detox/E2E: Migrate to typescript * Add jest.config.js * Add moduleMapper to config.json * Add cookie jar to axios client, fix tsconfig.json and default_config.json * Take keyboard into consideration; clean test for now for this migration PR * Revert changes on path_builder * Attempt to fix dep issues * Update detox dep * Added missing @type dev dependencies * Fix dep order * Fix unit tests * Added dynamic year to email.ts
51 lines
2.4 KiB
TypeScript
51 lines
2.4 KiB
TypeScript
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
|
|
// See LICENSE.txt for license information.
|
|
|
|
import {timeouts} from '@support/utils';
|
|
|
|
class ServerScreen {
|
|
testID = {
|
|
serverScreen: 'server.screen',
|
|
headerTitleAddServer: 'server_header.title.add_server',
|
|
headerTitleConnectToServer: 'server_header.title.connect_to_server',
|
|
headerWelcome: 'server_header.welcome',
|
|
headerDescription: 'server_header.description',
|
|
serverUrlInput: 'server_form.server_url.input',
|
|
serverUrlInputError: 'server_form.server_url.input.error',
|
|
serverDisplayNameInput: 'server_form.server_display_name.input',
|
|
serverDisplayNameInputError: 'server_form.server_display_name.input.error',
|
|
displayHelp: 'server_form.display_help',
|
|
connectButton: 'server_form.connect.button',
|
|
connectButtonDisabled: 'server_form.connect.button.disabled',
|
|
};
|
|
|
|
serverScreen = element(by.id(this.testID.serverScreen));
|
|
headerTitleAddServer = element(by.id(this.testID.headerTitleAddServer));
|
|
headerTitleConnectToServer = element(by.id(this.testID.headerTitleConnectToServer));
|
|
headerWelcome = element(by.id(this.testID.headerWelcome));
|
|
headerDescription = element(by.id(this.testID.headerDescription));
|
|
serverUrlInput = element(by.id(this.testID.serverUrlInput));
|
|
serverUrlInputError = element(by.id(this.testID.serverUrlInputError));
|
|
serverDisplayNameInput = element(by.id(this.testID.serverDisplayNameInput));
|
|
serverDisplayNameInputError = element(by.id(this.testID.serverDisplayNameInputError));
|
|
displayHelp = element(by.id(this.testID.displayHelp));
|
|
connectButton = element(by.id(this.testID.connectButton));
|
|
connectButtonDisabled = element(by.id(this.testID.connectButtonDisabled));
|
|
|
|
toBeVisible = async () => {
|
|
await waitFor(this.serverScreen).toExist().withTimeout(timeouts.TEN_SEC);
|
|
await waitFor(this.serverUrlInput).toBeVisible().withTimeout(timeouts.TEN_SEC);
|
|
|
|
return this.serverScreen;
|
|
};
|
|
|
|
connectToServer = async (serverUrl: string, serverDisplayName: string) => {
|
|
await this.toBeVisible();
|
|
await this.serverUrlInput.replaceText(serverUrl);
|
|
await this.serverDisplayNameInput.replaceText(serverDisplayName);
|
|
await this.connectButton.tap();
|
|
};
|
|
}
|
|
|
|
const serverScreen = new ServerScreen();
|
|
export default serverScreen;
|