test(commands): collapse provider and endpoint matrices

This commit is contained in:
Peter Steinberger
2026-02-23 22:16:45 +00:00
parent b922ecb8c1
commit 29b19455e3
3 changed files with 87 additions and 93 deletions

View File

@@ -12,35 +12,31 @@ function makeProvider(params: { id: string; label?: string; aliases?: string[] }
}
describe("resolveRequestedLoginProviderOrThrow", () => {
it("returns null when no provider was requested", () => {
const providers = [makeProvider({ id: "google-gemini-cli" })];
const result = resolveRequestedLoginProviderOrThrow(providers, undefined);
expect(result).toBeNull();
});
it("resolves requested provider by id", () => {
it("returns null and resolves provider by id/alias", () => {
const providers = [
makeProvider({ id: "google-gemini-cli" }),
makeProvider({ id: "google-gemini-cli", aliases: ["gemini-cli"] }),
makeProvider({ id: "qwen-portal" }),
];
const result = resolveRequestedLoginProviderOrThrow(providers, "google-gemini-cli");
expect(result?.id).toBe("google-gemini-cli");
});
const scenarios = [
{ requested: undefined, expectedId: null },
{ requested: "google-gemini-cli", expectedId: "google-gemini-cli" },
{ requested: "gemini-cli", expectedId: "google-gemini-cli" },
] as const;
it("resolves requested provider by alias", () => {
const providers = [makeProvider({ id: "google-gemini-cli", aliases: ["gemini-cli"] })];
const result = resolveRequestedLoginProviderOrThrow(providers, "gemini-cli");
expect(result?.id).toBe("google-gemini-cli");
for (const scenario of scenarios) {
const result = resolveRequestedLoginProviderOrThrow(providers, scenario.requested);
expect(result?.id ?? null).toBe(scenario.expectedId);
}
});
it("throws when requested provider is not loaded", () => {
const providers = [
const loadedProviders = [
makeProvider({ id: "google-gemini-cli" }),
makeProvider({ id: "qwen-portal" }),
];
expect(() =>
resolveRequestedLoginProviderOrThrow(providers, "google-antigravity"),
resolveRequestedLoginProviderOrThrow(loadedProviders, "google-antigravity"),
).toThrowError(
'Unknown provider "google-antigravity". Loaded providers: google-gemini-cli, qwen-portal. Verify plugins via `openclaw plugins list --json`.',
);