From 25535b571a45a3f371e7207b6f63b2d406c0ca94 Mon Sep 17 00:00:00 2001 From: Vincent Koc Date: Mon, 16 Mar 2026 00:09:49 -0700 Subject: [PATCH] Z.ai: move runtime tests to provider contracts --- extensions/zai/index.test.ts | 101 ----------------------------------- 1 file changed, 101 deletions(-) delete mode 100644 extensions/zai/index.test.ts diff --git a/extensions/zai/index.test.ts b/extensions/zai/index.test.ts deleted file mode 100644 index f79f53670b7..00000000000 --- a/extensions/zai/index.test.ts +++ /dev/null @@ -1,101 +0,0 @@ -import { describe, expect, it } from "vitest"; -import { registerSingleProviderPlugin } from "../../src/test-utils/plugin-registration.js"; -import { - createProviderUsageFetch, - makeResponse, -} from "../../src/test-utils/provider-usage-fetch.js"; -import zaiPlugin from "./index.js"; - -const registerProvider = () => registerSingleProviderPlugin(zaiPlugin); - -describe("zai plugin", () => { - it("owns glm-5 forward-compat resolution", () => { - const provider = registerProvider(); - const model = provider.resolveDynamicModel?.({ - provider: "zai", - modelId: "glm-5", - modelRegistry: { - find: (_provider: string, id: string) => - id === "glm-4.7" - ? { - id, - name: id, - api: "openai-completions", - provider: "zai", - baseUrl: "https://api.z.ai/api/paas/v4", - reasoning: false, - input: ["text"], - cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, - contextWindow: 202_752, - maxTokens: 16_384, - } - : null, - } as never, - }); - - expect(model).toMatchObject({ - id: "glm-5", - provider: "zai", - api: "openai-completions", - reasoning: true, - }); - }); - - it("owns usage auth resolution", async () => { - const provider = registerProvider(); - await expect( - provider.resolveUsageAuth?.({ - config: {} as never, - env: { - ZAI_API_KEY: "env-zai-token", - } as NodeJS.ProcessEnv, - provider: "zai", - resolveApiKeyFromConfigAndStore: () => "env-zai-token", - resolveOAuthToken: async () => null, - }), - ).resolves.toEqual({ - token: "env-zai-token", - }); - }); - - it("owns usage snapshot fetching", async () => { - const provider = registerProvider(); - const mockFetch = createProviderUsageFetch(async (url) => { - if (url.includes("api.z.ai/api/monitor/usage/quota/limit")) { - return makeResponse(200, { - success: true, - code: 200, - data: { - planName: "Pro", - limits: [ - { - type: "TOKENS_LIMIT", - percentage: 25, - unit: 3, - number: 6, - nextResetTime: "2026-01-07T06:00:00Z", - }, - ], - }, - }); - } - return makeResponse(404, "not found"); - }); - - await expect( - provider.fetchUsageSnapshot?.({ - config: {} as never, - env: {} as NodeJS.ProcessEnv, - provider: "zai", - token: "env-zai-token", - timeoutMs: 5_000, - fetchFn: mockFetch as unknown as typeof fetch, - }), - ).resolves.toEqual({ - provider: "zai", - displayName: "z.ai", - windows: [{ label: "Tokens (6h)", usedPercent: 25, resetAt: 1_767_765_600_000 }], - plan: "Pro", - }); - }); -});