
























1+import { MAX_TIMER_TIMEOUT_MS } from "openclaw/plugin-sdk/number-runtime";
12import { afterEach, describe, expect, it, vi } from "vitest";
23import {
34buildHuggingfaceModelDefinition,
@@ -18,6 +19,11 @@ function restoreEnv(key: "VITEST" | "NODE_ENV", value: string | undefined) {
1819}
1920}
202122+function stubAbortSignalTimeout() {
23+const controller = new AbortController();
24+return vi.spyOn(AbortSignal, "timeout").mockReturnValue(controller.signal);
25+}
26+2127afterEach(() => {
2228restoreEnv("VITEST", ORIGINAL_VITEST);
2329restoreEnv("NODE_ENV", ORIGINAL_NODE_ENV);
@@ -53,7 +59,7 @@ describe("huggingface models", () => {
5359it("uses the default discovery timeout for live Hugging Face fetches", async () => {
5460process.env.VITEST = "false";
5561process.env.NODE_ENV = "development";
56-const timeoutSpy = vi.spyOn(AbortSignal, "timeout");
62+const timeoutSpy = stubAbortSignalTimeout();
5763vi.stubGlobal(
5864"fetch",
5965vi.fn(
@@ -70,7 +76,7 @@ describe("huggingface models", () => {
7076it("accepts a custom discovery timeout override", async () => {
7177process.env.VITEST = "false";
7278process.env.NODE_ENV = "development";
73-const timeoutSpy = vi.spyOn(AbortSignal, "timeout");
79+const timeoutSpy = stubAbortSignalTimeout();
7480vi.stubGlobal(
7581"fetch",
7682vi.fn(
@@ -84,6 +90,23 @@ describe("huggingface models", () => {
8490expect(timeoutSpy).toHaveBeenCalledWith(25_000);
8591});
869293+it("caps oversized live discovery timeout overrides", async () => {
94+process.env.VITEST = "false";
95+process.env.NODE_ENV = "development";
96+const timeoutSpy = stubAbortSignalTimeout();
97+vi.stubGlobal(
98+"fetch",
99+vi.fn(
100+async () =>
101+new Response("{}", { status: 500, headers: { "Content-Type": "application/json" } }),
102+),
103+);
104+105+await discoverHuggingfaceModels("hf_test_token", Number.MAX_SAFE_INTEGER);
106+107+expect(timeoutSpy).toHaveBeenCalledWith(MAX_TIMER_TIMEOUT_MS);
108+});
109+87110describe("isHuggingfacePolicyLocked", () => {
88111it("returns true for :cheapest and :fastest refs", () => {
89112expect(isHuggingfacePolicyLocked("huggingface/deepseek-ai/DeepSeek-R1:cheapest")).toBe(true);
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。