Skip to content

Commit b45e5de

Browse files
committed
Fix argv parser edge cases and remove unused export
- Make readProfileOverrideFromProcessArgv respect -- terminators and validate profile values - Remove unused resolveActiveCliSessionDefaults export - Update test to use resolveCliSessionDefaults directly
1 parent d460455 commit b45e5de

File tree

3 files changed

+32
-29
lines changed

3 files changed

+32
-29
lines changed

src/cli/__tests__/session-defaults.test.ts

Lines changed: 24 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -3,34 +3,36 @@ import * as z from 'zod';
33
import {
44
mergeCliSessionDefaults,
55
pickSchemaSessionDefaults,
6-
resolveActiveCliSessionDefaults,
6+
resolveCliSessionDefaults,
77
} from '../session-defaults.ts';
88

99
describe('CLI session defaults', () => {
1010
it('uses the active profile without overlaying global defaults', () => {
11-
const defaults = resolveActiveCliSessionDefaults({
12-
enabledWorkflows: [],
13-
customWorkflows: {},
14-
debug: false,
15-
sentryDisabled: false,
16-
experimentalWorkflowDiscovery: false,
17-
disableSessionDefaults: true,
18-
disableXcodeAutoSync: false,
19-
uiDebuggerGuardMode: 'error',
20-
incrementalBuildsEnabled: false,
21-
dapRequestTimeoutMs: 30_000,
22-
dapLogEvents: false,
23-
launchJsonWaitMs: 8_000,
24-
debuggerBackend: 'dap',
25-
sessionDefaults: {
26-
workspacePath: 'Global.xcworkspace',
27-
},
28-
sessionDefaultsProfiles: {
29-
ios: {
30-
scheme: 'ProfileScheme',
11+
const defaults = resolveCliSessionDefaults({
12+
runtimeConfig: {
13+
enabledWorkflows: [],
14+
customWorkflows: {},
15+
debug: false,
16+
sentryDisabled: false,
17+
experimentalWorkflowDiscovery: false,
18+
disableSessionDefaults: true,
19+
disableXcodeAutoSync: false,
20+
uiDebuggerGuardMode: 'error',
21+
incrementalBuildsEnabled: false,
22+
dapRequestTimeoutMs: 30_000,
23+
dapLogEvents: false,
24+
launchJsonWaitMs: 8_000,
25+
debuggerBackend: 'dap',
26+
sessionDefaults: {
27+
workspacePath: 'Global.xcworkspace',
28+
},
29+
sessionDefaultsProfiles: {
30+
ios: {
31+
scheme: 'ProfileScheme',
32+
},
3133
},
34+
activeSessionDefaultsProfile: 'ios',
3235
},
33-
activeSessionDefaultsProfile: 'ios',
3436
});
3537

3638
expect(defaults).toEqual({ scheme: 'ProfileScheme' });

src/cli/register-tool-commands.ts

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,8 +37,15 @@ function readProfileOverrideFromProcessArgv(): string | undefined {
3737
const argv = process.argv.slice(2);
3838
for (let index = 0; index < argv.length; index += 1) {
3939
const token = argv[index];
40+
if (token === '--') {
41+
break;
42+
}
4043
if (token === '--profile') {
41-
return argv[index + 1];
44+
const nextToken = argv[index + 1];
45+
if (nextToken && !nextToken.startsWith('-')) {
46+
return nextToken;
47+
}
48+
return undefined;
4249
}
4350
if (token.startsWith('--profile=')) {
4451
return token.slice('--profile='.length);

src/cli/session-defaults.ts

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -24,12 +24,6 @@ export function resolveCliSessionDefaults(opts: {
2424
return { ...(opts.runtimeConfig.sessionDefaults ?? {}) };
2525
}
2626

27-
export function resolveActiveCliSessionDefaults(
28-
runtimeConfig: ResolvedRuntimeConfig,
29-
): Partial<SessionDefaults> {
30-
return resolveCliSessionDefaults({ runtimeConfig });
31-
}
32-
3327
export function isKnownCliSessionDefaultsProfile(
3428
runtimeConfig: ResolvedRuntimeConfig,
3529
profileName: string,

0 commit comments

Comments
 (0)