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.
There have been a few changes recently that broke other use cases. For example:
This PR adds tests for
CommandHandler.ts
andVariableResolver.ts
, the two files that I think are the most likely to be broken by new features.These tests aren't perfect. For example, they always use
useFirstResult
so that the picker does not have to be mocked. This is only a starting place that will hopefully catch the biggest future breakages.The vscode module is mocked for these tests (I looked into
vscode-test
, but I could not for the life of me get it to work). In my opinion, we should test this extension, not VSCode. As long as there is a good way to get mock data, then we will have good and isolated tests.There is a mock/spy src/mocks/vscode.ts. It's job is to record the results of vscode api calls (spy) and to give them back later during test execution (mock). The test data is obtained by setting up the spy, running the extension in the debugger, running some tasks, and saving the printed data.
Fixes #62