react/scripts/jest/config.build-devtools.js
Brian Vaughn 36cab2720a
DevTools: Improved "native" component stacks (#18656)
* DevTools console override handles new component stack format

DevTools does not attempt to mimic the default browser console format for its component stacks but it does properly detect the new format for Chrome, Firefox, and Safari.
2020-04-21 11:46:11 -07:00

73 lines
2.2 KiB
JavaScript

'use strict';
const {readdirSync, statSync} = require('fs');
const {join} = require('path');
const baseConfig = require('./config.base');
// Find all folders in packages/* with package.json
const packagesRoot = join(__dirname, '..', '..', 'packages');
const packages = readdirSync(packagesRoot).filter(dir => {
if (dir.charAt(0) === '.') {
return false;
}
if (dir.includes('react-devtools')) {
return false;
}
const packagePath = join(packagesRoot, dir, 'package.json');
let stat;
try {
stat = statSync(packagePath);
} catch (err) {
return false;
}
return stat.isFile();
});
// Create a module map to point React packages to the build output
const moduleNameMapper = {};
// Map packages to bundles
packages.forEach(name => {
// Root entry point
moduleNameMapper[`^${name}$`] = `<rootDir>/build/node_modules/${name}`;
// Named entry points
moduleNameMapper[
`^${name}\/([^\/]+)$`
] = `<rootDir>/build/node_modules/${name}/$1`;
});
// Allow tests to import shared code (e.g. feature flags, getStackByFiberInDevAndProd)
moduleNameMapper['^shared/([^/]+)$'] = '<rootDir>/packages/shared/$1';
moduleNameMapper['^react-reconciler/([^/]+)$'] =
'<rootDir>/packages/react-reconciler/$1';
module.exports = Object.assign({}, baseConfig, {
// Redirect imports to the compiled bundles
moduleNameMapper,
// Don't run bundle tests on -test.internal.* files
testPathIgnorePatterns: ['/node_modules/', '-test.internal.js$'],
// Exclude the build output from transforms
transformIgnorePatterns: ['/node_modules/', '<rootDir>/build/'],
testRegex: 'packages/react-devtools-shared/src/__tests__/[^]+.test.js$',
snapshotSerializers: [
require.resolve(
'../../packages/react-devtools-shared/src/__tests__/inspectedElementSerializer.js'
),
require.resolve(
'../../packages/react-devtools-shared/src/__tests__/storeSerializer.js'
),
],
setupFiles: [
...baseConfig.setupFiles,
require.resolve('./setupTests.build.js'),
require.resolve(
'../../packages/react-devtools-shared/src/__tests__/setupEnv.js'
),
],
setupFilesAfterEnv: [
require.resolve(
'../../packages/react-devtools-shared/src/__tests__/setupTests.js'
),
],
});