Move /e2e -> /e2e-tests
Этот коммит содержится в:
98
e2e-tests/cypress/tests/utils/index.js
Обычный файл
98
e2e-tests/cypress/tests/utils/index.js
Обычный файл
@@ -0,0 +1,98 @@
|
||||
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
|
||||
// See LICENSE.txt for license information.
|
||||
|
||||
/* eslint-disable no-loop-func, quote-props */
|
||||
|
||||
import {v4 as uuidv4} from 'uuid';
|
||||
|
||||
import messageMenusData from '../fixtures/hooks/message_menus.json';
|
||||
import messageMenusWithDatasourceData from '../fixtures/hooks/message_menus_with_datasource.json';
|
||||
|
||||
export * from './constants';
|
||||
export * from './email';
|
||||
export * from './file';
|
||||
export * from './plugins';
|
||||
|
||||
/**
|
||||
* @param {Number} length - length on random string to return, e.g. 7 (default)
|
||||
* @return {String} random string
|
||||
*/
|
||||
export function getRandomId(length = 7) {
|
||||
const MAX_SUBSTRING_INDEX = 27;
|
||||
|
||||
return uuidv4().replace(/-/g, '').substring(MAX_SUBSTRING_INDEX - length, MAX_SUBSTRING_INDEX);
|
||||
}
|
||||
|
||||
export function getRandomLetter(length) {
|
||||
return Array.from({length}, () => String.fromCharCode(97 + Math.floor(Math.random() * 26))).join('');
|
||||
}
|
||||
|
||||
export function getMessageMenusPayload({dataSource, options, prefix = Date.now()} = {}) {
|
||||
let data;
|
||||
if (dataSource) {
|
||||
data = messageMenusWithDatasourceData;
|
||||
data.attachments[0].actions[0].data_source = dataSource;
|
||||
data.attachments[0].pretext = `${prefix}: This is attachment pretext with ${dataSource} options`;
|
||||
data.attachments[0].text = `${prefix}: This is attachment text with ${dataSource} options`;
|
||||
} else {
|
||||
data = messageMenusData;
|
||||
data.attachments[0].pretext = `${prefix}: This is attachment pretext with basic options`;
|
||||
data.attachments[0].text = `${prefix}: This is attachment text with basic options`;
|
||||
|
||||
if (options) {
|
||||
data.attachments[0].actions[0].options = options;
|
||||
}
|
||||
}
|
||||
|
||||
const callbackUrl = Cypress.env().webhookBaseUrl + '/message_menus';
|
||||
data.attachments[0].actions[0].integration.url = callbackUrl;
|
||||
|
||||
return data;
|
||||
}
|
||||
|
||||
export function hexToRgbArray(hex) {
|
||||
var rgbArr = hex.replace('#', '').match(/.{1,2}/g);
|
||||
return [
|
||||
parseInt(rgbArr[0], 16),
|
||||
parseInt(rgbArr[1], 16),
|
||||
parseInt(rgbArr[2], 16),
|
||||
];
|
||||
}
|
||||
|
||||
export function rgbArrayToString(rgbArr) {
|
||||
return `rgb(${rgbArr[0]}, ${rgbArr[1]}, ${rgbArr[2]})`;
|
||||
}
|
||||
|
||||
export const reUrl = /(https?:\/\/[^ ]*)/;
|
||||
|
||||
const userAgent = () => window.navigator.userAgent;
|
||||
|
||||
export function isWindows() {
|
||||
return userAgent().indexOf('Windows') !== -1;
|
||||
}
|
||||
|
||||
export function isMac() {
|
||||
return userAgent().indexOf('Macintosh') !== -1;
|
||||
}
|
||||
|
||||
// Stubs out the clipboard so that we can intercept copy events. Note that this only stubs out calls to
|
||||
// navigator.clipboard.writeText and not document.execCommand.
|
||||
export function stubClipboard() {
|
||||
const clipboard = {contents: '', wasCalled: false};
|
||||
|
||||
cy.window().then((win) => {
|
||||
if (!win.navigator.clipboard) {
|
||||
win.navigator.clipboard = {
|
||||
writeText: () => {}, //eslint-disable-line no-empty-function
|
||||
};
|
||||
}
|
||||
|
||||
cy.stub(win.navigator.clipboard, 'writeText', (link) => {
|
||||
clipboard.wasCalled = true;
|
||||
clipboard.contents = link;
|
||||
return Promise.resolve(true);
|
||||
});
|
||||
});
|
||||
|
||||
return cy.wrap(clipboard);
|
||||
}
|
||||
Ссылка в новой задаче
Block a user