mirror of
https://github.com/openclaw/openclaw.git
synced 2026-05-08 19:58:27 +00:00
54 lines
1.7 KiB
TypeScript
54 lines
1.7 KiB
TypeScript
import fs from "node:fs/promises";
|
|
import path from "node:path";
|
|
import { describe, expect, it } from "vitest";
|
|
import type { OpenClawConfig } from "../../config/config.js";
|
|
import type { SessionEntry } from "../../config/sessions.js";
|
|
import { withStateDirEnv } from "../../test-helpers/state-dir-env.js";
|
|
import { resolveSessionAuthProfileOverride } from "./session-override.js";
|
|
|
|
async function writeAuthStore(agentDir: string) {
|
|
const authPath = path.join(agentDir, "auth-profiles.json");
|
|
const payload = {
|
|
version: 1,
|
|
profiles: {
|
|
"zai:work": { type: "api_key", provider: "zai", key: "sk-test" },
|
|
},
|
|
order: {
|
|
zai: ["zai:work"],
|
|
},
|
|
};
|
|
await fs.writeFile(authPath, JSON.stringify(payload), "utf-8");
|
|
}
|
|
|
|
describe("resolveSessionAuthProfileOverride", () => {
|
|
it("keeps user override when provider alias differs", async () => {
|
|
await withStateDirEnv("openclaw-auth-", async ({ stateDir }) => {
|
|
const agentDir = path.join(stateDir, "agent");
|
|
await fs.mkdir(agentDir, { recursive: true });
|
|
await writeAuthStore(agentDir);
|
|
|
|
const sessionEntry: SessionEntry = {
|
|
sessionId: "s1",
|
|
updatedAt: Date.now(),
|
|
authProfileOverride: "zai:work",
|
|
authProfileOverrideSource: "user",
|
|
};
|
|
const sessionStore = { "agent:main:main": sessionEntry };
|
|
|
|
const resolved = await resolveSessionAuthProfileOverride({
|
|
cfg: {} as OpenClawConfig,
|
|
provider: "z.ai",
|
|
agentDir,
|
|
sessionEntry,
|
|
sessionStore,
|
|
sessionKey: "agent:main:main",
|
|
storePath: undefined,
|
|
isNewSession: false,
|
|
});
|
|
|
|
expect(resolved).toBe("zai:work");
|
|
expect(sessionEntry.authProfileOverride).toBe("zai:work");
|
|
});
|
|
});
|
|
});
|