mirror of
https://github.com/anthropics/claude-code-action.git
synced 2026-08-22 03:18:54 +08:00
fix: map claude_args model to SDK options (#1474)
This commit is contained in:
@@ -106,7 +106,8 @@ describe("parseSdkOptions", () => {
|
||||
const result = parseSdkOptions(options);
|
||||
|
||||
expect(result.sdkOptions.extraArgs?.["allowedTools"]).toBeUndefined();
|
||||
expect(result.sdkOptions.extraArgs?.["model"]).toBe("claude-3-5-sonnet");
|
||||
expect(result.sdkOptions.extraArgs?.["model"]).toBeUndefined();
|
||||
expect(result.sdkOptions.model).toBe("claude-3-5-sonnet");
|
||||
});
|
||||
|
||||
test("should handle hyphenated --allowed-tools flag", () => {
|
||||
@@ -366,7 +367,8 @@ describe("parseSdkOptions", () => {
|
||||
);
|
||||
expect(mcpConfig.mcpServers).toHaveProperty("server1");
|
||||
expect(mcpConfig.mcpServers).toHaveProperty("server2");
|
||||
expect(result.sdkOptions.extraArgs?.["model"]).toBe("claude-3-5-sonnet");
|
||||
expect(result.sdkOptions.extraArgs?.["model"]).toBeUndefined();
|
||||
expect(result.sdkOptions.model).toBe("claude-3-5-sonnet");
|
||||
});
|
||||
|
||||
test("should handle real-world scenario: action config + user config", () => {
|
||||
@@ -436,7 +438,8 @@ describe("parseSdkOptions", () => {
|
||||
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?.["model"]).toBeUndefined();
|
||||
expect(result.sdkOptions.model).toBe("claude-3-5-sonnet");
|
||||
expect(result.sdkOptions.extraArgs?.["add-dir"]).toBeUndefined();
|
||||
});
|
||||
});
|
||||
@@ -464,7 +467,8 @@ describe("parseSdkOptions", () => {
|
||||
|
||||
const result = parseSdkOptions(options);
|
||||
|
||||
expect(result.sdkOptions.extraArgs?.["model"]).toBe("claude-haiku");
|
||||
expect(result.sdkOptions.extraArgs?.["model"]).toBeUndefined();
|
||||
expect(result.sdkOptions.model).toBe("claude-haiku");
|
||||
expect(result.sdkOptions.allowedTools).toEqual(["Edit"]);
|
||||
});
|
||||
|
||||
@@ -475,7 +479,8 @@ describe("parseSdkOptions", () => {
|
||||
|
||||
const result = parseSdkOptions(options);
|
||||
|
||||
expect(result.sdkOptions.extraArgs?.["model"]).toBe("claude-haiku");
|
||||
expect(result.sdkOptions.extraArgs?.["model"]).toBeUndefined();
|
||||
expect(result.sdkOptions.model).toBe("claude-haiku");
|
||||
});
|
||||
|
||||
test("should not strip inline # that appears inside a quoted value", () => {
|
||||
@@ -485,11 +490,37 @@ describe("parseSdkOptions", () => {
|
||||
|
||||
const result = parseSdkOptions(options);
|
||||
|
||||
expect(result.sdkOptions.extraArgs?.["model"]).toBe("claude-haiku");
|
||||
expect(result.sdkOptions.extraArgs?.["model"]).toBeUndefined();
|
||||
expect(result.sdkOptions.model).toBe("claude-haiku");
|
||||
expect(result.sdkOptions.extraArgs?.["prompt"]).toBe("use color #ff0000");
|
||||
});
|
||||
});
|
||||
|
||||
describe("model handling", () => {
|
||||
test("should map --model from claudeArgs to sdkOptions.model", () => {
|
||||
const options: ClaudeOptions = {
|
||||
claudeArgs: "--model claude-haiku-4-5-20251001",
|
||||
};
|
||||
|
||||
const result = parseSdkOptions(options);
|
||||
|
||||
expect(result.sdkOptions.model).toBe("claude-haiku-4-5-20251001");
|
||||
expect(result.sdkOptions.extraArgs?.["model"]).toBeUndefined();
|
||||
});
|
||||
|
||||
test("should prefer direct model option over --model from claudeArgs", () => {
|
||||
const options: ClaudeOptions = {
|
||||
model: "claude-sonnet-4-6",
|
||||
claudeArgs: "--model claude-haiku-4-5-20251001",
|
||||
};
|
||||
|
||||
const result = parseSdkOptions(options);
|
||||
|
||||
expect(result.sdkOptions.model).toBe("claude-sonnet-4-6");
|
||||
expect(result.sdkOptions.extraArgs?.["model"]).toBeUndefined();
|
||||
});
|
||||
});
|
||||
|
||||
describe("environment variables passthrough", () => {
|
||||
test("should include OTEL environment variables in sdkOptions.env", () => {
|
||||
// Set up test environment variables
|
||||
|
||||
Reference in New Issue
Block a user