* Feature tests running with refactored package manager
* Refactoring packages-1
* Test for the downloader running using the mock server
* Using network settings
* Changing the package path
* Dividing packages.ts into separate components
* use filter async
* Use tmpfile interface
* Check for the event stream
* Using FilePathResolver
* Remove using
* Testing for normal and fallback case working
* Resolve the paths
* Remove failing case
* package installer test-1
* Add package installer test
* Create tmp asset
* Package Downloader test refactored
* Rename files
* resolve compile issues
* Clean up installer
* Clean up the tests
* Rename packages
* Package installer test
* PR feedback
* Package Filter test
* Remove yauzl.d.ts
* Filter test
* Added test for invalid zip file
* method for getting the request options
* remove imports
* please resolve the path
* remove latest in settings
* Package Manager test executing
* Use free port in package manager test
* Package Manager (using a https server running)
* using http mock server
* Downloader test running using free port
* Changes to remove status from packages.ts
* Tests failing
* Added tests
* Used tooltip and changed flame color
* fix merge problems
* PR feedback
* Removed implicit any
* Changes
Adds noUnusedLocals to tsconfig.json to keep our sources clean
Adds noFallThroughCaseInSwitch in tsconfig.json to prevent unintended switch behavior
Adds promise-function-async to tslint.json to force all async functions to be marked as async. This is a building block towards eliminating promises in favor of async/await.
The VSCode C# Extension build process follows the VS Code docs and runs tests directly inside of its repo root. This unfortunately gives a false sense of security because bugs can be introduced during VSIX packaging [particularly due to missing content in node_modules or excluded via .vscodeignore].
This change addresses this problem by moving our CI tests to execute the VSIX instead of the build's intermediate artifacts. Specifically:
build the vsix
unpackage the vsix
instrument the unpackaged vsix
run tests with VS Code Host pointing to the unpackaged vsix
This makes our CI tests ~= to the user's runtime experience and will greatly help us with size reduction efforts.
To support this change, I also moved our build system from package.json to Gulp. This makes the build scripts significantly easier to understand, provides intellisense for build scripts, and build-time type checking for their contents.
I also strengthened the repo's use of .vscodeignore by creating a copy of the file for each scenario [online packages and offline packages]. The new gulp packaging scripts take advantage of these files to produce packages with predictable contents regardless of when packaging occurs. [small caveat, @akshita31 will be adding a test that validates that net-new content does not start sneaking into the vsix package].