diff --git a/packages/jest-matcher-utils/src/index.js b/packages/jest-matcher-utils/src/index.js index d5d272d830ab..3a058b2bbd06 100644 --- a/packages/jest-matcher-utils/src/index.js +++ b/packages/jest-matcher-utils/src/index.js @@ -31,7 +31,9 @@ export type ValueType = | 'undefined'; const EXPECTED_COLOR = chalk.green; +const EXPECTED_BG = chalk.bgGreen; const RECEIVED_COLOR = chalk.red; +const RECEIVED_BG = chalk.bgRed; const NUMBERS = [ 'zero', @@ -110,8 +112,17 @@ const stringify = (object: any, maxDepth?: number = 10): string => { : result; }; -const printReceived = (object: any) => RECEIVED_COLOR(stringify(object)); -const printExpected = (value: any) => EXPECTED_COLOR(stringify(value)); +const highlightTrailingWhitespace = (text: string, bgColor: Function): string => + text.replace(/\s+$/gm, bgColor('$&')); + +const printReceived = (object: any) => highlightTrailingWhitespace( + RECEIVED_COLOR(stringify(object)), + RECEIVED_BG, +); +const printExpected = (value: any) => highlightTrailingWhitespace( + EXPECTED_COLOR(stringify(value)), + EXPECTED_BG, +); const printWithType = ( name: string, @@ -192,13 +203,16 @@ const matcherHint = ( }; module.exports = { + EXPECTED_BG, EXPECTED_COLOR, + RECEIVED_BG, RECEIVED_COLOR, ensureActualIsNumber, ensureExpectedIsNumber, ensureNoExpected, ensureNumbers, getType, + highlightTrailingWhitespace, matcherHint, pluralize, printExpected, diff --git a/packages/jest-matchers/src/toThrowMatchers.js b/packages/jest-matchers/src/toThrowMatchers.js index b3268231bcb4..cd6bfe4d70bf 100644 --- a/packages/jest-matchers/src/toThrowMatchers.js +++ b/packages/jest-matchers/src/toThrowMatchers.js @@ -19,8 +19,10 @@ const { separateMessageFromStack, } = require('jest-util'); const { + RECEIVED_BG, RECEIVED_COLOR, getType, + highlightTrailingWhitespace, matcherHint, printExpected, printWithType, @@ -149,7 +151,9 @@ const printActualErrorMessage = error => { return ( `Instead, it threw:\n` + RECEIVED_COLOR( - ' ' + message + formatStackTrace(stack, { + ' ' + + highlightTrailingWhitespace(message, RECEIVED_BG) + + formatStackTrace(stack, { noStackTrace: false, rootDir: process.cwd(), testRegex: '',