Repository navigation
fix(vscode): accept rstest 0.13 reporter statuses alongside pre-0.13 - #127
Merged
Merged
Conversation
rstest#1875 renames the reporter status literals (pass|fail|skip -> passed|failed|skipped; run status pass|fail -> passed|failed). The extension resolves @rstest/core from the user's project, so both lines run against one build. Route every status read through one compat module, keep consumers on the 0.13 vocabulary, and tag the call sites COMPAT(rstest<0.13) so dropping pre-0.13 support is a delete plus a grep.
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
This was referenced Nov 5, 2026
Merged
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
rstest 0.13 (
web-infra-dev/rstest#1875, commitffc4eb29) renames the reporter status literals:0.13 is not on npm yet (latest
0.12.6), but the extension resolves@rstest/corefrom the user's project, so a project that upgrades would hit the new vocabulary withSUPPORT_MATRIX['@rstest/core'] = '>=0.12.0'still satisfied. The twoswitches inTestRunReporterand the worker's run guard would then match no case: file and case items never finish, and an operation-level failure reads as success.Both lines now run through one compat module:
Consumers speak only the 0.13 vocabulary; every compat call site carries
COMPAT(rstest<0.13). Pre-0.13 support is meant to be dropped later, so removal is: deletecompat/rstestPre013.tsand its test, thengrep -rn "COMPAT(rstest<0.13)" packages/vscodeand remove those sites. The full checklist lives in the module header and inpackages/vscode/AGENTS.md→ Active compatibility shims.Unknown statuses do not guess: the normalizers return
undefined, the reporter'sdefault:logs, and the worker logs a warning instead of treating the run as a success.Evidence
passed|failed|skipped,switch (test.status)/switch (result.status)match nothing — items staystarted,run.failed()never fires, andresult.status === 'fail'never throws for a threshold failure.After:
pnpm lint→Lint and type check passed (207 files);pnpm test:unit→ 420 tests / 420 passed, 0 failed (41 files);VSCODE_CLI=1 pnpm test:e2e rstest→ exit 0, no failing suites.CI's E2E runs the published legacy line (
@rstest/core 0.12.6). The 0.13 line was verified locally against an rstestmainbuild (see Testing); a pinned 0.13 fixture follows once 0.13 publishes.Testing
pnpm lint(type-check included): pass, 207 files.pnpm test:unit: 420/420.pnpm build+VSCODE_CLI=1 pnpm test:e2e rstest: exit 0, 0[e2e-fail]lines.web-infra-dev/rstest@74810e2(main, includes feat(core)!: stabilize reporter contract for 1.0 web-infra-dev/rstest#1875), built from a scratch clone and loaded viarstack.rstest.corePath(logs confirmrstestPathresolved to the main build'sdist/index.js):[e2e-fail]lines; 34–42s vs. 38s on 0.12.6 (no hang from 0.13's hook-join dispatch).origin/main'stestRunReporter.ts+worker/index.ts: exit 1, 4 failing suites (progress reporting, single test case, debug launch, Test Explorer UX), e.g.progress.test.js:810 == 1— no item ever marked passed.bridge.test.tswas skipped in these local runs only: a globalcorePathoverrides the bridge's resolution by design, which that suite asserts against.Out of scope
Follow-ups tracked in #115:
TestRunEndPayload.status, vendoredcoreInternals.tsresync, tracked-upstream SHA update,@rstest/coredevDependency / fixture bump, a 0.13 E2E fixture.Refs #115
Merge Danger
Door: two-way — revert restores the old switches; no persisted state, settings or protocol changes.
Blast Radius: test-stack reporting only. Lint and fmt stacks untouched; the compat module is self-contained and the only behavioral additions are the
default:/undefineddiagnostics.