




























@@ -1,6 +1,6 @@
11import fs from "node:fs";
22import path from "node:path";
3-import { afterAll, beforeEach, describe, expect, it, vi } from "vitest";
3+import { afterAll, beforeAll, beforeEach, describe, expect, it, vi } from "vitest";
44import {
55expectIntegrityDriftRejected,
66mockNpmViewMetadataResult,
@@ -25,6 +25,8 @@ const { installPluginFromNpmPackArchive, installPluginFromNpmSpec, PLUGIN_INSTAL
2525await import("./install.js");
26262727const suiteTempRootTracker = createSuiteTempRootTracker("openclaw-plugin-install-npm-spec");
28+let previousNpmGlobalConfig: string | undefined;
29+let npmGlobalConfigPath: string;
28302931function successfulSpawn(stdout = "") {
3032return {
@@ -416,7 +418,19 @@ function mockNpmViewAndInstallMany(packages: MockNpmPackage[]) {
416418);
417419}
418420421+beforeAll(() => {
422+previousNpmGlobalConfig = process.env.NPM_CONFIG_GLOBALCONFIG;
423+npmGlobalConfigPath = path.join(suiteTempRootTracker.makeTempDir(), "global-npmrc");
424+fs.writeFileSync(npmGlobalConfigPath, "", "utf8");
425+process.env.NPM_CONFIG_GLOBALCONFIG = npmGlobalConfigPath;
426+});
427+419428afterAll(() => {
429+if (previousNpmGlobalConfig === undefined) {
430+delete process.env.NPM_CONFIG_GLOBALCONFIG;
431+} else {
432+process.env.NPM_CONFIG_GLOBALCONFIG = previousNpmGlobalConfig;
433+}
420434suiteTempRootTracker.cleanup();
421435});
422436@@ -431,6 +445,7 @@ beforeEach(() => {
431445);
432446resolveOpenClawPackageRootSyncMock.mockReturnValue(hostRoot);
433447vi.unstubAllEnvs();
448+process.env.NPM_CONFIG_GLOBALCONFIG = npmGlobalConfigPath;
434449});
435450436451describe("installPluginFromNpmSpec", () => {
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。