Skip to content

Commit 698a7ae

Browse files
committed
fix(tests): resolve cross-platform npm and path issues
This commit resolves Windows test failures by addressing two critical issues: 1. npm ENOENT error in integration tests: - Added missing PATH environment variable to npm install spawn call - Fixes "spawn npm ENOENT" errors on Windows (3 test failures) - Tests now properly inherit platform-specific PATH separator 2. Arborist path normalization: - Wrapped path.join() results with normalizePath() in all arborist functions - Ensures consistent forward-slash paths across platforms - Fixes 7 test failures where Windows backslashes caused mismatches
1 parent 99bf862 commit 698a7ae

File tree

2 files changed

+14
-8
lines changed

2 files changed

+14
-8
lines changed

packages/cli/src/commands/npm/socket-npm-integration.test.mts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,10 @@ if (!npmDirs.length) {
5151
// Ensure npm is installed in the fixture.
5252
await spawn('npm', ['install', ...(useDebug ? [] : [FLAG_SILENT])], {
5353
cwd: npmPath,
54+
env: {
55+
...process.env,
56+
PATH: `${npmBinPath}${pathSep}${ENV.PATH}`,
57+
},
5458
stdio: useDebug ? 'inherit' : 'ignore',
5559
})
5660

packages/cli/src/shadow/npm/paths.mts

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,8 @@ export function getArboristPackagePath() {
2626
let _arboristClassPath: string | undefined
2727
export function getArboristClassPath() {
2828
if (_arboristClassPath === undefined) {
29-
_arboristClassPath = path.join(
30-
getArboristPackagePath(),
31-
'lib/arborist/index.js',
29+
_arboristClassPath = normalizePath(
30+
path.join(getArboristPackagePath(), 'lib/arborist/index.js'),
3231
)
3332
}
3433
return _arboristClassPath
@@ -37,25 +36,28 @@ export function getArboristClassPath() {
3736
let _arboristEdgeClassPath: string | undefined
3837
export function getArboristEdgeClassPath() {
3938
if (_arboristEdgeClassPath === undefined) {
40-
_arboristEdgeClassPath = path.join(getArboristPackagePath(), 'lib/edge.js')
39+
_arboristEdgeClassPath = normalizePath(
40+
path.join(getArboristPackagePath(), 'lib/edge.js'),
41+
)
4142
}
4243
return _arboristEdgeClassPath
4344
}
4445

4546
let _arboristNodeClassPath: string | undefined
4647
export function getArboristNodeClassPath() {
4748
if (_arboristNodeClassPath === undefined) {
48-
_arboristNodeClassPath = path.join(getArboristPackagePath(), 'lib/node.js')
49+
_arboristNodeClassPath = normalizePath(
50+
path.join(getArboristPackagePath(), 'lib/node.js'),
51+
)
4952
}
5053
return _arboristNodeClassPath
5154
}
5255

5356
let _arboristOverrideSetClassPath: string | undefined
5457
export function getArboristOverrideSetClassPath() {
5558
if (_arboristOverrideSetClassPath === undefined) {
56-
_arboristOverrideSetClassPath = path.join(
57-
getArboristPackagePath(),
58-
'lib/override-set.js',
59+
_arboristOverrideSetClassPath = normalizePath(
60+
path.join(getArboristPackagePath(), 'lib/override-set.js'),
5961
)
6062
}
6163
return _arboristOverrideSetClassPath

0 commit comments

Comments
 (0)