Skip to content

Commit

Permalink
Add new Jest --compact-console flag for DevTools tests (#22495)
Browse files Browse the repository at this point in the history
  • Loading branch information
Brian Vaughn authored Oct 5, 2021
1 parent f2c3811 commit cadf94d
Show file tree
Hide file tree
Showing 2 changed files with 39 additions and 0 deletions.
20 changes: 20 additions & 0 deletions packages/react-devtools-shared/src/__tests__/setupTests.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,31 @@
* @flow
*/

import {CustomConsole} from '@jest/console';

import type {
BackendBridge,
FrontendBridge,
} from 'react-devtools-shared/src/bridge';

// Argument is serialized when passed from jest-cli script through to setupTests.
const compactConsole = process.env.compactConsole === 'true';
if (compactConsole) {
const formatter = (type, message) => {
switch (type) {
case 'error':
return '\x1b[31m' + message + '\x1b[0m';
case 'warn':
return '\x1b[33m' + message + '\x1b[0m';
case 'log':
default:
return message;
}
};

global.console = new CustomConsole(process.stdout, process.stderr, formatter);
}

const env = jasmine.getEnv();
env.beforeEach(() => {
global.mockClipboardCopy = jest.fn();
Expand Down
19 changes: 19 additions & 0 deletions scripts/jest/jest-cli.js
Original file line number Diff line number Diff line change
Expand Up @@ -97,6 +97,13 @@ const argv = yargs
requiresArg: true,
type: 'string',
},
compactConsole: {
alias: 'c',
describe: 'Compact console output (hide file locations).',
requiresArg: false,
type: 'boolean',
default: false,
},
}).argv;

function logError(message) {
Expand Down Expand Up @@ -159,6 +166,11 @@ function validateOptions() {
logError('DevTool tests require --build.');
success = false;
}
} else {
if (argv.compactConsole) {
logError('Only DevTool tests support compactConsole flag.');
success = false;
}
}

if (isWWWConfig()) {
Expand Down Expand Up @@ -284,6 +296,10 @@ function getEnvars() {
RELEASE_CHANNEL: argv.releaseChannel.match(/modern|experimental/)
? 'experimental'
: 'stable',

// Pass this flag through to the confit environment
// so the base config can conditionally load the console setup file.
compactConsole: argv.compactConsole,
};

if (argv.prod) {
Expand All @@ -306,7 +322,9 @@ function main() {
console.log(chalk.red(`\nPlease run: \`${argv.deprecated}\` instead.\n`));
return;
}

validateOptions();

const args = getCommandArgs();
const envars = getEnvars();
const env = Object.entries(envars).map(([k, v]) => `${k}=${v}`);
Expand Down Expand Up @@ -334,6 +352,7 @@ function main() {
stdio: 'inherit',
env: {...envars, ...process.env},
});

// Ensure we close our process when we get a failure case.
jest.on('close', code => {
// Forward the exit code from the Jest process.
Expand Down

0 comments on commit cadf94d

Please sign in to comment.