VS_CODE_E2E_GAPS

VS Code Galaxy Workflows Extension — E2E Test Coverage Gaps & Expansion Plan

Date: 2026-04-12 Branch: wf_tool_state Related: VS_CODE_ARCHITECTURE.md, VS_CODE_E2E_TEST_CACHE_PLAN.md

Principle: fewer, more useful tests. Each proposed test exercises a real client ↔ server integration path that server-level tests can’t cover.


Current coverage

Existing E2E files:

Area.ga (native).gxwf.yml (format2)
Clean commandYesN/A
Preview convertYesYes
Export convertYesYes
Convert-file (in-place)YesYes
Validation profile switchYes (basic → iwc → basic)No
Schema validation (required fields)Yes (T2, uncommitted)Yes
Tool state: uncached diagnosticYes (T3, uncommitted)Yes (but fragile — see below)
Tool state: legacy string hint + code actionYes (T1, uncommitted)No
Completions (any)NoNo
Hover (any)NoNo
Document symbolsNoNo

Hermeticity: resolved in commit 2fec34e. cacheHelpers.ts provides useEmptyCache() (per-test temp dir) and ensureSharedCache() (shared client/tests/e2e/.cache/ populated via populateTestCache.ts from the toolshed, skips suite on offline). resetSettings now also clears toolCache.directory. Empty-cache format2 smoke and native clean tests converted; new populated-cache suites added for tool-aware clean (IWC fastp/multiqc) and cached-tool no-cache-miss assertion.

Shared E2E abstractions (commit 6e0fc95, use in new tests below):


Proposed new tests (6 tests, high value / low overlap)

T1. Native: legacy tool_state hint + “Clean workflow” code action ✅ (uncommitted)

T2. Native: schema validation produces errors for invalid workflow ✅ (uncommitted)

T3. Native: uncached tool state diagnostic ✅ (uncommitted)

T4. Format2: validation profile switch (basic → iwc → basic) ✅ (uncommitted)

T5. Format2: completions inside state: block ✅ (uncommitted)

T6. Format2: document symbols / outline


Implementation notes


Priority order

  1. T1 (legacy tool_state code action) — ✅ done (uncommitted)
  2. T3 (native uncached tool diagnostic) — ✅ done (uncommitted)
  3. T2 (native schema validation) — ✅ done (uncommitted)
  4. T4 (format2 profile switch) — ✅ done (uncommitted)
  5. T6 (document symbols) — straightforward
  6. T5 (completions) — ✅ done (uncommitted)

Unresolved questions

Resolved (2026-04-12, commit 2fec34e):