Merge branch 'winh-jest-differences-docs' into 'master'
Document the differences between Karma and Jest setup Closes #59976 See merge request gitlab-org/gitlab-ce!28216
This commit is contained in:
commit
e154ab3a71
1 changed files with 13 additions and 4 deletions
|
@ -15,10 +15,8 @@ information on general testing practices at GitLab.
|
|||
|
||||
## Jest
|
||||
|
||||
GitLab has started to migrate tests to the [Jest](https://jestjs.io)
|
||||
testing framework. You can read a [detailed evaluation](https://gitlab.com/gitlab-org/gitlab-ce/issues/49171)
|
||||
of Jest compared to our use of Karma and Jasmine. In summary, it will allow us
|
||||
to improve the performance and consistency of our frontend tests.
|
||||
We have started to migrate frontend tests to the [Jest](https://jestjs.io) testing framework (see also the corresponding
|
||||
[epic](https://gitlab.com/groups/gitlab-org/-/epics/895)).
|
||||
|
||||
Jest tests can be found in `/spec/frontend` and `/ee/spec/frontend` in EE.
|
||||
|
||||
|
@ -26,6 +24,17 @@ It is not yet a requirement to use Jest. You can view the
|
|||
[epic](https://gitlab.com/groups/gitlab-org/-/epics/873) of issues
|
||||
we need to solve before being able to use Jest for all our needs.
|
||||
|
||||
### Differences to Karma
|
||||
|
||||
- Jest runs in a Node.js environment, not in a browser. Support for running Jest tests in a browser [is planned](https://gitlab.com/gitlab-org/gitlab-ce/issues/58205).
|
||||
- Because Jest runs in a Node.js environment, it uses [jsdom](https://github.com/jsdom/jsdom) by default.
|
||||
- All calls to `setTimeout` and `setInterval` are mocked away. See also [Jest Timer Mocks](https://jestjs.io/docs/en/timer-mocks).
|
||||
- `rewire` is not required because Jest supports mocking modules. See also [Manual Mocks](https://jestjs.io/docs/en/manual-mocks).
|
||||
- The following will cause tests to fail in Jest:
|
||||
- Unmocked requests.
|
||||
- Unhandled Promise rejections.
|
||||
- Calls to `console.warn`, including warnings from libraries like Vue.
|
||||
|
||||
### Debugging Jest tests
|
||||
|
||||
Running `yarn jest-debug` will run Jest in debug mode, allowing you to debug/inspect as described in the [Jest docs](https://jestjs.io/docs/en/troubleshooting#tests-are-failing-and-you-don-t-know-why).
|
||||
|
|
Loading…
Reference in a new issue