Skip to content

Commit

Permalink
[docs] Add synchronous test.each setup (#7150)
Browse files Browse the repository at this point in the history
* Add changelog entry

* Add synchronous test troubeshooting

* Regenerate troubleshooting docs

* Reorder synchronous test docs
  • Loading branch information
mattphillips authored and SimenB committed Oct 14, 2018
1 parent 24880d9 commit 5cd7d17
Show file tree
Hide file tree
Showing 3 changed files with 37 additions and 0 deletions.
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@

### Chore & Maintenance

- `[docs]` Add synchronous test.each setup ([#7150](https://github.com/facebook/jest/pull/7150))
- `[docs]` Add `this.extend` to the Custom Matchers API reference ([#7130](https://github.com/facebook/jest/pull/7130))
- `[docs]` Fix default value for `coverageReporters` value in configuration docs ([#7126](https://github.com/facebook/jest/pull/7126))
- `[docs]` Add link for jest-extended in expect docs ([#7078](https://github.com/facebook/jest/pull/7078))
Expand Down
17 changes: 17 additions & 0 deletions docs/Troubleshooting.md
Original file line number Diff line number Diff line change
Expand Up @@ -192,6 +192,23 @@ Jest takes advantage of new features added to Node 6. We recommend that you upgr
Make sure you are not using the `babel-plugin-istanbul` plugin. Jest wraps Istanbul, and therefore also tells Istanbul what files to instrument with coverage collection. When using `babel-plugin-istanbul`, every file that is processed by Babel will have coverage collection code, hence it is not being ignored by `coveragePathIgnorePatterns`.
## Defining Tests
Tests must be defined synchronously for Jest to be able to collect your tests.
As an example to show why this is the case, imagine we wrote a test like so:
```js
// Don't do this it will not work
setTimeout(() => {
it('passes', () => expect(1).toBe(1));
}, 0);
```

When Jest runs your test to collect the `test`s it will not find any because we have set the definition to happen asynchronously on the next tick of the event loop.

_Note:_ This means when you are using `test.each` you cannot set the table asynchronously within a `beforeEach` / `beforeAll`.

## Still unresolved?

See [Help](/help.html).
19 changes: 19 additions & 0 deletions website/versioned_docs/version-23.6/Troubleshooting.md
Original file line number Diff line number Diff line change
Expand Up @@ -193,6 +193,25 @@ Jest takes advantage of new features added to Node 6. We recommend that you upgr
Make sure you are not using the `babel-plugin-istanbul` plugin. Jest wraps Istanbul, and therefore also tells Istanbul what files to instrument with coverage collection. When using `babel-plugin-istanbul`, every file that is processed by Babel will have coverage collection code, hence it is not being ignored by `coveragePathIgnorePatterns`.
## Defining Tests
Tests must be defined synchronously for Jest to be able to collect your tests.
As an example to show why this is the case, imagine we wrote a test like so:
```js
// Don't do this it will not work
setTimeout(() => {
it('passes', () => expect(1).toBe(1));
}, 0);
```

When Jest runs your test to collect the `test`s it will not find any because we have set the definition to happen asynchronously on the next tick of the event loop.

_Note:_ This means when you are using `test.each` you cannot set the table asynchronously within a `beforeEach` / `beforeAll`.

When Jest runs your test to collect the `test`s it will not find any because we have set the definition to happen asynchronously on the next tick of the event loop.

## Still unresolved?

See [Help](/help.html).

0 comments on commit 5cd7d17

Please sign in to comment.