-
-
Notifications
You must be signed in to change notification settings - Fork 6.5k
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
[jest-each]: Add support for keyPaths in test titles #6457
[jest-each]: Add support for keyPaths in test titles #6457
Conversation
packages/jest-each/src/bind.js
Outdated
Object.prototype.hasOwnProperty.call(object, value) || | ||
Object.prototype.hasOwnProperty.call(object.constructor.prototype, value); | ||
|
||
const getPath = (object: Object, propertyPath: string | Array<string>) => { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I've inlined this for now to get it working, it shouldn't stay here :)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
can we just use lodash.get
or something?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I didn't think we were using lodash
anywhere? This getPath
algorithm is used in the toHaveProperty
matcher and offers a nicer returned value than lodash
as it tracks the last visited object.
EDIT: see expect utils
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
sticking it in jest-utils should be fine for sharing (although @cpojer hates the util package :D)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should I move it as part of this PR or would it be better in a separate PR?
As part of this is fine |
@SimenB have you seen an eslint error like this before? Not sure what is going wrong 😕 |
Syntax error in the browserbuild, which must be es5 |
Hmm @SimenB so it looks like expect cannot depend on jest-util then? How else can we share the |
Codecov Report
@@ Coverage Diff @@
## master #6457 +/- ##
==========================================
+ Coverage 63.48% 63.53% +0.05%
==========================================
Files 227 227
Lines 8697 8709 +12
Branches 4 3 -1
==========================================
+ Hits 5521 5533 +12
Misses 3175 3175
Partials 1 1
Continue to review full report at Codecov.
|
@SimenB I've updated this to inline a much simpler |
CHANGELOG.md
Outdated
@@ -1,5 +1,9 @@ | |||
## master | |||
|
|||
### Features | |||
|
|||
- `[jest-each]` Add support for keyPaths in test titles ([#6457](https://github.com/facebook/jest/pull/6457/files)) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
remove /files
This Pull Request updates dependency [jest](https://github.com/facebook/jest) from `v23.1.0` to `v23.2.0` <details> <summary>Release Notes</summary> ### [`v23.2.0`](https://github.com/facebook/jest/blob/master/CHANGELOG.md#​2320) [Compare Source](jestjs/jest@v23.1.0...v23.2.0) ##### Features - `[jest-each]` Add support for keyPaths in test titles ([#​6457](`https://github.com/facebook/jest/pull/6457`)) - `[jest-cli]` Add `jest --init` option that generates a basic configuration file with a short description for each option ([#​6442](`https://github.com/facebook/jest/pull/6442`)) - `[jest.retryTimes]` Add `jest.retryTimes()` option that allows failed tests to be retried n-times when using jest-circus. ([#​6498](`https://github.com/facebook/jest/pull/6498`)) ##### Fixes - `[jest-cli]` Add check to make sure one or more tests have run before notifying when using `--notify` ([#​6495](`https://github.com/facebook/jest/pull/6495`)) - `[jest-cli]` Pass `globalConfig` as a parameter to `globalSetup` and `globalTeardown` functions ([#​6486](`https://github.com/facebook/jest/pull/6486`)) - `[jest-config]` Add missing options to the `defaults` object ([#​6428](`https://github.com/facebook/jest/pull/6428`)) - `[expect]` Using symbolic property names in arrays no longer causes the `toEqual` matcher to fail ([#​6391](`https://github.com/facebook/jest/pull/6391`)) - `[expect]` `toEqual` no longer tries to compare non-enumerable symbolic properties, to be consistent with non-symbolic properties. ([#​6398](`https://github.com/facebook/jest/pull/6398`)) - `[jest-util]` `console.timeEnd` now properly log elapsed time in milliseconds. ([#​6456](`https://github.com/facebook/jest/pull/6456`)) - `[jest-mock]` Fix `MockNativeMethods` access in react-native `jest.mock()` ([#​6505](`https://github.com/facebook/jest/pull/6505`)) ##### Chore & Maintenance - `[docs]` Add jest-each docs for 1 dimensional arrays ([#​6444](`https://github.com/facebook/jest/pull/6444`/files)) --- </details> --- This PR has been generated by [Renovate Bot](https://renovatebot.com).
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. |
Summary
Closes #6452
Opening this up for review early as I want @SimenB @thymikee @rickhanlonii opinion on how to share the
getPath
logic that is defined in expect.Add support for
$key.path
syntax in tagged template test titles.Example:
Test plan
See unit tests
TODO:
getPath
logic withexpect