fix(coding-agent): show models.json auth in login selector
This commit is contained in:
@@ -34,12 +34,35 @@ describe("OAuthSelectorComponent", () => {
|
||||
expect(getApiKeyProviderDisplayName("anthropic")).toBe("Anthropic");
|
||||
expect(isApiKeyLoginProvider("openai", oauthProviderIds, builtInProviderIds)).toBe(true);
|
||||
expect(isApiKeyLoginProvider("github-copilot", oauthProviderIds, builtInProviderIds)).toBe(false);
|
||||
expect(isApiKeyLoginProvider("amazon-bedrock", oauthProviderIds, builtInProviderIds)).toBe(false);
|
||||
expect(isApiKeyLoginProvider("amazon-bedrock", oauthProviderIds, builtInProviderIds)).toBe(true);
|
||||
expect(isApiKeyLoginProvider("custom-oauth", oauthProviderIds, builtInProviderIds)).toBe(false);
|
||||
expect(isApiKeyLoginProvider("custom-api", oauthProviderIds, builtInProviderIds)).toBe(true);
|
||||
});
|
||||
|
||||
it("shows environment API key auth while keeping provider unconfigured", () => {
|
||||
it("shows stored OAuth auth distinctly in the API key selector", () => {
|
||||
const authStorage = AuthStorage.inMemory({
|
||||
anthropic: {
|
||||
type: "oauth",
|
||||
access: "access-token",
|
||||
refresh: "refresh-token",
|
||||
expires: Date.now() + 60_000,
|
||||
},
|
||||
});
|
||||
const selector = new OAuthSelectorComponent(
|
||||
"login",
|
||||
authStorage,
|
||||
[{ id: "anthropic", name: "Anthropic", authType: "api_key" }],
|
||||
() => {},
|
||||
() => {},
|
||||
);
|
||||
|
||||
const output = stripAnsi(selector.render(120).join("\n"));
|
||||
|
||||
expect(output).toContain("Anthropic");
|
||||
expect(output).toContain("subscription configured");
|
||||
});
|
||||
|
||||
it("shows environment API key auth as configured", () => {
|
||||
process.env.OPENAI_API_KEY = "test-openai-key";
|
||||
const authStorage = AuthStorage.inMemory();
|
||||
const selector = new OAuthSelectorComponent(
|
||||
@@ -53,7 +76,61 @@ describe("OAuthSelectorComponent", () => {
|
||||
const output = stripAnsi(selector.render(120).join("\n"));
|
||||
|
||||
expect(output).toContain("OpenAI");
|
||||
expect(output).toContain("unconfigured");
|
||||
expect(output).toContain("env: OPENAI_API_KEY");
|
||||
expect(output).toContain("✓ env: OPENAI_API_KEY");
|
||||
expect(output).not.toContain("unconfigured");
|
||||
});
|
||||
|
||||
it("shows custom provider environment API key auth from status resolver", () => {
|
||||
const authStorage = AuthStorage.inMemory();
|
||||
const selector = new OAuthSelectorComponent(
|
||||
"login",
|
||||
authStorage,
|
||||
[{ id: "ollama", name: "ollama", authType: "api_key" }],
|
||||
() => {},
|
||||
() => {},
|
||||
() => ({ configured: true, source: "environment", label: "OLLAMA_API_KEY" }),
|
||||
);
|
||||
|
||||
const output = stripAnsi(selector.render(120).join("\n"));
|
||||
|
||||
expect(output).toContain("ollama");
|
||||
expect(output).toContain("✓ env: OLLAMA_API_KEY");
|
||||
expect(output).not.toContain("unconfigured");
|
||||
});
|
||||
|
||||
it("shows models.json API key auth as configured", () => {
|
||||
const authStorage = AuthStorage.inMemory();
|
||||
const selector = new OAuthSelectorComponent(
|
||||
"login",
|
||||
authStorage,
|
||||
[{ id: "local-proxy", name: "local-proxy", authType: "api_key" }],
|
||||
() => {},
|
||||
() => {},
|
||||
() => ({ configured: true, source: "models_json_key" }),
|
||||
);
|
||||
|
||||
const output = stripAnsi(selector.render(120).join("\n"));
|
||||
|
||||
expect(output).toContain("local-proxy");
|
||||
expect(output).toContain("✓ key in models.json");
|
||||
expect(output).not.toContain("unconfigured");
|
||||
});
|
||||
|
||||
it("shows models.json command auth as configured", () => {
|
||||
const authStorage = AuthStorage.inMemory();
|
||||
const selector = new OAuthSelectorComponent(
|
||||
"login",
|
||||
authStorage,
|
||||
[{ id: "op-proxy", name: "op-proxy", authType: "api_key" }],
|
||||
() => {},
|
||||
() => {},
|
||||
() => ({ configured: true, source: "models_json_command" }),
|
||||
);
|
||||
|
||||
const output = stripAnsi(selector.render(120).join("\n"));
|
||||
|
||||
expect(output).toContain("op-proxy");
|
||||
expect(output).toContain("✓ command in models.json");
|
||||
expect(output).not.toContain("unconfigured");
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user