Skip to content

test: add packaged VS Code E2E smoke coverage - #302

Open
Sanjay Singh (san360) wants to merge 5 commits into
mainfrom
san360-vs-code-e2e-tests
Open

Sanjay Singh (san360) wants to merge 5 commits into
mainfrom
san360-vs-code-e2e-tests

Conversation

@san360

@san360 Sanjay Singh (san360) commented Oct 22, 2026 •

Copy link
Copy Markdown
Contributor

Description

Add real packaged-VSIX testing alongside the existing unit and browser suites, with inspectable synthetic input data and screenshots of successful UI journeys.

  • Install the actual VSIX into disposable VS Code installations using ExTester. Isolate home/AppData/Copilot directories, extension storage, profiles, and caches from developer data.
  • Check in fully synthetic TypeScript, Python, and Go project definitions in tests/vscode/data/projects.json. Generate raw chat sessions and edit timelines: 3 projects, 21 sessions, 63 requests, 315 added lines and 294 net lines over 7 days. Reload adds one session, producing 22 sessions, 66 requests and 330 added lines. No personal logs were read or copied; input integrity is asserted.
  • Cover activation, real parser/analysis workers, Dashboard metrics, overlapping Timeline sessions, nonzero Output by project, Patterns Work Hours/Projects, repeated reloads, reopening, and empty data. Discover suite files automatically and reject focused, skipped, empty, or environment-filtered desktop runs.
  • Capture 9 milestone screenshots, wait for charts to finish rendering, and publish an offline HTML gallery with captions, suite outcomes, input counts, and the VSIX hash. Include source definitions, 45 initial raw input files, and 2 planned reload files in the diagnostic artifact. Preserve automatic failure screenshots separately.
  • Run browser and desktop tests in PR/release workflows through a shared action, then publish the exact tested VSIX. Run the minimum/latest compatibility matrix on Linux, Windows, and macOS for desktop-harness PR changes, weekly, and on manual dispatch. Document local execution, isolation, dataset maintenance, and artifact viewing in CONTRIBUTING.md.

The review fixes handle ExTester's precise wrapped stale-outer-frame error within the original deadline, prevent inherited MOCHA_GREP/MOCHA_INVERT from silently selecting a subset, and avoid clicking while the replacement dashboard is still laying out.

Validation on the current revision:

Command Result
npm run check Passed locally on Node 22.23.3: 86 test files, 1,693 tests passed and 5 existing skips; also passed in hosted Linux CI. SQLite CLI was available for the existing database tests.
npm run test:e2e with CI=true Passed in hosted Linux CI: 124 tests passed and 7 existing feature-gated skips.
npm run test:vscode -- --vsix ai-engineer-coach-0.1.0.vsix Passed: all 7 desktop tests on the manifest minimum VS Code 1.125.0. Also verified locally with restrictive MOCHA_GREP and MOCHA_INVERT values inherited by the parent; the complete suite still ran.
npm run test:vscode -- --vsix ai-engineer-coach-0.1.0.vsix --vscode-version latest Passed in the hosted compatibility matrix on all three platforms.
npm run check-size Passed; extension bundle 1.63 MB and VSIX approximately 3.81 MB, within their budgets.
go run github.com/rhysd/actionlint/cmd/actionlint@v1.7.12 .github\workflows\ci.yml .github\workflows\release.yml .github\workflows\vscode-compatibility.yml Passed.

Try it locally: with Node 22, run npm ci then npm run test:vscode. It builds the VSIX and runs the isolated synthetic-data suite. To use an existing artifact without rebuilding, pass -- --vsix ai-engineer-coach-0.1.0.vsix. For headless Linux, first run npx playwright install-deps chromium, then prefix the desktop command with xvfb-run -a. Local galleries and raw fixture copies are under test-results/vscode/<run>.

Related Issues

Resolves #208.

Checklist

  • npm run check passes (typecheck + lint + spellcheck + knip + tests)
  • Changes are covered by tests (if applicable)
  • Documentation updated (if applicable)

Add isolated synthetic-session fixtures and real VSIX desktop smoke coverage. Run browser and desktop suites in PR/release pipelines and schedule cross-platform compatibility checks.

Resolves #208

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot AI balanced review requested due to automatic review settings October 22, 2026 05:08
@github-actions

github-actions Bot commented Oct 22, 2026 •

Copy link
Copy Markdown

Dependency Review

The following issues were found:

  • ✅ 0 vulnerable package(s)
  • ✅ 0 package(s) with incompatible licenses
  • ✅ 0 package(s) with invalid SPDX license definitions
  • ✅ 0 package(s) with unknown licenses.
  • ⚠️ 20 packages with OpenSSF Scorecard issues.

View full job summary

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔵 Needs a closer look

The new release-blocking desktop harness needs hosted Linux and macOS validation beyond the reported Windows results.

No open issues 🎉

What changed in this PR

Adds packaged-extension smoke tests inside real VS Code, complementing the existing unit and browser suites and addressing #208’s release-testing need.

Changes:

  • Adds isolated synthetic fixtures and desktop coverage for activation, workers, navigation, reloads, reopening, and empty data.
  • Integrates browser and desktop tests into CI and release gates, preserving the tested VSIX and failure diagnostics.
  • Adds cross-platform compatibility runs, contributor guidance, and desktop-test integration with existing development checks.
File Description
vitest.config.mts Includes desktop fixture unit tests.
tsconfig.json Type-checks desktop test sources.
tests/​vscode/​tsconfig.build.json Compiles the desktop harness separately.
tests/​vscode/​suite/​populated.spec.ts Tests real session analysis and dashboard interactions.
tests/​vscode/​suite/​empty.spec.ts Tests isolated no-data behavior.
tests/​vscode/​run.ts Orchestrates VSIX installation, scenarios, diagnostics, and hashing.
tests/​vscode/​fixtures.ts Creates isolated fixtures and verifies input integrity.
tests/​vscode/​fixtures.test.ts Tests fixture parsing, isolation, and runner helpers.
tests/​vscode/​dashboard.ts Provides reusable desktop dashboard interactions.
playwright.config.ts Adds failure diagnostics and tighter CI execution settings.
package.json Adds desktop test commands and dependencies.
package-lock.json Locks desktop testing dependencies and transitive updates.
knip.json Registers desktop test sources and entry points.
eslint.config.mjs Extends lint coverage to desktop tests.
CONTRIBUTING.md Documents execution, isolation, and regression-test maintenance.
.vscodeignore Excludes desktop runtime files and test artifacts from packaging.
.github/​workflows/​vscode-compatibility.yml Tests minimum and latest VS Code across three operating systems.
.github/​workflows/​release.yml Gates release publication on checks and E2E tests.
.github/​workflows/​ci.yml Tests and uploads the exact packaged VSIX.
.github/​actions/​e2e/​action.yml Shares E2E setup, execution, caching, and diagnostic uploads.

Review effort: Balanced

Wait for the replacement document and reacquire transiently stale frames within one deadline. Keep reload execution and smoke assertions unchanged, with deterministic regression coverage for the Linux CI race.

Fixes CI for #302; relates to #208.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot AI balanced review requested due to automatic review settings October 23, 2026 07:50

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔵 Needs a closer look

The release-blocking harness needs its frame-retry issue resolved and human confirmation of GitHub-hosted Linux and macOS execution.

1 open issue

Review effort: Balanced

Comment thread tests/vscode/dashboard.ts Outdated
Capture six named synthetic-data milestones after assertions and chart rendering. Generate an offline screenshot gallery and link its diagnostics artifact from the GitHub Actions summary, preserving failure outcomes and existing failure screenshots.

Relates to #208 and #302.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot AI balanced review requested due to automatic review settings October 23, 2026 09:24

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔵 Needs a closer look

The release-blocking desktop gate needs environment hardening and confirmed GitHub-hosted Linux and macOS execution.

2 open issues

Review effort: Balanced

Comment thread tests/vscode/fixtures.ts Outdated
Check in fictional TypeScript, Python and Go projects with seven days of raw sessions and edit timelines. Verify meaningful Dashboard, Timeline, Output and Patterns results, publish the synthetic input files and dataset manifest, and capture nine UI milestones.

No personal logs were read or copied. Relates to #208 and #302.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot AI balanced review requested due to automatic review settings October 23, 2026 09:41

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔵 Needs a closer look

The new mandatory desktop release gate still needs GitHub-hosted Linux and macOS validation and final human review.

2 open issues

Review effort: Balanced

Handle ExTester's precise stale-outer-frame wrapper, remove inherited Mocha selection filters, and wait for the default dashboard after reload. Add regression coverage and run compatibility checks for desktop-harness PR changes.

Addresses review feedback on #302; relates to #208.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot AI balanced review requested due to automatic review settings October 23, 2026 09:54

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔵 Needs a closer look

The release-blocking desktop harness needs human confirmation of Linux and macOS execution results, which remain unverified in the supplied context.

No open issues 🎉

2 resolved since last review

Review effort: Balanced

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

e2e test with vscode

3 participants