mirror of https://github.com/openclaw/openclaw.git
test: share config pruning defaults setup
This commit is contained in:
parent
9442260a20
commit
6d06c582e3
|
|
@ -15,6 +15,22 @@ async function writeConfigForTest(home: string, config: unknown): Promise<void>
|
|||
);
|
||||
}
|
||||
|
||||
async function loadConfigForHome(config: unknown) {
|
||||
return await withTempHome(async (home) => {
|
||||
await writeConfigForTest(home, config);
|
||||
return loadConfig();
|
||||
});
|
||||
}
|
||||
|
||||
function expectAnthropicPruningDefaults(
|
||||
cfg: ReturnType<typeof loadConfig>,
|
||||
heartbeatEvery = "30m",
|
||||
) {
|
||||
expect(cfg.agents?.defaults?.contextPruning?.mode).toBe("cache-ttl");
|
||||
expect(cfg.agents?.defaults?.contextPruning?.ttl).toBe("1h");
|
||||
expect(cfg.agents?.defaults?.heartbeat?.every).toBe(heartbeatEvery);
|
||||
}
|
||||
|
||||
describe("config pruning defaults", () => {
|
||||
it("does not enable contextPruning by default", async () => {
|
||||
await withEnvAsync({ ANTHROPIC_API_KEY: "", ANTHROPIC_OAUTH_TOKEN: "" }, async () => {
|
||||
|
|
@ -29,8 +45,7 @@ describe("config pruning defaults", () => {
|
|||
});
|
||||
|
||||
it("enables cache-ttl pruning + 1h heartbeat for Anthropic OAuth", async () => {
|
||||
await withTempHome(async (home) => {
|
||||
await writeConfigForTest(home, {
|
||||
const cfg = await loadConfigForHome({
|
||||
auth: {
|
||||
profiles: {
|
||||
"anthropic:me": { provider: "anthropic", mode: "oauth", email: "me@example.com" },
|
||||
|
|
@ -39,17 +54,11 @@ describe("config pruning defaults", () => {
|
|||
agents: { defaults: {} },
|
||||
});
|
||||
|
||||
const cfg = loadConfig();
|
||||
|
||||
expect(cfg.agents?.defaults?.contextPruning?.mode).toBe("cache-ttl");
|
||||
expect(cfg.agents?.defaults?.contextPruning?.ttl).toBe("1h");
|
||||
expect(cfg.agents?.defaults?.heartbeat?.every).toBe("1h");
|
||||
});
|
||||
expectAnthropicPruningDefaults(cfg, "1h");
|
||||
});
|
||||
|
||||
it("enables cache-ttl pruning + 1h cache TTL for Anthropic API keys", async () => {
|
||||
await withTempHome(async (home) => {
|
||||
await writeConfigForTest(home, {
|
||||
const cfg = await loadConfigForHome({
|
||||
auth: {
|
||||
profiles: {
|
||||
"anthropic:api": { provider: "anthropic", mode: "api_key" },
|
||||
|
|
@ -62,20 +71,14 @@ describe("config pruning defaults", () => {
|
|||
},
|
||||
});
|
||||
|
||||
const cfg = loadConfig();
|
||||
|
||||
expect(cfg.agents?.defaults?.contextPruning?.mode).toBe("cache-ttl");
|
||||
expect(cfg.agents?.defaults?.contextPruning?.ttl).toBe("1h");
|
||||
expect(cfg.agents?.defaults?.heartbeat?.every).toBe("30m");
|
||||
expectAnthropicPruningDefaults(cfg);
|
||||
expect(
|
||||
cfg.agents?.defaults?.models?.["anthropic/claude-opus-4-5"]?.params?.cacheRetention,
|
||||
).toBe("short");
|
||||
});
|
||||
});
|
||||
|
||||
it("adds cacheRetention defaults for dated Anthropic primary model refs", async () => {
|
||||
await withTempHome(async (home) => {
|
||||
await writeConfigForTest(home, {
|
||||
const cfg = await loadConfigForHome({
|
||||
auth: {
|
||||
profiles: {
|
||||
"anthropic:api": { provider: "anthropic", mode: "api_key" },
|
||||
|
|
@ -88,21 +91,14 @@ describe("config pruning defaults", () => {
|
|||
},
|
||||
});
|
||||
|
||||
const cfg = loadConfig();
|
||||
|
||||
expect(cfg.agents?.defaults?.contextPruning?.mode).toBe("cache-ttl");
|
||||
expect(cfg.agents?.defaults?.contextPruning?.ttl).toBe("1h");
|
||||
expect(cfg.agents?.defaults?.heartbeat?.every).toBe("30m");
|
||||
expectAnthropicPruningDefaults(cfg);
|
||||
expect(
|
||||
cfg.agents?.defaults?.models?.["anthropic/claude-sonnet-4-20250514"]?.params
|
||||
?.cacheRetention,
|
||||
cfg.agents?.defaults?.models?.["anthropic/claude-sonnet-4-20250514"]?.params?.cacheRetention,
|
||||
).toBe("short");
|
||||
});
|
||||
});
|
||||
|
||||
it("adds default cacheRetention for Anthropic Claude models on Bedrock", async () => {
|
||||
await withTempHome(async (home) => {
|
||||
await writeConfigForTest(home, {
|
||||
const cfg = await loadConfigForHome({
|
||||
auth: {
|
||||
profiles: {
|
||||
"anthropic:api": { provider: "anthropic", mode: "api_key" },
|
||||
|
|
@ -115,18 +111,14 @@ describe("config pruning defaults", () => {
|
|||
},
|
||||
});
|
||||
|
||||
const cfg = loadConfig();
|
||||
|
||||
expect(
|
||||
cfg.agents?.defaults?.models?.["amazon-bedrock/us.anthropic.claude-opus-4-6-v1"]?.params
|
||||
?.cacheRetention,
|
||||
).toBe("short");
|
||||
});
|
||||
});
|
||||
|
||||
it("does not add default cacheRetention for non-Anthropic Bedrock models", async () => {
|
||||
await withTempHome(async (home) => {
|
||||
await writeConfigForTest(home, {
|
||||
const cfg = await loadConfigForHome({
|
||||
auth: {
|
||||
profiles: {
|
||||
"anthropic:api": { provider: "anthropic", mode: "api_key" },
|
||||
|
|
@ -139,22 +131,17 @@ describe("config pruning defaults", () => {
|
|||
},
|
||||
});
|
||||
|
||||
const cfg = loadConfig();
|
||||
|
||||
expect(
|
||||
cfg.agents?.defaults?.models?.["amazon-bedrock/amazon.nova-micro-v1:0"]?.params
|
||||
?.cacheRetention,
|
||||
).toBeUndefined();
|
||||
});
|
||||
});
|
||||
|
||||
it("does not override explicit contextPruning mode", async () => {
|
||||
await withTempHome(async (home) => {
|
||||
await writeConfigForTest(home, { agents: { defaults: { contextPruning: { mode: "off" } } } });
|
||||
|
||||
const cfg = loadConfig();
|
||||
const cfg = await loadConfigForHome({
|
||||
agents: { defaults: { contextPruning: { mode: "off" } } },
|
||||
});
|
||||
|
||||
expect(cfg.agents?.defaults?.contextPruning?.mode).toBe("off");
|
||||
});
|
||||
});
|
||||
});
|
||||
|
|
|
|||
Loading…
Reference in New Issue