
























@@ -8,15 +8,26 @@ describe("persisted auth profile boundary", () => {
88version: "not-a-version",
99profiles: {
1010"openai:default": {
11-type: "api_key",
11+type: "apiKey",
1212provider: " OpenAI ",
13-key: 42,
13+apiKey: "demo-openai-key",
1414keyRef: { source: "env", id: "OPENAI_API_KEY" },
1515metadata: { account: "acct_123", bad: 123 },
1616copyToAgents: "yes",
1717email: ["wrong"],
1818displayName: "Work",
1919},
20+"openai:legacy-api-key": {
21+type: "apiKey",
22+provider: "openai",
23+apiKey: "legacy-openai-key",
24+},
25+"openai:legacy-malformed-ref": {
26+type: "apiKey",
27+provider: "openai",
28+apiKey: "legacy-fallback-key",
29+keyRef: { source: "env", id: "" },
30+},
2031"minimax:default": {
2132type: "token",
2233provider: "minimax",
@@ -70,6 +81,16 @@ describe("persisted auth profile boundary", () => {
7081metadata: { account: "acct_123" },
7182displayName: "Work",
7283},
84+"openai:legacy-api-key": {
85+type: "api_key",
86+provider: "openai",
87+key: "legacy-openai-key",
88+},
89+"openai:legacy-malformed-ref": {
90+type: "api_key",
91+provider: "openai",
92+key: "legacy-fallback-key",
93+},
7394"minimax:default": {
7495type: "token",
7596provider: "minimax",
@@ -98,7 +119,6 @@ describe("persisted auth profile boundary", () => {
98119},
99120});
100121expect(store?.profiles["broken:array"]).toBeUndefined();
101-expect(store?.profiles["openai:default"]).not.toHaveProperty("key");
102122expect(store?.profiles["openai:default"]).not.toHaveProperty("copyToAgents");
103123expect(store?.profiles["openai:oauth"]).not.toHaveProperty("oauthRef");
104124});
@@ -194,6 +214,36 @@ describe("persisted auth profile boundary", () => {
194214expect(merged.lastGood?.anthropic).toBe(profileId);
195215});
196216217+it("preserves config-only order fallbacks during agent-store merges", () => {
218+const merged = mergeAuthProfileStores(
219+{
220+version: AUTH_STORE_VERSION,
221+profiles: {},
222+order: {
223+openai: ["openai:aws-sdk"],
224+},
225+},
226+{
227+version: AUTH_STORE_VERSION,
228+profiles: {
229+"openai:new-login": {
230+type: "oauth",
231+provider: "openai",
232+access: "new-access",
233+refresh: "new-refresh",
234+expires: 1,
235+},
236+},
237+order: {
238+openai: ["openai:new-login", "openai:aws-sdk"],
239+},
240+},
241+{ preserveBaseRuntimeExternalProfiles: true },
242+);
243+244+expect(merged.order?.openai).toEqual(["openai:new-login", "openai:aws-sdk"]);
245+});
246+197247it("preserves inherited base runtime external profiles during agent-store merges", () => {
198248const profileId = "anthropic:claude-cli";
199249const merged = mergeAuthProfileStores(
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。