microsoft / microsoft/WinAppVSCE

Add integration tests for XAML Language Server client/extension wiring

Open
#115 0 comments 0 reactions 1 assignee View on GitHub

@chiaramooney is already working on this.

Since Sep 9, 2026.

enhancement testing
Dominant language
TypeScript
Stars
13
Forks
3
Avg merge
6d 1h
Merged PRs (30d)
11

Description

Summary

The XAML Language Server feature has good unit test coverage for individual providers (parser, diagnostics, completions, formatting, hover, definition), but lacks integration-level tests for the extension/client wiring layer.

What's missing

The following flows have no automated coverage:

  • activateXamlLanguageServer / deactivateXamlLanguageServer lifecycle
  • winapp.xaml.restartLanguageServer command registration and execution
  • Config enable/disable toggle (winapp.xaml.languageServer.enable) triggering client start/stop
  • Startup failure recovery path
  • Client lifecycle serialization under concurrent config changes

Why it matters

All provider-level unit tests can pass while activation, restart, and config flows are broken, since those tests exercise the providers in isolation without the VS Code extension host.

Suggested approach

Add a focused VS Code API-stub test suite (or extension-host integration test) that covers:

  1. Activate → client starts successfully
  2. Config disable → client stops
  3. Config re-enable → client restarts
  4. Restart command → stop + start cycle
  5. Deactivate → clean shutdown

Context

Surfaced during PR review of the XAML Language Server feature (round 6, finding M2).

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.