127 lines
4.9 KiB
TypeScript
127 lines
4.9 KiB
TypeScript
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
|
|
// See LICENSE.txt for license information.
|
|
|
|
import * as path from 'path';
|
|
|
|
import {defineConfig} from 'cypress';
|
|
|
|
export default defineConfig({
|
|
chromeWebSecurity: false,
|
|
defaultCommandTimeout: 30000,
|
|
downloadsFolder: 'tests/downloads',
|
|
fixturesFolder: 'tests/fixtures',
|
|
numTestsKeptInMemory: 0,
|
|
retries: {
|
|
|
|
// retries for cypress:run
|
|
runMode: 1,
|
|
|
|
// No retries for cypress:open
|
|
openMode: 0,
|
|
},
|
|
screenshotsFolder: 'tests/screenshots',
|
|
taskTimeout: 60000,
|
|
video: true,
|
|
videoCompression: true,
|
|
videosFolder: 'tests/videos',
|
|
viewportWidth: 1300,
|
|
allowCypressEnv: false,
|
|
expose: {
|
|
adminEmail: process.env.CYPRESS_adminEmail || 'sysadmin@sample.mattermost.com',
|
|
adminUsername: process.env.CYPRESS_adminUsername || 'sysadmin',
|
|
adminPassword: process.env.CYPRESS_adminPassword || 'Sys@dmin-sample1',
|
|
allowedUntrustedInternalConnections: 'localhost',
|
|
cwsURL: 'http://localhost:8076',
|
|
cwsAPIURL: 'http://localhost:8076',
|
|
dbClient: 'postgres',
|
|
dbConnection: 'postgres://mmuser:mostest@localhost/mattermost_test?sslmode=disable&connect_timeout=10',
|
|
elasticsearchConnectionURL: 'http://localhost:9200',
|
|
firstTest: false,
|
|
keycloakAppName: 'mattermost',
|
|
keycloakBaseUrl: 'http://localhost:8484',
|
|
keycloakUsername: 'mmuser',
|
|
keycloakPassword: 'mostest',
|
|
ldapServer: 'localhost',
|
|
ldapPort: 389,
|
|
minioAccessKey: 'minioaccesskey',
|
|
minioSecretKey: 'miniosecretkey',
|
|
minioS3Bucket: 'mattermost-test',
|
|
minioS3Endpoint: 'localhost:9000',
|
|
minioS3SSL: false,
|
|
numberOfTrialUsers: 100,
|
|
pushNotificationServer: 'https://push-test.mattermost.com',
|
|
resetBeforeTest: false,
|
|
runLDAPSync: true,
|
|
secondServerURL: 'http://localhost/s/p',
|
|
serverEdition: 'Team',
|
|
serverClusterEnabled: false,
|
|
serverClusterName: 'mm_dev_cluster',
|
|
serverClusterHostCount: 3,
|
|
smtpUrl: 'http://localhost:9001',
|
|
webhookBaseUrl: 'http://localhost:3000',
|
|
},
|
|
e2e: {
|
|
setupNodeEvents(on, config) {
|
|
// Custom webpack preprocessor for TypeScript 6 + @/ path aliases.
|
|
// @cypress/webpack-preprocessor@7.1.0 already handles TS6's
|
|
// downlevelIteration deprecation (cypress-io/cypress#33575).
|
|
// We add: ts-loader for .ts files, resolve extensions, and @/ alias.
|
|
// When Cypress >= 15.14 ships, the only custom piece needed is the @/ alias.
|
|
const webpackPreprocessor = require('@cypress/webpack-preprocessor');
|
|
|
|
const webpackOptions = {
|
|
resolve: {
|
|
extensions: ['.ts', '.js', '.json'],
|
|
alias: {
|
|
'@': path.resolve(__dirname, 'tests'),
|
|
},
|
|
},
|
|
module: {
|
|
rules: [
|
|
{
|
|
test: /\.tsx?$/,
|
|
exclude: /node_modules/,
|
|
use: [
|
|
{
|
|
loader: 'ts-loader',
|
|
options: {
|
|
transpileOnly: true,
|
|
},
|
|
},
|
|
],
|
|
},
|
|
{
|
|
test: /\.jsx?$/,
|
|
exclude: /node_modules/,
|
|
use: [
|
|
{
|
|
loader: 'babel-loader',
|
|
options: {
|
|
presets: ['@babel/preset-env'],
|
|
},
|
|
},
|
|
],
|
|
},
|
|
],
|
|
},
|
|
// Restore Node.js polyfills (crypto, process, path, etc.)
|
|
// that webpack 5 no longer provides by default.
|
|
plugins: [
|
|
new (require('node-polyfill-webpack-plugin'))(),
|
|
new (require('webpack').ProvidePlugin)({
|
|
process: 'process/browser',
|
|
Buffer: ['buffer', 'Buffer'],
|
|
}),
|
|
],
|
|
};
|
|
|
|
on('file:preprocessor', webpackPreprocessor({webpackOptions}));
|
|
return require('./tests/plugins/index.js')(on, config);
|
|
},
|
|
baseUrl: process.env.MM_SERVICESETTINGS_SITEURL || 'http://localhost:8065',
|
|
excludeSpecPattern: '**/node_modules/**/*',
|
|
specPattern: 'tests/integration/**/*_spec.{js,ts}',
|
|
supportFile: 'tests/support/index.js',
|
|
testIsolation: false,
|
|
},
|
|
});
|