























@@ -47,6 +47,17 @@ vi.mock("./runtime/load-context.js", () => ({
4747let resolvePluginWebProviders: typeof import("./web-provider-runtime-shared.js").resolvePluginWebProviders;
4848let resolveRuntimeWebProviders: typeof import("./web-provider-runtime-shared.js").resolveRuntimeWebProviders;
494950+function requireRecord(value: unknown): Record<string, unknown> {
51+expect(value).toBeTruthy();
52+expect(typeof value).toBe("object");
53+expect(Array.isArray(value)).toBe(false);
54+return value as Record<string, unknown>;
55+}
56+57+function mockArg(mock: ReturnType<typeof vi.fn>, callIndex = 0): Record<string, unknown> {
58+return requireRecord(mock.mock.calls[callIndex]?.[0]);
59+}
60+5061describe("web-provider-runtime-shared", () => {
5162beforeAll(async () => {
5263({ resolvePluginWebProviders, resolveRuntimeWebProviders } =
@@ -97,16 +108,8 @@ describe("web-provider-runtime-shared", () => {
97108},
98109);
99110100-expect(mocks.getLoadedRuntimePluginRegistry).toHaveBeenCalledWith(
101-expect.objectContaining({
102-requiredPluginIds: [],
103-}),
104-);
105-expect(mapRegistryProviders).toHaveBeenCalledWith(
106-expect.objectContaining({
107-onlyPluginIds: [],
108-}),
109-);
111+expect(mockArg(mocks.getLoadedRuntimePluginRegistry).requiredPluginIds).toEqual([]);
112+expect(mockArg(mapRegistryProviders).onlyPluginIds).toEqual([]);
110113});
111114112115it("preserves explicit empty scopes in direct runtime web provider resolution", () => {
@@ -129,16 +132,8 @@ describe("web-provider-runtime-shared", () => {
129132},
130133);
131134132-expect(mocks.getLoadedRuntimePluginRegistry).toHaveBeenCalledWith(
133-expect.objectContaining({
134-requiredPluginIds: [],
135-}),
136-);
137-expect(mapRegistryProviders).toHaveBeenCalledWith(
138-expect.objectContaining({
139-onlyPluginIds: [],
140-}),
141-);
135+expect(mockArg(mocks.getLoadedRuntimePluginRegistry).requiredPluginIds).toEqual([]);
136+expect(mockArg(mapRegistryProviders).onlyPluginIds).toEqual([]);
142137});
143138144139it("preserves explicit scopes when config is omitted in direct runtime resolution", () => {
@@ -160,16 +155,8 @@ describe("web-provider-runtime-shared", () => {
160155},
161156);
162157163-expect(mocks.getLoadedRuntimePluginRegistry).toHaveBeenCalledWith(
164-expect.objectContaining({
165-requiredPluginIds: ["alpha"],
166-}),
167-);
168-expect(mapRegistryProviders).toHaveBeenCalledWith(
169-expect.objectContaining({
170-onlyPluginIds: ["alpha"],
171-}),
172-);
158+expect(mockArg(mocks.getLoadedRuntimePluginRegistry).requiredPluginIds).toEqual(["alpha"]);
159+expect(mockArg(mapRegistryProviders).onlyPluginIds).toEqual(["alpha"]);
173160});
174161175162it("reuses the active registry after deriving web provider candidates from resolved config", () => {
@@ -263,11 +250,7 @@ describe("web-provider-runtime-shared", () => {
263250);
264251265252expect(providers).toEqual(["provider"]);
266-expect(mocks.getLoadedRuntimePluginRegistry).toHaveBeenCalledWith(
267-expect.objectContaining({
268-requiredPluginIds: ["brave"],
269-}),
270-);
253+expect(mockArg(mocks.getLoadedRuntimePluginRegistry).requiredPluginIds).toEqual(["brave"]);
271254expect(mocks.loadOpenClawPlugins).not.toHaveBeenCalled();
272255});
273256@@ -293,11 +276,7 @@ describe("web-provider-runtime-shared", () => {
293276},
294277);
295278296-expect(mocks.getLoadedRuntimePluginRegistry).toHaveBeenCalledWith(
297-expect.objectContaining({
298-requiredPluginIds: ["brave"],
299-}),
300-);
279+expect(mockArg(mocks.getLoadedRuntimePluginRegistry).requiredPluginIds).toEqual(["brave"]);
301280expect(mocks.loadOpenClawPlugins).not.toHaveBeenCalled();
302281});
303282@@ -324,12 +303,8 @@ describe("web-provider-runtime-shared", () => {
324303);
325304326305expect(providers).toEqual(["provider"]);
327-expect(mocks.loadOpenClawPlugins).toHaveBeenCalledWith(
328-expect.objectContaining({
329-cache: true,
330-onlyPluginIds: ["brave"],
331-}),
332-);
306+expect(mockArg(mocks.loadOpenClawPlugins).cache).toBe(true);
307+expect(mockArg(mocks.loadOpenClawPlugins).onlyPluginIds).toEqual(["brave"]);
333308});
334309335310it("falls back to a scoped provider load when the active runtime registry has no web providers", () => {
@@ -469,11 +444,7 @@ describe("web-provider-runtime-shared", () => {
469444},
470445);
471446472-expect(mocks.loadOpenClawPlugins).toHaveBeenCalledWith(
473-expect.objectContaining({
474-cache: false,
475-onlyPluginIds: ["brave"],
476-}),
477-);
447+expect(mockArg(mocks.loadOpenClawPlugins).cache).toBe(false);
448+expect(mockArg(mocks.loadOpenClawPlugins).onlyPluginIds).toEqual(["brave"]);
478449});
479450});
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。