mattermost-mobile/detox/e2e/support/utils/index.ts
Joseph Baylon 1d9c371bfb
Detox/E2E: Migrate e2e javascript to typescript (#6059)
* 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
2022-03-17 17:35:26 -07:00

78 lines
1.9 KiB
TypeScript

// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
// See LICENSE.txt for license information.
import {adminEmail, adminPassword, adminUsername} from '@support/test_config';
import {v4 as uuidv4} from 'uuid';
export * from './email';
/**
* Explicit `wait` should not normally used but made available for special cases.
* @param {number} ms - duration in millisecond
* @return {Promise} promise with timeout
*/
export const wait = async (ms: number): Promise<any> => {
return new Promise((resolve) => setTimeout(resolve, ms));
};
/**
* Check if android.
* @return {boolean} true if android
*/
export const isAndroid = (): boolean => {
return device.getPlatform() === 'android';
};
/**
* Check if ios.
* @return {boolean} true if ios
*/
export const isIos = (): boolean => {
return device.getPlatform() === 'ios';
};
/**
* Get random id.
* @param {number} length - length on random string to return, e.g. 6 (default)
* @return {string} random string
*/
export const getRandomId = (length = 6): string => {
const MAX_SUBSTRING_INDEX = 27;
return uuidv4().replace(/-/g, '').substring(MAX_SUBSTRING_INDEX - length, MAX_SUBSTRING_INDEX);
};
/**
* Capitalize first character of text.
* @param {string} text
* @return {string} capitalized text
*/
export const capitalize = (text: string): string => {
return text.charAt(0).toUpperCase() + text.slice(1);
};
/**
* Get admin account.
*/
export const getAdminAccount = () => {
return {
username: adminUsername,
password: adminPassword,
email: adminEmail,
};
};
const SECOND = 1000;
const MINUTE = 60 * 1000;
export const timeouts = {
HALF_SEC: SECOND / 2,
ONE_SEC: SECOND,
TWO_SEC: SECOND * 2,
FOUR_SEC: SECOND * 4,
TEN_SEC: SECOND * 10,
HALF_MIN: MINUTE / 2,
ONE_MIN: MINUTE,
TWO_MIN: MINUTE * 2,
FOUR_MIN: MINUTE * 4,
};