mattermost/e2e-tests/cypress/tests/plugins/index.js
Agniva De Sarker ae9e6174e5
[AI assisted]: Improve system console statistics performance (#29899)
```release-note
NONE
```

Co-authored-by: Matthew Birtch <mattbirtch@gmail.com>
2025-02-04 21:54:01 +05:30

94 lines
2.9 KiB
JavaScript

// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
// See LICENSE.txt for license information.
/* eslint-disable no-console */
const fs = require('fs');
const clientRequest = require('./client_request');
const {
dbGetActiveUserSessions,
dbGetUser,
dbGetUserSession,
dbUpdateUserSession,
dbRefreshPostStats,
} = require('./db_request');
const externalRequest = require('./external_request').default;
const {fileExist, writeToFile} = require('./file_util');
const getPdfContent = require('./get_pdf_content');
const getRecentEmail = require('./get_recent_email');
const keycloakRequest = require('./keycloak_request');
const oktaRequest = require('./okta_request');
const postBotMessage = require('./post_bot_message');
const postIncomingWebhook = require('./post_incoming_webhook');
const postMessageAs = require('./post_message_as');
const postListOfMessages = require('./post_list_of_messages');
const reactToMessageAs = require('./react_to_message_as');
const {
shellFind,
shellRm,
shellUnzip,
} = require('./shell');
const urlHealthCheck = require('./url_health_check');
const log = (message) => {
console.log(message);
return null;
};
module.exports = (on, config) => {
on('task', {
clientRequest,
dbGetActiveUserSessions,
dbGetUser,
dbGetUserSession,
dbUpdateUserSession,
dbRefreshPostStats,
externalRequest,
fileExist,
writeToFile,
getPdfContent,
getRecentEmail,
keycloakRequest,
log,
oktaRequest,
postBotMessage,
postIncomingWebhook,
postMessageAs,
postListOfMessages,
urlHealthCheck,
reactToMessageAs,
shellFind,
shellRm,
shellUnzip,
});
on('before:browser:launch', (browser = {}, launchOptions) => {
if (browser.name === 'chrome' && !config.chromeWebSecurity) {
launchOptions.args.push('--disable-features=CrossSiteDocumentBlockingIfIsolating,CrossSiteDocumentBlockingAlways,IsolateOrigins,site-per-process');
launchOptions.args.push('--load-extension=tests/extensions/Ignore-X-Frame-headers');
}
if (browser.family === 'chromium' && browser.name !== 'electron') {
launchOptions.args.push('--disable-dev-shm-usage');
}
return launchOptions;
});
// https://docs.cypress.io/guides/guides/screenshots-and-videos#Delete-videos-for-specs-without-failing-or-retried-tests
on('after:spec', (spec, results) => {
if (results && results.video) {
// Do we have failures for any retry attempts?
const failures = results.tests.some((test) =>
test.attempts.some((attempt) => attempt.state === 'failed'),
);
if (!failures) {
// delete the video if the spec passed and no tests retried
fs.unlinkSync(results.video);
}
}
});
return config;
};