Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Test Extension Kind #85948

Closed
2 tasks done
sandy081 opened this issue Dec 2, 2019 · 0 comments
Closed
2 tasks done

Test Extension Kind #85948

sandy081 opened this issue Dec 2, 2019 · 0 comments

Comments

@sandy081
Copy link
Member

sandy081 commented Dec 2, 2019

Testing #85036

Complexity: 5

Extension Kind

  • You can define the extension kind of your extension using the property extensionKind in package.json.
  • Following table explains given the extensionKind where an extension can or cannot run. Please read the documentation for more info.
Kind \ Runtime Desktop - Local Desktop - Remote Web - Remote
["ui"] ✔️
["workspace"] ✔️ ✔️
["ui", "workspace"] ✔️ ✔️ ✔️
["workspace", "ui"] ✔️ ✔️ ✔️

["ui"]: Runs only locally.
["workspace"]: Runs only remotely.
["ui", "workspace"]: Preferably runs locally if exists otherwise can run remotely.
["workspace", "ui"]: Preferably runs remotely if exists otherwise can run locally.

  • string type for extensionKind is deprecated in favour of above. But you can still provide strings "ui" and "workspace" for extensionKind and will be treated internally as ["ui", "workspace"] and ["workspace"] respectively.

Overriding

Even though an extension defines its extension kind, user or product (VS Code) can override this in settings (remote.extensionKind) and product.json respectively. User choice is given first preference and then for product.json.

Set Up

This needs to be tested in following set ups

  • VS Code opened locally
  • VS Code connected to remote server (SSH, WSL, Dev Container)
  • VS Code Web connected to remote server (See instructions for set up here).

Testing

  • Come up with a sample extension or use existing extensions with different combination of extension kinds. I have published following test extensions which you can reuse
    • sandy081.ui-extension
    • sandy081.workspace-extension
    • sandy081.ui-workspace-extension
    • sandy081.workspace-ui-extension
  • Test that these extensions are enabled as mentioned in above table.
  • Test the deprecated behaviour that is mentioned above
  • Test the overriding behaviour that is mentioned above. You can see our insiders product.json for the overridden extension kinds.
  • Test extensions viewlet that how these extensions are shown and what actions are available when these extensions are installed in different locations. (You should see an install in other side action if an extension is installed in a side in which it cannot be enabled).
  • Test installing above extensions installs them in the appropriate side
  • Test installing an UI extension throws error in Web.

Authors: @sandy081, @alexandrudima

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

5 participants