test: move plugin uninstall selection to pure tests

This commit is contained in:
Peter Steinberger
2026-04-11 08:12:34 +01:00
parent 5ca92b0498
commit 7e66a8fcfe
6 changed files with 119 additions and 132 deletions

View File

@@ -5,7 +5,6 @@ import type { OpenClawConfig } from "../config/config.js";
import { loadConfig, readConfigFileSnapshot, replaceConfigFile } from "../config/config.js";
import { resolveStateDir } from "../config/paths.js";
import type { PluginInstallRecord } from "../config/types.plugins.js";
import { parseClawHubPluginSpec } from "../infra/clawhub.js";
import { enablePluginInConfig } from "../plugins/enable.js";
import { listMarketplacePlugins } from "../plugins/marketplace.js";
import type { PluginRecord } from "../plugins/registry.js";
@@ -36,6 +35,7 @@ import {
} from "./plugins-command-helpers.js";
import { setPluginEnabledInConfig } from "./plugins-config.js";
import { runPluginInstallCommand } from "./plugins-install-command.js";
import { resolvePluginUninstallId } from "./plugins-uninstall-selection.js";
import { runPluginUpdateCommand } from "./plugins-update-command.js";
import { promptYesNo } from "./prompt.js";
@@ -67,44 +67,6 @@ export type PluginUninstallOptions = {
dryRun?: boolean;
};
function resolvePluginUninstallId(params: {
rawId: string;
config: OpenClawConfig;
plugins: PluginRecord[];
}): { pluginId: string; plugin?: PluginRecord } {
const rawId = params.rawId.trim();
const plugin = params.plugins.find((entry) => entry.id === rawId || entry.name === rawId);
if (plugin) {
return { pluginId: plugin.id, plugin };
}
for (const [pluginId, install] of Object.entries(params.config.plugins?.installs ?? {})) {
if (
install.spec === rawId ||
install.resolvedSpec === rawId ||
install.resolvedName === rawId ||
install.marketplacePlugin === rawId
) {
return { pluginId };
}
}
const requestedClawHub = parseClawHubPluginSpec(rawId);
if (requestedClawHub) {
for (const [pluginId, install] of Object.entries(params.config.plugins?.installs ?? {})) {
const installedClawHubName =
install.clawhubPackage ??
parseClawHubPluginSpec(install.spec ?? "")?.name ??
parseClawHubPluginSpec(install.resolvedSpec ?? "")?.name;
if (installedClawHubName === requestedClawHub.name) {
return { pluginId };
}
}
}
return { pluginId: rawId };
}
function formatPluginLine(plugin: PluginRecord, verbose = false): string {
const status =
plugin.status === "loaded"