





















@@ -0,0 +1,57 @@
1+import { beforeEach, describe, expect, it, vi } from "vitest";
2+3+const mocks = vi.hoisted(() => ({
4+resolveManifestBuiltInModelSuppression: vi.fn(),
5+resolveProviderBuiltInModelSuppression: vi.fn(),
6+}));
7+8+vi.mock("../plugins/manifest-model-suppression.js", () => ({
9+resolveManifestBuiltInModelSuppression: mocks.resolveManifestBuiltInModelSuppression,
10+}));
11+12+vi.mock("../plugins/provider-runtime.js", () => ({
13+resolveProviderBuiltInModelSuppression: mocks.resolveProviderBuiltInModelSuppression,
14+}));
15+16+import { shouldSuppressBuiltInModel } from "./model-suppression.js";
17+18+describe("model suppression", () => {
19+beforeEach(() => {
20+mocks.resolveManifestBuiltInModelSuppression.mockReset();
21+mocks.resolveProviderBuiltInModelSuppression.mockReset();
22+});
23+24+it("uses manifest suppression before runtime hooks", () => {
25+mocks.resolveManifestBuiltInModelSuppression.mockReturnValueOnce({
26+suppress: true,
27+errorMessage: "manifest suppression",
28+});
29+30+expect(
31+shouldSuppressBuiltInModel({
32+provider: "openai",
33+id: "gpt-5.3-codex-spark",
34+config: {},
35+}),
36+).toBe(true);
37+38+expect(mocks.resolveProviderBuiltInModelSuppression).not.toHaveBeenCalled();
39+});
40+41+it("falls back to runtime hooks when no manifest suppression matches", () => {
42+mocks.resolveProviderBuiltInModelSuppression.mockReturnValueOnce({
43+suppress: true,
44+errorMessage: "runtime suppression",
45+});
46+47+expect(
48+shouldSuppressBuiltInModel({
49+provider: "openai",
50+id: "gpt-5.3-codex-spark",
51+config: {},
52+}),
53+).toBe(true);
54+55+expect(mocks.resolveProviderBuiltInModelSuppression).toHaveBeenCalledOnce();
56+});
57+});
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。