Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support jest-preset.js files within Node modules. #6185

Merged
merged 10 commits into from
May 22, 2018

Conversation

robin-drexler
Copy link
Contributor

Updated (rebased) version of #4499

Summary

Currently, Jest configuration may be a .json or .js file, but presets only support .json. This PR makes a change to also support jest-preset.js files within node modules.

This change would allow modules to make use of process.env.NODE_ENV.

@SimenB
Copy link
Member

SimenB commented May 16, 2018

(you can run yarn lint:md to fix node 8 ci)

@codecov-io
Copy link

codecov-io commented May 16, 2018

Codecov Report

Merging #6185 into master will increase coverage by 0.01%.
The diff coverage is 100%.

Impacted file tree graph

@@            Coverage Diff             @@
##           master    #6185      +/-   ##
==========================================
+ Coverage   64.37%   64.39%   +0.01%     
==========================================
  Files         219      219              
  Lines        8453     8456       +3     
  Branches        4        4              
==========================================
+ Hits         5442     5445       +3     
  Misses       3010     3010              
  Partials        1        1
Impacted Files Coverage Δ
packages/jest-config/src/normalize.js 93.85% <100%> (+0.07%) ⬆️
packages/jest-runtime/src/index.js 72.89% <0%> (ø) ⬆️

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 08f7904...6786998. Read the comment docs.

@robin-drexler robin-drexler changed the title [WIP]Support jest-preset.js files within Node modules. Support jest-preset.js files within Node modules. May 16, 2018
@robin-drexler
Copy link
Contributor Author

robin-drexler commented May 16, 2018

Additionally added the deletion of require cache in fb62732 as suggested by @cpojer in #4499 (comment)

@SimenB
Copy link
Member

SimenB commented May 16, 2018

Could you update the changelog?

And maybe set up an integration test showing it works?

@robin-drexler
Copy link
Contributor Author

@SimenB I gave adding integration tests a shot, however I wasn't able to come up with a solution that did not require to create fake node_modules folders for the presets.

What do you say?


test('supports js preset', () => {
const result = runJest('presets/js');
console.log(result);
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe not this?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Whoops, removed it. :)

@robin-drexler
Copy link
Contributor Author

Not intended to put any pressure on you, just curious what is your general practice when it comes to merging and releasing PRs? Any docs on that? Thanks. :)

@SimenB
Copy link
Member

SimenB commented May 18, 2018

I don't think we have docs on it.

Merging is done by FB employees (unless it's small stuff like docs and test fixes, or someone at FB approves the PR). Release is harder. Right now we're gearing up for a new major (coming really soon). We want to try releasing from CI more often, but currently don't have anything set up (#5079)

// Force re-evaluation to support multiple projects
try {
if (presetModule) {
delete require.cache[require.resolve(presetModule)];
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you change this to delete before and require after? What you have here is smart, but if user code requires the preset in between, the next re-require of the preset will not actually re-evaluate the module code.

@anescobar1991
Copy link

So is all that is needed for this to be merged docs?

@cpojer
Copy link
Member

cpojer commented May 21, 2018

This comment: #6185 (comment) was still not addressed in the latest version of the code. That's the only thing left for me.

Copy link
Member

@cpojer cpojer left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@robin-drexler mind fixing up the require cache thing from my comment?

@@ -64,15 +64,23 @@ const setupPreset = (
let preset;
const presetPath = replaceRootDirInPath(options.rootDir, optionsPreset);
const presetModule = Resolver.findNodeModule(
presetPath.endsWith(JSON_EXTENSION)
presetPath.charAt(0) === '.'
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You can do [0] instead of charAt. We aren't running this code in IE6.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

IE6 <3

You can also do .startsWith('.')

@robin-drexler
Copy link
Contributor Author

robin-drexler commented May 22, 2018

@cpojer If I did understand your comment correctly, I addressed in: 7296a55

Or am I missing something?

wopian pushed a commit to wopian/eslint-config-wopian that referenced this pull request May 25, 2018
This Pull Request updates dependency [jest](https://github.com/facebook/jest) from `~22.4.0` to `~23.0.0`



<details>
<summary>Release Notes</summary>

### [`v23.0.0`](https://github.com/facebook/jest/blob/master/CHANGELOG.md#&#8203;2300)
[Compare Source](jestjs/jest@2745e3e...614f739)
##### Features

* `[expect]` Expose `getObjectSubset`, `iterableEquality`, and `subsetEquality`
  ([#&#8203;6210](`jestjs/jest#6210))
* `[jest-snapshot]` Add snapshot property matchers
  ([#&#8203;6210](`jestjs/jest#6210))
* `[jest-config]` Support jest-preset.js files within Node modules
  ([#&#8203;6185](`jestjs/jest#6185))
* `[jest-cli]` Add `--detectOpenHandles` flag which enables Jest to potentially
  track down handles keeping it open after tests are complete.
  ([#&#8203;6130](`jestjs/jest#6130))
* `[jest-jasmine2]` Add data driven testing based on `jest-each`
  ([#&#8203;6102](`jestjs/jest#6102))
* `[jest-matcher-utils]` Change "suggest to equal" message to be more advisory
  ([#&#8203;6103](`jestjs/jest#6103))
* `[jest-message-util]` Don't ignore messages with `vendor` anymore
  ([#&#8203;6117](`jestjs/jest#6117))
* `[jest-validate]` Get rid of `jest-config` dependency
  ([#&#8203;6067](`jestjs/jest#6067))
* `[jest-validate]` Adds option to inject `deprecationEntries`
  ([#&#8203;6067](`jestjs/jest#6067))
* `[jest-snapshot]` [**BREAKING**] Concatenate name of test, optional snapshot
  name and count ([#&#8203;6015](`jestjs/jest#6015))
* `[jest-runtime]` Allow for transform plugins to skip the definition process
  method if createTransformer method was defined.
  ([#&#8203;5999](`jestjs/jest#5999))
* `[expect]` Add stack trace for async errors
  ([#&#8203;6008](`jestjs/jest#6008))
* `[jest-jasmine2]` Add stack trace for timeouts
  ([#&#8203;6008](`jestjs/jest#6008))
* `[jest-jasmine2]` Add stack trace for thrown non-`Error`s
  ([#&#8203;6008](`jestjs/jest#6008))
* `[jest-runtime]` Prevent modules from marking themselves as their own parent
  ([#&#8203;5235](`jestjs/jest#5235))
* `[jest-mock]` Add support for auto-mocking generator functions
  ([#&#8203;5983](`jestjs/jest#5983))
* `[expect]` Add support for async matchers
   ([#&#8203;5919](`jestjs/jest#5919))
* `[expect]` Suggest toContainEqual
  ([#&#8203;5948](`jestjs/jest#5953))
* `[jest-config]` Export Jest's default options
  ([#&#8203;5948](`jestjs/jest#5948))
* `[jest-editor-support]` Move `coverage` to `ProjectWorkspace.collectCoverage`
  ([#&#8203;5929](`jestjs/jest#5929))
* `[jest-editor-support]` Add `coverage` option to runner
  ([#&#8203;5836](`jestjs/jest#5836))
* `[jest-haste-map]` Support extracting dynamic `import`s
  ([#&#8203;5883](`jestjs/jest#5883))
* `[expect]` Improve output format for mismatchedArgs in mock/spy calls.
  ([#&#8203;5846](`jestjs/jest#5846))
* `[jest-cli]` Add support for using `--coverage` in combination with watch
  mode, `--onlyChanged`, `--findRelatedTests` and more
  ([#&#8203;5601](`jestjs/jest#5601))
* `[jest-jasmine2]` [**BREAKING**] Adds error throwing and descriptive errors to
  `it`/ `test` for invalid arguments. `[jest-circus]` Adds error throwing and
  descriptive errors to `it`/ `test` for invalid arguments
  ([#&#8203;5558](`jestjs/jest#5558))
* `[jest-matcher-utils]` Add `isNot` option to `matcherHint` function
  ([#&#8203;5512](`jestjs/jest#5512))
* `[jest-config]` Add `<rootDir>` to runtime files not found error report
  ([#&#8203;5693](`jestjs/jest#5693))
* `[expect]` Make toThrow matcher pass only if Error object is returned from
  promises ([#&#8203;5670](`jestjs/jest#5670))
* `[expect]` Add isError to utils
  ([#&#8203;5670](`jestjs/jest#5670))
* `[expect]` Add inverse matchers (`expect.not.arrayContaining`, etc.,
  [#&#8203;5517](`jestjs/jest#5517))
* `[expect]` `expect.extend` now also extends asymmetric matchers
  ([#&#8203;5503](`jestjs/jest#5503))
* `[jest-mock]` Update `spyOnProperty` to support spying on the prototype chain
  ([#&#8203;5753](`jestjs/jest#5753))
* `[jest-mock]` Add tracking of return values in the `mock` property
  ([#&#8203;5752](`jestjs/jest#5752))
* `[jest-mock]` Add tracking of thrown errors in the `mock` property
  ([#&#8203;5764](`jestjs/jest#5764))
* `[expect]`Add nthCalledWith spy matcher
  ([#&#8203;5605](`jestjs/jest#5605))
* `[jest-cli]` Add `isSerial` property that runners can expose to specify that
  they can not run in parallel
  ([#&#8203;5706](`jestjs/jest#5706))
* `[expect]` Add `.toBeCalledTimes` and `toHaveBeenNthCalledWith` aliases
  ([#&#8203;5826](`jestjs/jest#5826))
* `[jest-cli]` Interactive Snapshot Mode improvements
  ([#&#8203;5864](`jestjs/jest#5864))
* `[jest-editor-support]` Add `no-color` option to runner
  ([#&#8203;5909](`jestjs/jest#5909))
* `[jest-jasmine2]` Pretty-print non-Error object errors
  ([#&#8203;5980](`jestjs/jest#5980))
* `[jest-message-util]` Include column in stack frames
  ([#&#8203;5889](`jestjs/jest#5889))
* `[expect]` Introduce toStrictEqual
  ([#&#8203;6032](`jestjs/jest#6032))
* `[expect]` Add return matchers
  ([#&#8203;5879](`jestjs/jest#5879))
* `[jest-cli]` Improve snapshot summaries
  ([#&#8203;6181](`jestjs/jest#6181))
* `[expect]` Include custom mock names in error messages
  ([#&#8203;6199](`jestjs/jest#6199))
* `[jest-diff]` Support returning diff from oneline strings
  ([#&#8203;6221](`jestjs/jest#6221))
* `[expect]` Improve return matchers
  ([#&#8203;6172](`jestjs/jest#6172))
* `[jest-cli]` Overhaul watch plugin hooks names
  ([#&#8203;6249](`jestjs/jest#6249))
* `[jest-mock]` Include tracked call results in serialized mock
  ([#&#8203;6244](`jestjs/jest#6244))
##### Fixes

* `[jest-cli]` Fix stdin encoding to utf8 for watch plugins.
  ([#&#8203;6253](`jestjs/jest#6253))
* `[expect]` Better detection of DOM Nodes for equality
  ([#&#8203;6246](`jestjs/jest#6246))
* `[jest-cli]` Fix misleading action description for F key when in "only failed
  tests" mode. ([#&#8203;6167](`jestjs/jest#6167))
* `[jest-worker]` Stick calls to workers before processing them
  ([#&#8203;6073](`jestjs/jest#6073))
* `[babel-plugin-jest-hoist]` Allow using `console` global variable
  ([#&#8203;6075](`jestjs/jest#6075))
* `[jest-jasmine2]` Always remove node core message from assert stack traces
  ([#&#8203;6055](`jestjs/jest#6055))
* `[expect]` Add stack trace when `expect.assertions` and `expect.hasAssertions`
  causes test failures. ([#&#8203;5997](`jestjs/jest#5997))
* `[jest-runtime]` Throw a more useful error when trying to require modules
  after the test environment is torn down
  ([#&#8203;5888](`jestjs/jest#5888))
* `[jest-mock]` [**BREAKING**] Replace timestamps with `invocationCallOrder`
  ([#&#8203;5867](`jestjs/jest#5867))
* `[jest-jasmine2]` Install `sourcemap-support` into normal runtime to catch
  runtime errors ([#&#8203;5945](`jestjs/jest#5945))
* `[jest-jasmine2]` Added assertion error handling inside `afterAll hook`
  ([#&#8203;5884](`jestjs/jest#5884))
* `[jest-cli]` Remove the notifier actions in case of failure when not in watch
  mode. ([#&#8203;5861](`jestjs/jest#5861))
* `[jest-mock]` Extend .toHaveBeenCalled return message with outcome
  ([#&#8203;5951](`jestjs/jest#5951))
* `[jest-runner]` Assign `process.env.JEST_WORKER_ID="1"` when in runInBand mode
  ([#&#8203;5860](`jestjs/jest#5860))
* `[jest-cli]` Add descriptive error message when trying to use
  `globalSetup`/`globalTeardown` file that doesn't export a function.
  ([#&#8203;5835](`jestjs/jest#5835))
* `[expect]` Do not rely on `instanceof RegExp`, since it will not work for
  RegExps created inside of a different VM
  ([#&#8203;5729](`jestjs/jest#5729))
* `[jest-resolve]` Update node module resolution algorithm to correctly handle
  symlinked paths ([#&#8203;5085](`jestjs/jest#5085))
* `[jest-editor-support]` Update `Settings` to use spawn in shell option
  ([#&#8203;5658](`jestjs/jest#5658))
* `[jest-cli]` Improve the error message when 2 projects resolve to the same
  config ([#&#8203;5674](`jestjs/jest#5674))
* `[jest-runtime]` remove retainLines from coverage instrumentation
  ([#&#8203;5692](`jestjs/jest#5692))
* `[jest-cli]` Fix update snapshot issue when using watchAll
  ([#&#8203;5696](`jestjs/jest#5696))
* `[expect]` Fix rejects.not matcher
  ([#&#8203;5670](`jestjs/jest#5670))
* `[jest-runtime]` Prevent Babel warnings on large files
  ([#&#8203;5702](`jestjs/jest#5702))
* `[jest-mock]` Prevent `mockRejectedValue` from causing unhandled rejection
  ([#&#8203;5720](`jestjs/jest#5720))
* `[pretty-format]` Handle React fragments better
  ([#&#8203;5816](`jestjs/jest#5816))
* `[pretty-format]` Handle formatting of `React.forwardRef` and `Context`
  components ([#&#8203;6093](`jestjs/jest#6093))
* `[jest-cli]` Switch collectCoverageFrom back to a string
  ([#&#8203;5914](`jestjs/jest#5914))
* `[jest-regex-util]` Fix handling regex symbols in tests path on Windows
  ([#&#8203;5941](`jestjs/jest#5941))
* `[jest-util]` Fix handling of NaN/Infinity in mock timer delay
  ([#&#8203;5966](`jestjs/jest#5966))
* `[jest-resolve]` Generalise test for package main entries equivalent to ".".
  ([#&#8203;5968](`jestjs/jest#5968))
* `[jest-config]` Ensure that custom resolvers are used when resolving the
  configuration ([#&#8203;5976](`jestjs/jest#5976))
* `[website]` Fix website docs
  ([#&#8203;5853](`jestjs/jest#5853))
* `[expect]` Fix isEqual Set and Map to compare object values and keys
  regardless of order ([#&#8203;6150](`jestjs/jest#6150))
* `[pretty-format]` [**BREAKING**] Remove undefined props from React elements
  ([#&#8203;6162](`jestjs/jest#6162))
* `[jest-haste-map]` Properly resolve mocked node modules without package.json
  defined ([#&#8203;6232](`jestjs/jest#6232))
##### Chore & Maintenance

* `[jest-runner]` Move sourcemap installation from `jest-jasmine2` to
  `jest-runner` ([#&#8203;6176](`jestjs/jest#6176))
* `[jest-cli]` Use yargs's built-in `version` instead of rolling our own
  ([#&#8203;6215](`jestjs/jest#6215))
* `[docs]` Add explanation on how to mock methods not implemented in JSDOM
* `[jest-jasmine2]` Simplify `Env.execute` and TreeProcessor to setup and clean
  resources for the top suite the same way as for all of the children suites
  ([#&#8203;5885](`jestjs/jest#5885))
* `[babel-jest]` [**BREAKING**] Always return object from transformer
  ([#&#8203;5991](`jestjs/jest#5991))
* `[*]` Run Prettier on compiled output
  ([#&#8203;5858](`jestjs/jest#3497))
* `[jest-cli]` Add fileChange hook for plugins
  ([#&#8203;5708](`jestjs/jest#5708))
* `[docs]` Add docs on using `jest.mock(...)`
  ([#&#8203;5648](`jestjs/jest#5648))
* `[docs]` Mention Jest Puppeteer Preset
  ([#&#8203;5722](`jestjs/jest#5722))
* `[docs]` Add jest-community section to website
  ([#&#8203;5675](`jestjs/jest#5675))
* `[docs]` Add versioned docs for v22.4
  ([##&#8203;5733](https://github.com/facebook/jest/pull/#&#8203;5733))
* `[docs]` Improve Snapshot Testing Guide
  ([#&#8203;5812](`jestjs/jest#5812))
* `[jest-runtime]` [**BREAKING**] Remove `jest.genMockFn` and
  `jest.genMockFunction` ([#&#8203;6173](`jestjs/jest#6173))
* `[jest-message-util]` Avoid adding unnecessary indent to blank lines in stack
  traces ([#&#8203;6211](`jestjs/jest#6211))

---

</details>




---

This PR has been generated by [Renovate Bot](https://renovatebot.com).
wopian pushed a commit to wopian/kitsu that referenced this pull request May 25, 2018
This Pull Request updates dependency [jest](https://github.com/facebook/jest) from `~22.4.0` to `~23.0.0`



<details>
<summary>Release Notes</summary>

### [`v23.0.0`](https://github.com/facebook/jest/blob/master/CHANGELOG.md#&#8203;2300)
[Compare Source](jestjs/jest@2745e3e...v23.0.0)
##### Features

* `[expect]` Expose `getObjectSubset`, `iterableEquality`, and `subsetEquality`
  ([#&#8203;6210](`jestjs/jest#6210))
* `[jest-snapshot]` Add snapshot property matchers
  ([#&#8203;6210](`jestjs/jest#6210))
* `[jest-config]` Support jest-preset.js files within Node modules
  ([#&#8203;6185](`jestjs/jest#6185))
* `[jest-cli]` Add `--detectOpenHandles` flag which enables Jest to potentially
  track down handles keeping it open after tests are complete.
  ([#&#8203;6130](`jestjs/jest#6130))
* `[jest-jasmine2]` Add data driven testing based on `jest-each`
  ([#&#8203;6102](`jestjs/jest#6102))
* `[jest-matcher-utils]` Change "suggest to equal" message to be more advisory
  ([#&#8203;6103](`jestjs/jest#6103))
* `[jest-message-util]` Don't ignore messages with `vendor` anymore
  ([#&#8203;6117](`jestjs/jest#6117))
* `[jest-validate]` Get rid of `jest-config` dependency
  ([#&#8203;6067](`jestjs/jest#6067))
* `[jest-validate]` Adds option to inject `deprecationEntries`
  ([#&#8203;6067](`jestjs/jest#6067))
* `[jest-snapshot]` [**BREAKING**] Concatenate name of test, optional snapshot
  name and count ([#&#8203;6015](`jestjs/jest#6015))
* `[jest-runtime]` Allow for transform plugins to skip the definition process
  method if createTransformer method was defined.
  ([#&#8203;5999](`jestjs/jest#5999))
* `[expect]` Add stack trace for async errors
  ([#&#8203;6008](`jestjs/jest#6008))
* `[jest-jasmine2]` Add stack trace for timeouts
  ([#&#8203;6008](`jestjs/jest#6008))
* `[jest-jasmine2]` Add stack trace for thrown non-`Error`s
  ([#&#8203;6008](`jestjs/jest#6008))
* `[jest-runtime]` Prevent modules from marking themselves as their own parent
  ([#&#8203;5235](`jestjs/jest#5235))
* `[jest-mock]` Add support for auto-mocking generator functions
  ([#&#8203;5983](`jestjs/jest#5983))
* `[expect]` Add support for async matchers
   ([#&#8203;5919](`jestjs/jest#5919))
* `[expect]` Suggest toContainEqual
  ([#&#8203;5948](`jestjs/jest#5953))
* `[jest-config]` Export Jest's default options
  ([#&#8203;5948](`jestjs/jest#5948))
* `[jest-editor-support]` Move `coverage` to `ProjectWorkspace.collectCoverage`
  ([#&#8203;5929](`jestjs/jest#5929))
* `[jest-editor-support]` Add `coverage` option to runner
  ([#&#8203;5836](`jestjs/jest#5836))
* `[jest-haste-map]` Support extracting dynamic `import`s
  ([#&#8203;5883](`jestjs/jest#5883))
* `[expect]` Improve output format for mismatchedArgs in mock/spy calls.
  ([#&#8203;5846](`jestjs/jest#5846))
* `[jest-cli]` Add support for using `--coverage` in combination with watch
  mode, `--onlyChanged`, `--findRelatedTests` and more
  ([#&#8203;5601](`jestjs/jest#5601))
* `[jest-jasmine2]` [**BREAKING**] Adds error throwing and descriptive errors to
  `it`/ `test` for invalid arguments. `[jest-circus]` Adds error throwing and
  descriptive errors to `it`/ `test` for invalid arguments
  ([#&#8203;5558](`jestjs/jest#5558))
* `[jest-matcher-utils]` Add `isNot` option to `matcherHint` function
  ([#&#8203;5512](`jestjs/jest#5512))
* `[jest-config]` Add `<rootDir>` to runtime files not found error report
  ([#&#8203;5693](`jestjs/jest#5693))
* `[expect]` Make toThrow matcher pass only if Error object is returned from
  promises ([#&#8203;5670](`jestjs/jest#5670))
* `[expect]` Add isError to utils
  ([#&#8203;5670](`jestjs/jest#5670))
* `[expect]` Add inverse matchers (`expect.not.arrayContaining`, etc.,
  [#&#8203;5517](`jestjs/jest#5517))
* `[expect]` `expect.extend` now also extends asymmetric matchers
  ([#&#8203;5503](`jestjs/jest#5503))
* `[jest-mock]` Update `spyOnProperty` to support spying on the prototype chain
  ([#&#8203;5753](`jestjs/jest#5753))
* `[jest-mock]` Add tracking of return values in the `mock` property
  ([#&#8203;5752](`jestjs/jest#5752))
* `[jest-mock]` Add tracking of thrown errors in the `mock` property
  ([#&#8203;5764](`jestjs/jest#5764))
* `[expect]`Add nthCalledWith spy matcher
  ([#&#8203;5605](`jestjs/jest#5605))
* `[jest-cli]` Add `isSerial` property that runners can expose to specify that
  they can not run in parallel
  ([#&#8203;5706](`jestjs/jest#5706))
* `[expect]` Add `.toBeCalledTimes` and `toHaveBeenNthCalledWith` aliases
  ([#&#8203;5826](`jestjs/jest#5826))
* `[jest-cli]` Interactive Snapshot Mode improvements
  ([#&#8203;5864](`jestjs/jest#5864))
* `[jest-editor-support]` Add `no-color` option to runner
  ([#&#8203;5909](`jestjs/jest#5909))
* `[jest-jasmine2]` Pretty-print non-Error object errors
  ([#&#8203;5980](`jestjs/jest#5980))
* `[jest-message-util]` Include column in stack frames
  ([#&#8203;5889](`jestjs/jest#5889))
* `[expect]` Introduce toStrictEqual
  ([#&#8203;6032](`jestjs/jest#6032))
* `[expect]` Add return matchers
  ([#&#8203;5879](`jestjs/jest#5879))
* `[jest-cli]` Improve snapshot summaries
  ([#&#8203;6181](`jestjs/jest#6181))
* `[expect]` Include custom mock names in error messages
  ([#&#8203;6199](`jestjs/jest#6199))
* `[jest-diff]` Support returning diff from oneline strings
  ([#&#8203;6221](`jestjs/jest#6221))
* `[expect]` Improve return matchers
  ([#&#8203;6172](`jestjs/jest#6172))
* `[jest-cli]` Overhaul watch plugin hooks names
  ([#&#8203;6249](`jestjs/jest#6249))
* `[jest-mock]` Include tracked call results in serialized mock
  ([#&#8203;6244](`jestjs/jest#6244))
##### Fixes

* `[jest-cli]` Fix stdin encoding to utf8 for watch plugins.
  ([#&#8203;6253](`jestjs/jest#6253))
* `[expect]` Better detection of DOM Nodes for equality
  ([#&#8203;6246](`jestjs/jest#6246))
* `[jest-cli]` Fix misleading action description for F key when in "only failed
  tests" mode. ([#&#8203;6167](`jestjs/jest#6167))
* `[jest-worker]` Stick calls to workers before processing them
  ([#&#8203;6073](`jestjs/jest#6073))
* `[babel-plugin-jest-hoist]` Allow using `console` global variable
  ([#&#8203;6075](`jestjs/jest#6075))
* `[jest-jasmine2]` Always remove node core message from assert stack traces
  ([#&#8203;6055](`jestjs/jest#6055))
* `[expect]` Add stack trace when `expect.assertions` and `expect.hasAssertions`
  causes test failures. ([#&#8203;5997](`jestjs/jest#5997))
* `[jest-runtime]` Throw a more useful error when trying to require modules
  after the test environment is torn down
  ([#&#8203;5888](`jestjs/jest#5888))
* `[jest-mock]` [**BREAKING**] Replace timestamps with `invocationCallOrder`
  ([#&#8203;5867](`jestjs/jest#5867))
* `[jest-jasmine2]` Install `sourcemap-support` into normal runtime to catch
  runtime errors ([#&#8203;5945](`jestjs/jest#5945))
* `[jest-jasmine2]` Added assertion error handling inside `afterAll hook`
  ([#&#8203;5884](`jestjs/jest#5884))
* `[jest-cli]` Remove the notifier actions in case of failure when not in watch
  mode. ([#&#8203;5861](`jestjs/jest#5861))
* `[jest-mock]` Extend .toHaveBeenCalled return message with outcome
  ([#&#8203;5951](`jestjs/jest#5951))
* `[jest-runner]` Assign `process.env.JEST_WORKER_ID="1"` when in runInBand mode
  ([#&#8203;5860](`jestjs/jest#5860))
* `[jest-cli]` Add descriptive error message when trying to use
  `globalSetup`/`globalTeardown` file that doesn't export a function.
  ([#&#8203;5835](`jestjs/jest#5835))
* `[expect]` Do not rely on `instanceof RegExp`, since it will not work for
  RegExps created inside of a different VM
  ([#&#8203;5729](`jestjs/jest#5729))
* `[jest-resolve]` Update node module resolution algorithm to correctly handle
  symlinked paths ([#&#8203;5085](`jestjs/jest#5085))
* `[jest-editor-support]` Update `Settings` to use spawn in shell option
  ([#&#8203;5658](`jestjs/jest#5658))
* `[jest-cli]` Improve the error message when 2 projects resolve to the same
  config ([#&#8203;5674](`jestjs/jest#5674))
* `[jest-runtime]` remove retainLines from coverage instrumentation
  ([#&#8203;5692](`jestjs/jest#5692))
* `[jest-cli]` Fix update snapshot issue when using watchAll
  ([#&#8203;5696](`jestjs/jest#5696))
* `[expect]` Fix rejects.not matcher
  ([#&#8203;5670](`jestjs/jest#5670))
* `[jest-runtime]` Prevent Babel warnings on large files
  ([#&#8203;5702](`jestjs/jest#5702))
* `[jest-mock]` Prevent `mockRejectedValue` from causing unhandled rejection
  ([#&#8203;5720](`jestjs/jest#5720))
* `[pretty-format]` Handle React fragments better
  ([#&#8203;5816](`jestjs/jest#5816))
* `[pretty-format]` Handle formatting of `React.forwardRef` and `Context`
  components ([#&#8203;6093](`jestjs/jest#6093))
* `[jest-cli]` Switch collectCoverageFrom back to a string
  ([#&#8203;5914](`jestjs/jest#5914))
* `[jest-regex-util]` Fix handling regex symbols in tests path on Windows
  ([#&#8203;5941](`jestjs/jest#5941))
* `[jest-util]` Fix handling of NaN/Infinity in mock timer delay
  ([#&#8203;5966](`jestjs/jest#5966))
* `[jest-resolve]` Generalise test for package main entries equivalent to ".".
  ([#&#8203;5968](`jestjs/jest#5968))
* `[jest-config]` Ensure that custom resolvers are used when resolving the
  configuration ([#&#8203;5976](`jestjs/jest#5976))
* `[website]` Fix website docs
  ([#&#8203;5853](`jestjs/jest#5853))
* `[expect]` Fix isEqual Set and Map to compare object values and keys
  regardless of order ([#&#8203;6150](`jestjs/jest#6150))
* `[pretty-format]` [**BREAKING**] Remove undefined props from React elements
  ([#&#8203;6162](`jestjs/jest#6162))
* `[jest-haste-map]` Properly resolve mocked node modules without package.json
  defined ([#&#8203;6232](`jestjs/jest#6232))
##### Chore & Maintenance

* `[jest-runner]` Move sourcemap installation from `jest-jasmine2` to
  `jest-runner` ([#&#8203;6176](`jestjs/jest#6176))
* `[jest-cli]` Use yargs's built-in `version` instead of rolling our own
  ([#&#8203;6215](`jestjs/jest#6215))
* `[docs]` Add explanation on how to mock methods not implemented in JSDOM
* `[jest-jasmine2]` Simplify `Env.execute` and TreeProcessor to setup and clean
  resources for the top suite the same way as for all of the children suites
  ([#&#8203;5885](`jestjs/jest#5885))
* `[babel-jest]` [**BREAKING**] Always return object from transformer
  ([#&#8203;5991](`jestjs/jest#5991))
* `[*]` Run Prettier on compiled output
  ([#&#8203;5858](`jestjs/jest#3497))
* `[jest-cli]` Add fileChange hook for plugins
  ([#&#8203;5708](`jestjs/jest#5708))
* `[docs]` Add docs on using `jest.mock(...)`
  ([#&#8203;5648](`jestjs/jest#5648))
* `[docs]` Mention Jest Puppeteer Preset
  ([#&#8203;5722](`jestjs/jest#5722))
* `[docs]` Add jest-community section to website
  ([#&#8203;5675](`jestjs/jest#5675))
* `[docs]` Add versioned docs for v22.4
  ([##&#8203;5733](https://github.com/facebook/jest/pull/#&#8203;5733))
* `[docs]` Improve Snapshot Testing Guide
  ([#&#8203;5812](`jestjs/jest#5812))
* `[jest-runtime]` [**BREAKING**] Remove `jest.genMockFn` and
  `jest.genMockFunction` ([#&#8203;6173](`jestjs/jest#6173))
* `[jest-message-util]` Avoid adding unnecessary indent to blank lines in stack
  traces ([#&#8203;6211](`jestjs/jest#6211))

---

</details>




---

This PR has been generated by [Renovate Bot](https://renovatebot.com).
calebeby pushed a commit to Pigmice2733/scouting-frontend that referenced this pull request May 30, 2018
This Pull Request updates dependency [jest](https://github.com/facebook/jest) from `v22.4.3` to `v23.0.1`



<details>
<summary>Release Notes</summary>

### [`v23.0.1`](https://github.com/facebook/jest/blob/master/CHANGELOG.md#&#8203;2301)
[Compare Source](jestjs/jest@v23.0.0...3a3b4e3)
##### Chore & Maintenance

* `[jest-jasemine2]` Add dependency on jest-each ([#&#8203;6308](`jestjs/jest#6308))
* `[jest-each]` Move jest-each into core Jest ([#&#8203;6278](`jestjs/jest#6278))
* `[examples]` Update typescript example to using ts-jest ([#&#8203;6260](`jestjs/jest#6260))
##### Fixes

* `[pretty-format]` Serialize inverse asymmetric matchers correctly ([#&#8203;6272](`jestjs/jest#6272))

---

### [`v23.0.0`](https://github.com/facebook/jest/blob/master/CHANGELOG.md#&#8203;2300)
[Compare Source](jestjs/jest@2745e3e...v23.0.0)
##### Features

* `[expect]` Expose `getObjectSubset`, `iterableEquality`, and `subsetEquality` ([#&#8203;6210](`jestjs/jest#6210))
* `[jest-snapshot]` Add snapshot property matchers ([#&#8203;6210](`jestjs/jest#6210))
* `[jest-config]` Support jest-preset.js files within Node modules ([#&#8203;6185](`jestjs/jest#6185))
* `[jest-cli]` Add `--detectOpenHandles` flag which enables Jest to potentially track down handles keeping it open after tests are complete. ([#&#8203;6130](`jestjs/jest#6130))
* `[jest-jasmine2]` Add data driven testing based on `jest-each` ([#&#8203;6102](`jestjs/jest#6102))
* `[jest-matcher-utils]` Change "suggest to equal" message to be more advisory ([#&#8203;6103](`jestjs/jest#6103))
* `[jest-message-util]` Don't ignore messages with `vendor` anymore ([#&#8203;6117](`jestjs/jest#6117))
* `[jest-validate]` Get rid of `jest-config` dependency ([#&#8203;6067](`jestjs/jest#6067))
* `[jest-validate]` Adds option to inject `deprecationEntries` ([#&#8203;6067](`jestjs/jest#6067))
* `[jest-snapshot]` [**BREAKING**] Concatenate name of test, optional snapshot name and count ([#&#8203;6015](`jestjs/jest#6015))
* `[jest-runtime]` Allow for transform plugins to skip the definition process method if createTransformer method was defined. ([#&#8203;5999](`jestjs/jest#5999))
* `[expect]` Add stack trace for async errors ([#&#8203;6008](`jestjs/jest#6008))
* `[jest-jasmine2]` Add stack trace for timeouts ([#&#8203;6008](`jestjs/jest#6008))
* `[jest-jasmine2]` Add stack trace for thrown non-`Error`s ([#&#8203;6008](`jestjs/jest#6008))
* `[jest-runtime]` Prevent modules from marking themselves as their own parent ([#&#8203;5235](`jestjs/jest#5235))
* `[jest-mock]` Add support for auto-mocking generator functions ([#&#8203;5983](`jestjs/jest#5983))
* `[expect]` Add support for async matchers  ([#&#8203;5919](`jestjs/jest#5919))
* `[expect]` Suggest toContainEqual ([#&#8203;5948](`jestjs/jest#5953))
* `[jest-config]` Export Jest's default options ([#&#8203;5948](`jestjs/jest#5948))
* `[jest-editor-support]` Move `coverage` to `ProjectWorkspace.collectCoverage` ([#&#8203;5929](`jestjs/jest#5929))
* `[jest-editor-support]` Add `coverage` option to runner ([#&#8203;5836](`jestjs/jest#5836))
* `[jest-haste-map]` Support extracting dynamic `import`s ([#&#8203;5883](`jestjs/jest#5883))
* `[expect]` Improve output format for mismatchedArgs in mock/spy calls. ([#&#8203;5846](`jestjs/jest#5846))
* `[jest-cli]` Add support for using `--coverage` in combination with watch mode, `--onlyChanged`, `--findRelatedTests` and more ([#&#8203;5601](`jestjs/jest#5601))
* `[jest-jasmine2]` [**BREAKING**] Adds error throwing and descriptive errors to `it`/ `test` for invalid arguments. `[jest-circus]` Adds error throwing and descriptive errors to `it`/ `test` for invalid arguments ([#&#8203;5558](`jestjs/jest#5558))
* `[jest-matcher-utils]` Add `isNot` option to `matcherHint` function ([#&#8203;5512](`jestjs/jest#5512))
* `[jest-config]` Add `<rootDir>` to runtime files not found error report ([#&#8203;5693](`jestjs/jest#5693))
* `[expect]` Make toThrow matcher pass only if Error object is returned from promises ([#&#8203;5670](`jestjs/jest#5670))
* `[expect]` Add isError to utils ([#&#8203;5670](`jestjs/jest#5670))
* `[expect]` Add inverse matchers (`expect.not.arrayContaining`, etc., [#&#8203;5517](`jestjs/jest#5517))
* `[expect]` `expect.extend` now also extends asymmetric matchers ([#&#8203;5503](`jestjs/jest#5503))
* `[jest-mock]` Update `spyOnProperty` to support spying on the prototype chain ([#&#8203;5753](`jestjs/jest#5753))
* `[jest-mock]` Add tracking of return values in the `mock` property ([#&#8203;5752](`jestjs/jest#5752))
* `[jest-mock]` Add tracking of thrown errors in the `mock` property ([#&#8203;5764](`jestjs/jest#5764))
* `[expect]`Add nthCalledWith spy matcher ([#&#8203;5605](`jestjs/jest#5605))
* `[jest-cli]` Add `isSerial` property that runners can expose to specify that they can not run in parallel ([#&#8203;5706](`jestjs/jest#5706))
* `[expect]` Add `.toBeCalledTimes` and `toHaveBeenNthCalledWith` aliases ([#&#8203;5826](`jestjs/jest#5826))
* `[jest-cli]` Interactive Snapshot Mode improvements ([#&#8203;5864](`jestjs/jest#5864))
* `[jest-editor-support]` Add `no-color` option to runner ([#&#8203;5909](`jestjs/jest#5909))
* `[jest-jasmine2]` Pretty-print non-Error object errors ([#&#8203;5980](`jestjs/jest#5980))
* `[jest-message-util]` Include column in stack frames ([#&#8203;5889](`jestjs/jest#5889))
* `[expect]` Introduce toStrictEqual ([#&#8203;6032](`jestjs/jest#6032))
* `[expect]` Add return matchers ([#&#8203;5879](`jestjs/jest#5879))
* `[jest-cli]` Improve snapshot summaries ([#&#8203;6181](`jestjs/jest#6181))
* `[expect]` Include custom mock names in error messages ([#&#8203;6199](`jestjs/jest#6199))
* `[jest-diff]` Support returning diff from oneline strings ([#&#8203;6221](`jestjs/jest#6221))
* `[expect]` Improve return matchers ([#&#8203;6172](`jestjs/jest#6172))
* `[jest-cli]` Overhaul watch plugin hooks names ([#&#8203;6249](`jestjs/jest#6249))
* `[jest-mock]` Include tracked call results in serialized mock ([#&#8203;6244](`jestjs/jest#6244))
##### Fixes

* `[jest-cli]` Fix stdin encoding to utf8 for watch plugins. ([#&#8203;6253](`jestjs/jest#6253))
* `[expect]` Better detection of DOM Nodes for equality ([#&#8203;6246](`jestjs/jest#6246))
* `[jest-cli]` Fix misleading action description for F key when in "only failed tests" mode. ([#&#8203;6167](`jestjs/jest#6167))
* `[jest-worker]` Stick calls to workers before processing them ([#&#8203;6073](`jestjs/jest#6073))
* `[babel-plugin-jest-hoist]` Allow using `console` global variable ([#&#8203;6075](`jestjs/jest#6075))
* `[jest-jasmine2]` Always remove node core message from assert stack traces ([#&#8203;6055](`jestjs/jest#6055))
* `[expect]` Add stack trace when `expect.assertions` and `expect.hasAssertions` causes test failures. ([#&#8203;5997](`jestjs/jest#5997))
* `[jest-runtime]` Throw a more useful error when trying to require modules after the test environment is torn down ([#&#8203;5888](`jestjs/jest#5888))
* `[jest-mock]` [**BREAKING**] Replace timestamps with `invocationCallOrder` ([#&#8203;5867](`jestjs/jest#5867))
* `[jest-jasmine2]` Install `sourcemap-support` into normal runtime to catch runtime errors ([#&#8203;5945](`jestjs/jest#5945))
* `[jest-jasmine2]` Added assertion error handling inside `afterAll hook` ([#&#8203;5884](`jestjs/jest#5884))
* `[jest-cli]` Remove the notifier actions in case of failure when not in watch mode. ([#&#8203;5861](`jestjs/jest#5861))
* `[jest-mock]` Extend .toHaveBeenCalled return message with outcome ([#&#8203;5951](`jestjs/jest#5951))
* `[jest-runner]` Assign `process.env.JEST_WORKER_ID="1"` when in runInBand mode ([#&#8203;5860](`jestjs/jest#5860))
* `[jest-cli]` Add descriptive error message when trying to use `globalSetup`/`globalTeardown` file that doesn't export a function. ([#&#8203;5835](`jestjs/jest#5835))
* `[expect]` Do not rely on `instanceof RegExp`, since it will not work for RegExps created inside of a different VM ([#&#8203;5729](`jestjs/jest#5729))
* `[jest-resolve]` Update node module resolution algorithm to correctly handle symlinked paths ([#&#8203;5085](`jestjs/jest#5085))
* `[jest-editor-support]` Update `Settings` to use spawn in shell option ([#&#8203;5658](`jestjs/jest#5658))
* `[jest-cli]` Improve the error message when 2 projects resolve to the same config ([#&#8203;5674](`jestjs/jest#5674))
* `[jest-runtime]` remove retainLines from coverage instrumentation ([#&#8203;5692](`jestjs/jest#5692))
* `[jest-cli]` Fix update snapshot issue when using watchAll ([#&#8203;5696](`jestjs/jest#5696))
* `[expect]` Fix rejects.not matcher ([#&#8203;5670](`jestjs/jest#5670))
* `[jest-runtime]` Prevent Babel warnings on large files ([#&#8203;5702](`jestjs/jest#5702))
* `[jest-mock]` Prevent `mockRejectedValue` from causing unhandled rejection ([#&#8203;5720](`jestjs/jest#5720))
* `[pretty-format]` Handle React fragments better ([#&#8203;5816](`jestjs/jest#5816))
* `[pretty-format]` Handle formatting of `React.forwardRef` and `Context` components ([#&#8203;6093](`jestjs/jest#6093))
* `[jest-cli]` Switch collectCoverageFrom back to a string ([#&#8203;5914](`jestjs/jest#5914))
* `[jest-regex-util]` Fix handling regex symbols in tests path on Windows ([#&#8203;5941](`jestjs/jest#5941))
* `[jest-util]` Fix handling of NaN/Infinity in mock timer delay ([#&#8203;5966](`jestjs/jest#5966))
* `[jest-resolve]` Generalise test for package main entries equivalent to ".". ([#&#8203;5968](`jestjs/jest#5968))
* `[jest-config]` Ensure that custom resolvers are used when resolving the configuration ([#&#8203;5976](`jestjs/jest#5976))
* `[website]` Fix website docs ([#&#8203;5853](`jestjs/jest#5853))
* `[expect]` Fix isEqual Set and Map to compare object values and keys regardless of order ([#&#8203;6150](`jestjs/jest#6150))
* `[pretty-format]` [**BREAKING**] Remove undefined props from React elements ([#&#8203;6162](`jestjs/jest#6162))
* `[jest-haste-map]` Properly resolve mocked node modules without package.json defined ([#&#8203;6232](`jestjs/jest#6232))
##### Chore & Maintenance

* `[jest-runner]` Move sourcemap installation from `jest-jasmine2` to `jest-runner` ([#&#8203;6176](`jestjs/jest#6176))
* `[jest-cli]` Use yargs's built-in `version` instead of rolling our own ([#&#8203;6215](`jestjs/jest#6215))
* `[docs]` Add explanation on how to mock methods not implemented in JSDOM
* `[jest-jasmine2]` Simplify `Env.execute` and TreeProcessor to setup and clean resources for the top suite the same way as for all of the children suites ([#&#8203;5885](`jestjs/jest#5885))
* `[babel-jest]` [**BREAKING**] Always return object from transformer ([#&#8203;5991](`jestjs/jest#5991))
* `[*]` Run Prettier on compiled output ([#&#8203;5858](`jestjs/jest#3497))
* `[jest-cli]` Add fileChange hook for plugins ([#&#8203;5708](`jestjs/jest#5708))
* `[docs]` Add docs on using `jest.mock(...)` ([#&#8203;5648](`jestjs/jest#5648))
* `[docs]` Mention Jest Puppeteer Preset ([#&#8203;5722](`jestjs/jest#5722))
* `[docs]` Add jest-community section to website ([#&#8203;5675](`jestjs/jest#5675))
* `[docs]` Add versioned docs for v22.4 ([#&#8203;5733](`jestjs/jest#5733))
* `[docs]` Improve Snapshot Testing Guide ([#&#8203;5812](`jestjs/jest#5812))
* `[jest-runtime]` [**BREAKING**] Remove `jest.genMockFn` and `jest.genMockFunction` ([#&#8203;6173](`jestjs/jest#6173))
* `[jest-message-util]` Avoid adding unnecessary indent to blank lines in stack traces ([#&#8203;6211](`jestjs/jest#6211))

---

### [`v22.4.4`](jestjs/jest@6851d8b...v22.4.4)
[Compare Source](jestjs/jest@6851d8b...v22.4.4)


---

</details>




---

This PR has been generated by [Renovate Bot](https://renovatebot.com).
facebook-github-bot pushed a commit to facebook/react-native that referenced this pull request Jan 15, 2019
Summary:
The current way the Jest preset work requires the different files to be in `<rootDir>/node_modules/react-native`. This is not necessarily true - especially in monorepoes.

If we instead do `require.resolve`, we do not need to do `rootDir` replacement in Jest.

Having a JS file as preset has been supported since Jest 23.0.0: jestjs/jest#6185

Changelog:
----------

[General] [Fixed] - use `require.resolve` in `jest-preset`
Pull Request resolved: #22972

Differential Revision: D13662758

Pulled By: hramos

fbshipit-source-id: ca79b5b89d9d05c6fe639b0d88619858e8d05da7
matt-oakes pushed a commit to matt-oakes/react-native that referenced this pull request Feb 7, 2019
Summary:
The current way the Jest preset work requires the different files to be in `<rootDir>/node_modules/react-native`. This is not necessarily true - especially in monorepoes.

If we instead do `require.resolve`, we do not need to do `rootDir` replacement in Jest.

Having a JS file as preset has been supported since Jest 23.0.0: jestjs/jest#6185

Changelog:
----------

[General] [Fixed] - use `require.resolve` in `jest-preset`
Pull Request resolved: facebook#22972

Differential Revision: D13662758

Pulled By: hramos

fbshipit-source-id: ca79b5b89d9d05c6fe639b0d88619858e8d05da7
aleclarson pushed a commit to alloc/react-native-macos that referenced this pull request Nov 15, 2019
Summary:
The current way the Jest preset work requires the different files to be in `<rootDir>/node_modules/react-native`. This is not necessarily true - especially in monorepoes.

If we instead do `require.resolve`, we do not need to do `rootDir` replacement in Jest.

Having a JS file as preset has been supported since Jest 23.0.0: jestjs/jest#6185

Changelog:
----------

[General] [Fixed] - use `require.resolve` in `jest-preset`
Pull Request resolved: facebook/react-native#22972

Differential Revision: D13662758

Pulled By: hramos

fbshipit-source-id: ca79b5b89d9d05c6fe639b0d88619858e8d05da7
@github-actions
Copy link

This pull request has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs.
Please note this issue tracker is not a help forum. We recommend using StackOverflow or our discord channel for questions.

@github-actions github-actions bot locked as resolved and limited conversation to collaborators May 12, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

7 participants