Skip to content

test(snapshots): migrate the last blocked snap tests to the PTY suite#2143

Merged
graphite-app[bot] merged 1 commit into
mainfrom
migrate-blocked-snap-tests
Jul 10, 2026
Merged

test(snapshots): migrate the last blocked snap tests to the PTY suite#2143
graphite-app[bot] merged 1 commit into
mainfrom
migrate-blocked-snap-tests

Conversation

@fengmk2

@fengmk2 fengmk2 commented Jul 10, 2026

Copy link
Copy Markdown
Member

Migrates the final 10 legacy snap tests, emptying both legacy trees (packages/cli/snap-tests, packages/cli/snap-tests-global).

Runner additions that unblock them:

  • Step env values expand ${NAME}: ${workspace} resolves to the step's working directory, any other name to the case env. This expresses the shell forms VP_HOME="$(pwd)/home" and PATH="$(pwd)/bin:$PATH" used by command-env-setup-external-vp, npm-global-install-custom-prefix-on-path, and shim-corepack-enable-install-directory.
  • Programs a case creates under its own root (shims from an isolated vp env setup) count as case-owned for resolution, and a per-case link-node-modules = true exposes the run-root node_modules as the workspace parent-dir node_modules like the legacy layout, so bin-oxlint-wrapper/bin-oxfmt-wrapper address ../node_modules/vite-plus/bin/* verbatim.
  • The ./-prefix program join no longer leaks a /./ component into recorded shim targets, and an empty step cwd no longer leaks a trailing separator into ${workspace}.

Hermeticity fixes over the legacy versions: shim-npm-downloads-uncached-package-manager-version sets seed-runtime = false (its rm of a pinned runtime must not reach the shared seed through the symlink) and pins .node-version 22.11.0 instead of inheriting the environment default; command-env-setup-external-vp drops VP_BYPASS (the hermetic PATH has no system node); the custom-prefix case asserts the npm bin as a symlink, which the legacy test -f followed silently.

fingerprint-ignore-test and vitest-browser-mode stay disabled on every platform as in the legacy suite; their fixtures carry the converted steps and record no snapshot until re-enabled.

The legacy CI jobs (cli-snap-test matrix, retry script, Renovate ignorePaths for the trees) are removed here too, and the legacy runner exits cleanly when a tree is absent from a fresh checkout, so local pnpm test keeps working. Deleting the legacy runner and migrator tooling under packages/tools can follow separately.

Closes #2116.

fengmk2 commented Jul 10, 2026

Copy link
Copy Markdown
Member Author

How to use the Graphite Merge Queue

Add the label auto-merge to this PR to add it to the merge queue.

You must have a Graphite account in order to use the merge queue. Sign up using this link.

An organization admin has enabled the Graphite Merge Queue in this repository.

Please do not merge from GitHub as this will restart CI on PRs being processed by the merge queue.

This stack of pull requests is managed by Graphite. Learn more about stacking.

@fengmk2 fengmk2 marked this pull request as ready for review July 10, 2026 12:45
@fengmk2 fengmk2 self-assigned this Jul 10, 2026
@fengmk2 fengmk2 requested a review from wan9chi July 10, 2026 12:45
@graphite-app

graphite-app Bot commented Jul 10, 2026

Copy link
Copy Markdown

Merge activity

…#2143)

Migrates the final 10 legacy snap tests, emptying both legacy trees (`packages/cli/snap-tests`, `packages/cli/snap-tests-global`).

Runner additions that unblock them:

- Step env values expand `${NAME}`: `${workspace}` resolves to the step's working directory, any other name to the case env. This expresses the shell forms `VP_HOME="$(pwd)/home"` and `PATH="$(pwd)/bin:$PATH"` used by `command-env-setup-external-vp`, `npm-global-install-custom-prefix-on-path`, and `shim-corepack-enable-install-directory`.
- Programs a case creates under its own root (shims from an isolated `vp env setup`) count as case-owned for resolution, and a per-case `link-node-modules = true` exposes the run-root `node_modules` as the workspace parent-dir `node_modules` like the legacy layout, so `bin-oxlint-wrapper`/`bin-oxfmt-wrapper` address `../node_modules/vite-plus/bin/*` verbatim.
- The `./`-prefix program join no longer leaks a `/./` component into recorded shim targets, and an empty step cwd no longer leaks a trailing separator into `${workspace}`.

Hermeticity fixes over the legacy versions: `shim-npm-downloads-uncached-package-manager-version` sets `seed-runtime = false` (its `rm` of a pinned runtime must not reach the shared seed through the symlink) and pins `.node-version 22.11.0` instead of inheriting the environment default; `command-env-setup-external-vp` drops `VP_BYPASS` (the hermetic PATH has no system node); the custom-prefix case asserts the npm bin as a symlink, which the legacy `test -f` followed silently.

`fingerprint-ignore-test` and `vitest-browser-mode` stay disabled on every platform as in the legacy suite; their fixtures carry the converted steps and record no snapshot until re-enabled.

The legacy CI jobs (`cli-snap-test` matrix, retry script, Renovate ignorePaths for the trees) are removed here too, and the legacy runner exits cleanly when a tree is absent from a fresh checkout, so local `pnpm test` keeps working. Deleting the legacy runner and migrator tooling under `packages/tools` can follow separately.

Closes #2116.
@graphite-app graphite-app Bot force-pushed the migrate-command-pm-snap-tests branch from efd0c6b to 98cca64 Compare July 10, 2026 14:06
@graphite-app graphite-app Bot force-pushed the migrate-blocked-snap-tests branch from d83fa3b to e208eef Compare July 10, 2026 14:07
Base automatically changed from migrate-command-pm-snap-tests to main July 10, 2026 14:14
@graphite-app graphite-app Bot merged commit e208eef into main Jul 10, 2026
39 checks passed
@graphite-app graphite-app Bot deleted the migrate-blocked-snap-tests branch July 10, 2026 14:15
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.

Tracking: migrate legacy snap tests to the PTY snapshot suite

2 participants