* feat: github-auth flag
This will allow injecting credentials into code-server if you already
have them.
* Update Code
Contains the GitHub auth changes.
* Add e2e test for GitHub token
* Add test extension
This will let us test extension-related features (like the proxy URI).
I removed the environment variables in the script because they override
the ones you set yourself. We still set defaults in constants.ts.
* Add changelog entry for VSCODE_PROXY_URI
* Add terminal test for VSCODE_PROXY_URI
* Update VS Code
This adds the VSCODE_PROXY_URI environment variable.
* Implement last opened functionality
Fixes https://github.com/cdr/code-server/issues/4619
* Fix test temp dirs not being cleaned up
* Mock logger everywhere
This suppresses all the error and debug output we generate which makes
it hard to actually find which test has failed. It also gives us a
standard way to test logging for the few places we do that.
* Use separate data directories for unit test instances
Exactly as we do for the e2e tests.
* Add integration tests for vscode route
* Make settings use --user-data-dir
Without this test instances step on each other feet and they also
clobber your own non-test settings.
* Make redirects consistent
They will preserve the trailing slash if there is one.
* Remove compilation check
If you do a regular non-watch build there are no compilation stats so
this bricks VS Code in CI when running the unit tests.
I am not sure how best to fix this for the case where you have a build
that has not been packaged yet so I just removed it for now and added a
message to check if VS Code is compiling when in dev mode.
* Update code-server update endpoint name
My thinking is that this may reduce the cognitive overhead for
developers writing new test suites.
This also allows us to perform different setup steps (like ensuring the
editor is visible when authenticated).
This uses the current dev build by default but can be overidden with
CODE_SERVER_TEST_ENTRY (for example to test a release or some other
version).
Each instance has a separate state directory. This should make
parallelization work.
This also means you are no longer required to specify the password and
address yourself (or the extension directory once we add a test
extension). `yarn test:e2e` should just work as-is.
Lastly, it means the tests are no longer subject to yarn watch randomly
restarting.