| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- import { describe, expect, test, vi } from "vitest";
- import type { Provider } from "@/types/provider";
- const circuitBreakerMocks = vi.hoisted(() => ({
- isCircuitOpen: vi.fn(async () => false),
- getCircuitState: vi.fn(() => "closed"),
- }));
- vi.mock("@/lib/circuit-breaker", () => circuitBreakerMocks);
- describe("ProxyProviderResolver.pickRandomProvider - model redirect", () => {
- test("filters providers using original model (not redirected current model)", async () => {
- const { ProxyProviderResolver } = await import("@/app/v1/_lib/proxy/provider-selector");
- vi.spyOn(ProxyProviderResolver as any, "filterByLimits").mockImplementation(
- async (...args: unknown[]) => args[0] as Provider[]
- );
- const providers: Provider[] = [
- {
- id: 1,
- name: "p1",
- isEnabled: true,
- providerType: "claude",
- groupTag: null,
- weight: 1,
- priority: 0,
- costMultiplier: 1,
- allowedModels: ["claude-test"],
- } as unknown as Provider,
- ];
- const session = {
- originalFormat: "claude",
- authState: null,
- getProvidersSnapshot: async () => providers,
- getOriginalModel: () => "claude-test",
- getCurrentModel: () => "glm-test",
- clientRequestsContext1m: () => false,
- } as any;
- const { provider, context } = await (ProxyProviderResolver as any).pickRandomProvider(
- session,
- []
- );
- expect(context.requestedModel).toBe("claude-test");
- expect(provider?.id).toBe(1);
- });
- });
|