diff --git a/CHANGELOG.md b/CHANGELOG.md index 7e147b7289c6..97d26190c5e0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,10 @@ - `[jest-cli]` Watch plugins now have access to a broader range of global configuration options in their `updateConfigAndRun` callbacks, so they can provide a wider set of extra features ([#6473](https://github.com/facebook/jest/pull/6473)) +### Fixes + +- `[pretty-format]` Fix formatting of invalid Date objects ([#6635](https://github.com/facebook/jest/pull/6635)) + ## 23.4.0 ### Features diff --git a/packages/pretty-format/src/__tests__/pretty_format.test.js b/packages/pretty-format/src/__tests__/pretty_format.test.js index 3e1a1feb7146..b3ec64c760dd 100644 --- a/packages/pretty-format/src/__tests__/pretty_format.test.js +++ b/packages/pretty-format/src/__tests__/pretty_format.test.js @@ -234,6 +234,11 @@ describe('prettyFormat()', () => { expect(prettyFormat(val)).toEqual('2001-09-09T01:46:40.000Z'); }); + it('prints an invalid date', () => { + const val = new Date(Infinity); + expect(prettyFormat(val)).toEqual('Date { NaN }'); + }); + it('prints an empty object', () => { const val = {}; expect(prettyFormat(val)).toEqual('Object {}'); diff --git a/packages/pretty-format/src/index.js b/packages/pretty-format/src/index.js index aa20f01e3056..1d99da498eec 100644 --- a/packages/pretty-format/src/index.js +++ b/packages/pretty-format/src/index.js @@ -146,7 +146,7 @@ function printBasicValue( return printSymbol(val); } if (toStringed === '[object Date]') { - return toISOString.call(val); + return isNaN(+val) ? 'Date { NaN }' : toISOString.call(val); } if (toStringed === '[object Error]') { return printError(val);