mirror of
https://github.com/hanzoai/Detox.git
synced 2026-09-24 16:55:12 +00:00
93 lines
2.9 KiB
JavaScript
93 lines
2.9 KiB
JavaScript
const path = require('path');
|
|
const _ = require('lodash');
|
|
const { resolveConfig } = require('detox/internals');
|
|
|
|
const maxWorkersMap = {
|
|
'android.emulator': 3,
|
|
'android.genycloud': 5,
|
|
'android.genycloud-arm64': 2,
|
|
'ios.simulator': 2,
|
|
};
|
|
|
|
module.exports = async () => {
|
|
const config = await resolveConfig();
|
|
|
|
/** @type {import('jest-allure2-reporter').ReporterOptions} */
|
|
const jestAllure2ReporterOptions = {
|
|
extends: require.resolve('detox-allure2-adapter/preset-allure'),
|
|
overwrite: !process.env.CI,
|
|
testCase: {
|
|
labels: {
|
|
package: ({ filePath }) => `${filePath.slice(1, -1).join('.')}.${_.kebabCase(filePath.at(-1))}`,
|
|
testMethod: ({ testCase }) => testCase.fullName,
|
|
tag: ['e2e', ...config.configurationName.split('.')],
|
|
},
|
|
links: {
|
|
issue: 'https://github.com/wix/Detox/issues/{{name}}',
|
|
},
|
|
},
|
|
environment: async ({ $ }) => ({
|
|
'version.node': process.version,
|
|
'version.jest': await $.manifest('jest', 'version'),
|
|
'version.jest-metadata': await $.manifest('jest-metadata', 'version'),
|
|
'version.allure-reporter': require('jest-allure2-reporter/package.json').version,
|
|
'version.detox-allure2-adapter': require('detox-allure2-adapter/package.json').version,
|
|
..._(process.env)
|
|
.pickBy((_1, key) => key.match(/detox/i))
|
|
.mapKeys((_1, key) => 'env.' + key)
|
|
.value()
|
|
}),
|
|
};
|
|
|
|
const reporters = [
|
|
'<rootDir>/runners/jest/reporter',
|
|
['jest-allure2-reporter', jestAllure2ReporterOptions],
|
|
];
|
|
|
|
if (process.env.DISABLE_JUNIT_REPORTER !== '1') {
|
|
reporters.push('<rootDir>/test/node_modules/jest-junit');
|
|
}
|
|
|
|
let deviceType = config.device.type;
|
|
if (config.configurationName.endsWith('arm64')) {
|
|
deviceType += '-arm64';
|
|
}
|
|
|
|
return {
|
|
'rootDir': path.join(__dirname, '../..'),
|
|
'testEnvironment': './test/e2e/testEnvironment.js',
|
|
'testEnvironmentOptions': {
|
|
'eventListeners': [
|
|
'jest-metadata/environment-listener',
|
|
'jest-allure2-reporter/environment-listener',
|
|
[require.resolve('detox-allure2-adapter'), {
|
|
deviceLogs: true,
|
|
deviceScreenshots: true,
|
|
deviceVideos: false,
|
|
}],
|
|
require.resolve('./utils/rnSkipper'),
|
|
]
|
|
},
|
|
'testRunner': './test/node_modules/jest-circus/build/runner',
|
|
'testMatch': [
|
|
'<rootDir>/test/e2e/**/*.test.{js,ts}',
|
|
'<rootDir>/test/e2e-unhappy/**/*.test.{js,ts}',
|
|
],
|
|
'setupFilesAfterEnv': ['./test/e2e/setup.js'],
|
|
'globalSetup': '<rootDir>/runners/jest/globalSetup',
|
|
'globalTeardown': '<rootDir>/runners/jest/globalTeardown',
|
|
'testTimeout': 120000,
|
|
'reporters': reporters,
|
|
'verbose': true,
|
|
'bail': false,
|
|
'maxWorkers': process.env.CI ? maxWorkersMap[deviceType] || 1 : 1,
|
|
'collectCoverageFrom': [
|
|
'src/**/*.js',
|
|
'!**/__test/**',
|
|
'!**/__mocks__/**',
|
|
'!**/*.mock.js',
|
|
'!**/*.test.js'
|
|
]
|
|
};
|
|
};
|