Skip to content

Commit 83a0d64

Browse files
committed
test(env): add snap test for vp env off/on mode switching
Verifies the full system-first mode lifecycle with assertions: - `assert-managed` passes in managed mode (uses engines.node 20.18.0) - `vp env off` switches to system-first mode - `assert-not-managed` passes (version is NOT 20.18.0) - `vp env on` restores managed mode - `assert-managed` passes again (back to 20.18.0)
1 parent 6792eba commit 83a0d64

5 files changed

Lines changed: 26 additions & 13 deletions

File tree

packages/cli/snap-tests-global/command-env-off-on/package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
"node": "20.18.0"
77
},
88
"scripts": {
9-
"check-node": "node -e \"console.log(process.version)\""
9+
"assert-managed": "node src/assert-managed.mjs",
10+
"assert-not-managed": "node src/assert-not-managed.mjs"
1011
}
1112
}
Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
> vp run check-node # Managed mode: should use project's engines.node (20.18.0)
1+
> vp run assert-managed # Managed mode: should use project's engines.node 20.18.0
22
VITE+ - The Unified Toolchain for the Web
33

4-
$ node -e "console.log(process.version)" ⊘ cache disabled
5-
v<semver>
4+
$ node src/assert-managed.mjs ⊘ cache disabled
5+
OK: v<semver>
66

77

88
> vp env off # Switch to system-first mode
@@ -14,11 +14,11 @@ All vp commands and shims will now prefer system Node.js, falling back to manage
1414

1515
Run `vp env on` to always use Vite+ managed Node.js.
1616

17-
> vp run check-node # System-first mode: should use system Node.js, not project's 20.18.0
17+
> vp run assert-not-managed # System-first mode: must NOT use 20.18.0
1818
VITE+ - The Unified Toolchain for the Web
1919

20-
$ node -e "console.log(process.version)" ⊘ cache disabled
21-
v<semver>
20+
$ node src/assert-not-managed.mjs ⊘ cache disabled
21+
OK: v<semver>
2222

2323

2424
> vp env on # Switch back to managed mode
@@ -30,9 +30,9 @@ All vp commands and shims will now always use Vite+ managed Node.js.
3030

3131
Run `vp env off` to prefer system Node.js instead.
3232

33-
> vp run check-node # Managed mode restored: should use project's engines.node again
33+
> vp run assert-managed # Managed mode restored: should use 20.18.0 again
3434
VITE+ - The Unified Toolchain for the Web
3535

36-
$ node -e "console.log(process.version)" ⊘ cache disabled
37-
v<semver>
36+
$ node src/assert-managed.mjs ⊘ cache disabled
37+
OK: v<semver>
3838

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
// Assert we ARE using the managed Node.js (v20.18.0 from engines.node)
2+
if (process.version !== 'v20.18.0') {
3+
console.error(`Expected managed Node.js v20.18.0, got ${process.version}`);
4+
process.exit(1);
5+
}
6+
console.log(`OK: ${process.version}`);
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
// Assert we are NOT using the managed Node.js (v20.18.0 from engines.node)
2+
if (process.version === 'v20.18.0') {
3+
console.error(`Expected system Node.js, got managed v20.18.0`);
4+
process.exit(1);
5+
}
6+
console.log(`OK: ${process.version}`);

packages/cli/snap-tests-global/command-env-off-on/steps.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,11 @@
22
"serial": true,
33
"ignoredPlatforms": ["win32"],
44
"commands": [
5-
"vp run check-node # Managed mode: should use project's engines.node (20.18.0)",
5+
"vp run assert-managed # Managed mode: should use project's engines.node 20.18.0",
66
"vp env off # Switch to system-first mode",
7-
"vp run check-node # System-first mode: should use system Node.js, not project's 20.18.0",
7+
"vp run assert-not-managed # System-first mode: must NOT use 20.18.0",
88
"vp env on # Switch back to managed mode",
9-
"vp run check-node # Managed mode restored: should use project's engines.node again"
9+
"vp run assert-managed # Managed mode restored: should use 20.18.0 again"
1010
],
1111
"after": ["vp env on"]
1212
}

0 commit comments

Comments
 (0)