Spaces:
Paused
Paused
OpenClawBot / src /agents /auth-profiles.resolve-auth-profile-order.normalizes-z-ai-aliases-auth-order.test.ts
| import { describe, expect, it } from "vitest"; | |
| import { resolveAuthProfileOrder } from "./auth-profiles.js"; | |
| describe("resolveAuthProfileOrder", () => { | |
| const _store: AuthProfileStore = { | |
| version: 1, | |
| profiles: { | |
| "anthropic:default": { | |
| type: "api_key", | |
| provider: "anthropic", | |
| key: "sk-default", | |
| }, | |
| "anthropic:work": { | |
| type: "api_key", | |
| provider: "anthropic", | |
| key: "sk-work", | |
| }, | |
| }, | |
| }; | |
| const _cfg = { | |
| auth: { | |
| profiles: { | |
| "anthropic:default": { provider: "anthropic", mode: "api_key" }, | |
| "anthropic:work": { provider: "anthropic", mode: "api_key" }, | |
| }, | |
| }, | |
| }; | |
| it("normalizes z.ai aliases in auth.order", () => { | |
| const order = resolveAuthProfileOrder({ | |
| cfg: { | |
| auth: { | |
| order: { "z.ai": ["zai:work", "zai:default"] }, | |
| profiles: { | |
| "zai:default": { provider: "zai", mode: "api_key" }, | |
| "zai:work": { provider: "zai", mode: "api_key" }, | |
| }, | |
| }, | |
| }, | |
| store: { | |
| version: 1, | |
| profiles: { | |
| "zai:default": { | |
| type: "api_key", | |
| provider: "zai", | |
| key: "sk-default", | |
| }, | |
| "zai:work": { | |
| type: "api_key", | |
| provider: "zai", | |
| key: "sk-work", | |
| }, | |
| }, | |
| }, | |
| provider: "zai", | |
| }); | |
| expect(order).toEqual(["zai:work", "zai:default"]); | |
| }); | |
| it("normalizes provider casing in auth.order keys", () => { | |
| const order = resolveAuthProfileOrder({ | |
| cfg: { | |
| auth: { | |
| order: { OpenAI: ["openai:work", "openai:default"] }, | |
| profiles: { | |
| "openai:default": { provider: "openai", mode: "api_key" }, | |
| "openai:work": { provider: "openai", mode: "api_key" }, | |
| }, | |
| }, | |
| }, | |
| store: { | |
| version: 1, | |
| profiles: { | |
| "openai:default": { | |
| type: "api_key", | |
| provider: "openai", | |
| key: "sk-default", | |
| }, | |
| "openai:work": { | |
| type: "api_key", | |
| provider: "openai", | |
| key: "sk-work", | |
| }, | |
| }, | |
| }, | |
| provider: "openai", | |
| }); | |
| expect(order).toEqual(["openai:work", "openai:default"]); | |
| }); | |
| it("normalizes z.ai aliases in auth.profiles", () => { | |
| const order = resolveAuthProfileOrder({ | |
| cfg: { | |
| auth: { | |
| profiles: { | |
| "zai:default": { provider: "z.ai", mode: "api_key" }, | |
| "zai:work": { provider: "Z.AI", mode: "api_key" }, | |
| }, | |
| }, | |
| }, | |
| store: { | |
| version: 1, | |
| profiles: { | |
| "zai:default": { | |
| type: "api_key", | |
| provider: "zai", | |
| key: "sk-default", | |
| }, | |
| "zai:work": { | |
| type: "api_key", | |
| provider: "zai", | |
| key: "sk-work", | |
| }, | |
| }, | |
| }, | |
| provider: "zai", | |
| }); | |
| expect(order).toEqual(["zai:default", "zai:work"]); | |
| }); | |
| it("prioritizes oauth profiles when order missing", () => { | |
| const mixedStore: AuthProfileStore = { | |
| version: 1, | |
| profiles: { | |
| "anthropic:default": { | |
| type: "api_key", | |
| provider: "anthropic", | |
| key: "sk-default", | |
| }, | |
| "anthropic:oauth": { | |
| type: "oauth", | |
| provider: "anthropic", | |
| access: "access-token", | |
| refresh: "refresh-token", | |
| expires: Date.now() + 60_000, | |
| }, | |
| }, | |
| }; | |
| const order = resolveAuthProfileOrder({ | |
| store: mixedStore, | |
| provider: "anthropic", | |
| }); | |
| expect(order).toEqual(["anthropic:oauth", "anthropic:default"]); | |
| }); | |
| }); | |