mirror of
https://github.com/openclaw/openclaw.git
synced 2026-05-07 19:00:43 +00:00
refactor: consolidate plugin install index store
This commit is contained in:
@@ -33,11 +33,15 @@ export const listMarketplacePlugins: Mock<ListMarketplacePluginsFn> = vi.fn();
|
||||
export const resolveMarketplaceInstallShortcut: Mock<ResolveMarketplaceInstallShortcutFn> = vi.fn();
|
||||
export const enablePluginInConfig: UnknownMock = vi.fn();
|
||||
export const recordPluginInstall: UnknownMock = vi.fn();
|
||||
export const loadPluginInstallRecords: AsyncUnknownMock = vi.fn(async (...args: unknown[]) => {
|
||||
const params = args[0] as LoadPluginInstallRecordsParams | undefined;
|
||||
return structuredClone(params?.config?.plugins?.installs ?? {});
|
||||
});
|
||||
export const writePersistedPluginInstallLedger: AsyncUnknownMock = vi.fn(async () => undefined);
|
||||
export const loadInstalledPluginIndexInstallRecords: AsyncUnknownMock = vi.fn(
|
||||
async (...args: unknown[]) => {
|
||||
const params = args[0] as LoadPluginInstallRecordsParams | undefined;
|
||||
return structuredClone(params?.config?.plugins?.installs ?? {});
|
||||
},
|
||||
);
|
||||
export const writePersistedInstalledPluginIndexInstallRecords: AsyncUnknownMock = vi.fn(
|
||||
async () => undefined,
|
||||
);
|
||||
export const clearPluginManifestRegistryCache: UnknownMock = vi.fn();
|
||||
export const loadPluginManifestRegistry: UnknownMock = vi.fn();
|
||||
export const buildPluginSnapshotReport: UnknownMock = vi.fn();
|
||||
@@ -157,18 +161,20 @@ vi.mock("../plugins/installs.js", () => ({
|
||||
)) as (typeof import("../plugins/installs.js"))["recordPluginInstall"],
|
||||
}));
|
||||
|
||||
vi.mock("../plugins/install-ledger-store.js", async (importOriginal) => {
|
||||
const actual = await importOriginal<typeof import("../plugins/install-ledger-store.js")>();
|
||||
vi.mock("../plugins/installed-plugin-index-records.js", async (importOriginal) => {
|
||||
const actual =
|
||||
await importOriginal<typeof import("../plugins/installed-plugin-index-records.js")>();
|
||||
return {
|
||||
...actual,
|
||||
loadPluginInstallRecords: ((...args: unknown[]) =>
|
||||
invokeMock<unknown[], unknown>(loadPluginInstallRecords, ...args)) as (
|
||||
...args: unknown[]
|
||||
) => unknown,
|
||||
writePersistedPluginInstallLedger: ((...args: unknown[]) =>
|
||||
invokeMock<unknown[], unknown>(writePersistedPluginInstallLedger, ...args)) as (
|
||||
loadInstalledPluginIndexInstallRecords: ((...args: unknown[]) =>
|
||||
invokeMock<unknown[], unknown>(loadInstalledPluginIndexInstallRecords, ...args)) as (
|
||||
...args: unknown[]
|
||||
) => unknown,
|
||||
writePersistedInstalledPluginIndexInstallRecords: ((...args: unknown[]) =>
|
||||
invokeMock<unknown[], unknown>(
|
||||
writePersistedInstalledPluginIndexInstallRecords,
|
||||
...args,
|
||||
)) as (...args: unknown[]) => unknown,
|
||||
recordPluginInstallInRecords: (
|
||||
records: Record<string, unknown>,
|
||||
update: { pluginId: string; installedAt?: string } & Record<string, unknown>,
|
||||
@@ -459,8 +465,8 @@ export function resetPluginsCliTestState() {
|
||||
resolveMarketplaceInstallShortcut.mockReset();
|
||||
enablePluginInConfig.mockReset();
|
||||
recordPluginInstall.mockReset();
|
||||
loadPluginInstallRecords.mockReset();
|
||||
writePersistedPluginInstallLedger.mockReset();
|
||||
loadInstalledPluginIndexInstallRecords.mockReset();
|
||||
writePersistedInstalledPluginIndexInstallRecords.mockReset();
|
||||
clearPluginManifestRegistryCache.mockReset();
|
||||
loadPluginManifestRegistry.mockReset();
|
||||
buildPluginSnapshotReport.mockReset();
|
||||
@@ -519,11 +525,11 @@ export function resetPluginsCliTestState() {
|
||||
recordPluginInstall.mockImplementation(
|
||||
((cfg: OpenClawConfig) => cfg) as (...args: unknown[]) => unknown,
|
||||
);
|
||||
loadPluginInstallRecords.mockImplementation(async (...args: unknown[]) => {
|
||||
loadInstalledPluginIndexInstallRecords.mockImplementation(async (...args: unknown[]) => {
|
||||
const params = args[0] as LoadPluginInstallRecordsParams | undefined;
|
||||
return structuredClone(params?.config?.plugins?.installs ?? {});
|
||||
});
|
||||
writePersistedPluginInstallLedger.mockResolvedValue(undefined);
|
||||
writePersistedInstalledPluginIndexInstallRecords.mockResolvedValue(undefined);
|
||||
loadPluginManifestRegistry.mockReturnValue({
|
||||
plugins: [],
|
||||
diagnostics: [],
|
||||
@@ -544,7 +550,7 @@ export function resetPluginsCliTestState() {
|
||||
version: 1,
|
||||
hostContractVersion: "2026.4.25",
|
||||
compatRegistryVersion: "compat-v1",
|
||||
migrationVersion: 2,
|
||||
migrationVersion: 1,
|
||||
policyHash: "policy-v1",
|
||||
generatedAtMs: 1777118400000,
|
||||
plugins: [],
|
||||
|
||||
Reference in New Issue
Block a user