























@@ -4,11 +4,15 @@ import path from "node:path";
44import { pathToFileURL } from "node:url";
55import { importFreshModule } from "openclaw/plugin-sdk/test-fixtures";
66import { afterEach, describe, expect, it, vi } from "vitest";
7+import type { PluginModuleLoaderFactory } from "../plugins/plugin-module-loader-cache.js";
78import type { PluginRuntime } from "../plugins/runtime/types.js";
89import type { OpenClawPluginApi, PluginRegistrationMode } from "../plugins/types.js";
910import { defineBundledChannelEntry, loadBundledEntryExportSync } from "./channel-entry-contract.js";
10111112const tempDirs: string[] = [];
13+const pluginModuleLoaderJitiFactoryOverrideKey = Symbol.for(
14+"openclaw.pluginModuleLoaderJitiFactoryOverride",
15+);
12161317afterEach(() => {
1418for (const dir of tempDirs.splice(0)) {
@@ -17,8 +21,21 @@ afterEach(() => {
1721vi.resetModules();
1822vi.doUnmock("jiti");
1923vi.unstubAllEnvs();
24+delete (
25+globalThis as typeof globalThis & {
26+[pluginModuleLoaderJitiFactoryOverrideKey]?: PluginModuleLoaderFactory;
27+}
28+)[pluginModuleLoaderJitiFactoryOverrideKey];
2029});
213031+function stubPluginModuleLoaderJitiFactory(createJiti: PluginModuleLoaderFactory): void {
32+(
33+globalThis as typeof globalThis & {
34+[pluginModuleLoaderJitiFactoryOverrideKey]?: PluginModuleLoaderFactory;
35+}
36+)[pluginModuleLoaderJitiFactoryOverrideKey] = createJiti;
37+}
38+2239function createApi(registrationMode: PluginRegistrationMode): OpenClawPluginApi {
2340return {
2441 registrationMode,
@@ -269,9 +286,7 @@ describe("loadBundledEntryExportSync", () => {
269286270287it("keeps Windows dist sidecar loads off source-transform loading", async () => {
271288const createJiti = vi.fn(() => vi.fn(() => ({ load: 42 })));
272-vi.doMock("jiti", () => ({
273- createJiti,
274-}));
289+stubPluginModuleLoaderJitiFactory(createJiti as PluginModuleLoaderFactory);
275290const platformSpy = vi.spyOn(process, "platform", "get").mockReturnValue("win32");
276291277292try {
@@ -313,9 +328,7 @@ describe("loadBundledEntryExportSync", () => {
313328fs.writeFileSync(openedFdPath, "opened\n", "utf8");
314329const jitiLoad = vi.fn(() => ({ load: 42 }));
315330const createJiti = vi.fn(() => jitiLoad);
316-vi.doMock("jiti", () => ({
317- createJiti,
318-}));
331+stubPluginModuleLoaderJitiFactory(createJiti as PluginModuleLoaderFactory);
319332vi.doMock("../infra/boundary-file-read.js", () => ({
320333openBoundaryFileSync: () => ({
321334ok: true,
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。