fix: preserve repeated add-dir flags in claude args (#1256)

This commit is contained in:
JerryLee
2026-07-03 22:38:30 -07:00
committed by GitHub
parent d060ddc963
commit 235b39bf21
2 changed files with 50 additions and 0 deletions
@@ -402,6 +402,45 @@ describe("parseSdkOptions", () => {
});
});
describe("add-dir handling", () => {
test("should accumulate multiple add-dir flags into additionalDirectories", () => {
const options: ClaudeOptions = {
claudeArgs: '--add-dir "/path/to/dir-a"\n--add-dir "/path/to/dir-b"',
};
const result = parseSdkOptions(options);
expect(result.sdkOptions.additionalDirectories).toEqual([
"/path/to/dir-a",
"/path/to/dir-b",
]);
expect(result.sdkOptions.extraArgs?.["add-dir"]).toBeUndefined();
});
test("should map a single add-dir flag to additionalDirectories", () => {
const options: ClaudeOptions = {
claudeArgs: '--add-dir "/path/to/dir"',
};
const result = parseSdkOptions(options);
expect(result.sdkOptions.additionalDirectories).toEqual(["/path/to/dir"]);
expect(result.sdkOptions.extraArgs?.["add-dir"]).toBeUndefined();
});
test("should preserve other extraArgs when extracting add-dir", () => {
const options: ClaudeOptions = {
claudeArgs: '--model "claude-3-5-sonnet" --add-dir "/path/to/dir"',
};
const result = parseSdkOptions(options);
expect(result.sdkOptions.additionalDirectories).toEqual(["/path/to/dir"]);
expect(result.sdkOptions.extraArgs?.["model"]).toBe("claude-3-5-sonnet");
expect(result.sdkOptions.extraArgs?.["add-dir"]).toBeUndefined();
});
});
describe("other extraArgs passthrough", () => {
test("should pass through json-schema in extraArgs", () => {
const options: ClaudeOptions = {