add support for debugging jest tests in vscode #6034
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Overview
This PR re-adds support for being able to debug Desktop's unit tests inside VSCode.
There's two parts to supporting this in VSCode:
jest
with our existing unit test configWhen you launch the tests, VSCode's terminal will appear and the rest of the experience looks familiar if you've run the tests from the command line:
But to see the real magic, set a breakpoint inside a test (the gutter to the left of the numbers) like this:
At some point after that, the tests should break on the breakpoint you just defined:
You then have access to the variables and stack trace in the left sidebar:
Description
In a nutshell, you now have two options:
Jest All
to run all unit tests (the equivalent ofyarn test:unit
from the command line)Jest Current
to run all unit tests in the current fileI'd recommend
Jest Current
when working on tests, as that avoids running the whole test suite.If you try and
Jest Current
from a file that doesn't contain any tests, you'll see an error like this:You can set breakpoints anywhere in the code, but be careful where you
Jest Current
from.I haven't had a chance to confirm this works the same on Windows, but I think it'll be fine...
Release notes
Notes: no-notes