diff --git a/CHANGELOG.md b/CHANGELOG.md index 5687739574bb..4d1ac5017653 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,7 @@ ### Fixes - `[babel-jest]` Make `getCacheKey()` take into account `createTransformer` options ([#6699](https://github.com/facebook/jest/pull/6699)) +- `[jest-jasmine2]` Use prettier through `require` instead of `localRequire`. Fixes `matchInlineSnapshot` where prettier dependencies like `path` and `fs` are mocked with `jest.mock`. ([#6776](https://github.com/facebook/jest/pull/6776)) - `[docs]` Fix contributors link ([#6711](https://github.com/facebook/jest/pull/6711)) - `[website]` Fix website versions page to link to correct language ([#6734](https://github.com/facebook/jest/pull/6734)) diff --git a/e2e/__tests__/to_match_inline_snapshot.test.js b/e2e/__tests__/to_match_inline_snapshot.test.js index f02ad696c316..54b0173ed6fd 100644 --- a/e2e/__tests__/to_match_inline_snapshot.test.js +++ b/e2e/__tests__/to_match_inline_snapshot.test.js @@ -163,3 +163,20 @@ test('supports async tests', () => { expect(status).toBe(0); expect(fileAfter).toMatchSnapshot(); }); + +// issue: https://github.com/facebook/jest/issues/6702 +test('handles mocking native modules prettier relies on', () => { + const filename = 'mockFail.test.js'; + const test = ` + jest.mock('path', () => ({})); + jest.mock('fs', () => ({})); + test('inline snapshots', () => { + expect({}).toMatchInlineSnapshot(); + }); + `; + + writeFiles(TESTS_DIR, {[filename]: test}); + const {stderr, status} = runJest(DIR, ['-w=1', '--ci=false', filename]); + expect(stderr).toMatch('1 snapshot written from 1 test suite.'); + expect(status).toBe(0); +}); diff --git a/packages/jest-jasmine2/src/setup_jest_globals.js b/packages/jest-jasmine2/src/setup_jest_globals.js index d839eb296f9e..c25b638ffd70 100644 --- a/packages/jest-jasmine2/src/setup_jest_globals.js +++ b/packages/jest-jasmine2/src/setup_jest_globals.js @@ -102,7 +102,8 @@ export default ({ expand, getBabelTraverse: () => require('babel-traverse').default, getPrettier: () => - config.prettierPath ? localRequire(config.prettierPath) : null, + // $FlowFixMe dynamic require + config.prettierPath ? require(config.prettierPath) : null, updateSnapshot, }); setState({snapshotState, testPath});