Skip to content

Commit aff0d54

Browse files
committed
revert(cli): use direct env reads for HOME in 5 commands
The HOME import was a load-time snapshot that broke 9 unit tests mutating process state at runtime. Revert to inline reads with a comment explaining the constraint.
1 parent 5974e2f commit aff0d54

5 files changed

Lines changed: 10 additions & 10 deletions

File tree

packages/cli/src/commands/config/cmd-config-auto.mts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
import { handleConfigAuto } from './handle-config-auto.mts'
22
import { FLAG_JSON, FLAG_MARKDOWN } from '../../constants/cli.mts'
3-
import { HOME } from '../../env/home.mts'
43
import { outputDryRunWrite } from '../../utils/dry-run/output.mts'
54
import { defineFlags } from '../../meow.mts'
65
import { commonFlags, outputFlags } from '../../flags.mts'
@@ -102,7 +101,8 @@ ${getSupportedConfigEntries()
102101
}
103102

104103
if (dryRun) {
105-
const configPath = `${HOME}/.config/socket/config.json`
104+
// Runtime read so tests that mutate process.env['HOME'] pick up changes.
105+
const configPath = `${process.env['HOME']}/.config/socket/config.json`
106106
outputDryRunWrite(
107107
configPath,
108108
`auto-discover and set config value for "${key}"`,

packages/cli/src/commands/config/config-command-factory.mts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import { FLAG_JSON, FLAG_MARKDOWN } from '../../constants/cli.mjs'
2-
import { HOME } from '../../env/home.mts'
32
import { outputDryRunWrite } from '../../utils/dry-run/output.mts'
43
import { commonFlags, outputFlags } from '../../flags.mts'
54
import { meowOrExit } from '../../utils/cli/with-subcommands.mjs'
@@ -131,7 +130,8 @@ ${spec.helpExamples.map(ex => ` $ ${command} ${ex}`).join('\n')}
131130
}
132131

133132
if (dryRun) {
134-
const configPath = `${HOME}/.config/socket/config.json`
133+
// Runtime read so tests that mutate process.env['HOME'] pick up changes.
134+
const configPath = `${process.env['HOME']}/.config/socket/config.json`
135135
const changes = spec.needsValue
136136
? [`Set "${key}" to: ${value}`]
137137
: [`Remove "${key}" from config`]

packages/cli/src/commands/install/cmd-install-completion.mts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import { handleInstallCompletion } from './handle-install-completion.mts'
2-
import { HOME } from '../../env/home.mts'
32
import { outputDryRunWrite } from '../../utils/dry-run/output.mts'
43
import { defineFlags } from '../../meow.mts'
54
import { commonFlags } from '../../flags.mts'
@@ -68,7 +67,8 @@ async function run(
6867
const targetName = cli.input[0] || 'socket'
6968

7069
if (dryRun) {
71-
const bashRcPath = `${HOME}/.bashrc`
70+
// Runtime read so tests that mutate process.env['HOME'] pick up changes.
71+
const bashRcPath = `${process.env['HOME']}/.bashrc`
7272
outputDryRunWrite(
7373
bashRcPath,
7474
`install bash completion for "${targetName}"`,

packages/cli/src/commands/login/cmd-login.mts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
import isInteractive from '@socketregistry/is-interactive/index.cjs'
22

33
import { attemptLogin } from './attempt-login.mts'
4-
import { HOME } from '../../env/home.mts'
54
import { outputDryRunWrite } from '../../utils/dry-run/output.mts'
65
import { defineFlags } from '../../meow.mts'
76
import { commonFlags } from '../../flags.mts'
@@ -83,7 +82,8 @@ async function run(
8382
const dryRun = !!cli.flags['dryRun']
8483

8584
if (dryRun) {
86-
const configPath = `${HOME}/.config/socket/config.json`
85+
// Runtime read so tests that mutate process.env['HOME'] pick up changes.
86+
const configPath = `${process.env['HOME']}/.config/socket/config.json`
8787
const changes = [
8888
'Prompt for Socket API token',
8989
'Verify token with Socket API',

packages/cli/src/commands/logout/cmd-logout.mts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
import { getDefaultLogger } from '@socketsecurity/lib/logger'
22

3-
import { HOME } from '../../env/home.mts'
43
import { outputDryRunDelete } from '../../utils/dry-run/output.mts'
54
import {
65
CONFIG_KEY_API_BASE_URL,
@@ -85,7 +84,8 @@ export async function run(
8584
const dryRun = !!cli.flags['dryRun']
8685

8786
if (dryRun) {
88-
const configPath = `${HOME}/.config/socket/config.json`
87+
// Runtime read so tests that mutate process.env['HOME'] pick up changes.
88+
const configPath = `${process.env['HOME']}/.config/socket/config.json`
8989
outputDryRunDelete('Socket API credentials', configPath)
9090
return
9191
}

0 commit comments

Comments
 (0)