feat(plugins): surface imported runtime state in status tooling (#59659)

* feat(plugins): surface imported runtime state

* fix(plugins): keep status imports snapshot-only

* fix(plugins): keep status snapshots manifest-only

* fix(plugins): restore doctor load checks

* refactor(plugins): split snapshot and diagnostics reports

* fix(plugins): track imported erroring modules

* fix(plugins): keep hot metadata where required

* fix(plugins): keep hot doctor and write targeting

* fix(plugins): track throwing module imports
This commit is contained in:
Vincent Koc
2026-04-02 22:50:17 +09:00
committed by GitHub
parent 1ecd92af89
commit def5b954a8
18 changed files with 684 additions and 51 deletions

View File

@@ -0,0 +1,83 @@
import { beforeEach, describe, expect, it } from "vitest";
import { createPluginRecord } from "../plugins/status.test-helpers.js";
import {
buildPluginDiagnosticsReport,
buildPluginSnapshotReport,
resetPluginsCliTestState,
runPluginsCommand,
runtimeLogs,
} from "./plugins-cli-test-helpers.js";
describe("plugins cli list", () => {
beforeEach(() => {
resetPluginsCliTestState();
});
it("includes imported state in JSON output", async () => {
buildPluginSnapshotReport.mockReturnValue({
workspaceDir: "/workspace",
plugins: [
createPluginRecord({
id: "demo",
imported: true,
activated: true,
explicitlyEnabled: true,
}),
],
diagnostics: [],
});
await runPluginsCommand(["plugins", "list", "--json"]);
expect(buildPluginSnapshotReport).toHaveBeenCalledWith();
expect(JSON.parse(runtimeLogs[0] ?? "null")).toEqual({
workspaceDir: "/workspace",
plugins: [
expect.objectContaining({
id: "demo",
imported: true,
activated: true,
explicitlyEnabled: true,
}),
],
diagnostics: [],
});
});
it("shows imported state in verbose output", async () => {
buildPluginSnapshotReport.mockReturnValue({
plugins: [
createPluginRecord({
id: "demo",
name: "Demo Plugin",
imported: false,
activated: true,
explicitlyEnabled: false,
}),
],
diagnostics: [],
});
await runPluginsCommand(["plugins", "list", "--verbose"]);
expect(buildPluginSnapshotReport).toHaveBeenCalledWith();
const output = runtimeLogs.join("\n");
expect(output).toContain("activated: yes");
expect(output).toContain("imported: no");
expect(output).toContain("explicitly enabled: no");
});
it("keeps doctor on a module-loading snapshot", async () => {
buildPluginDiagnosticsReport.mockReturnValue({
plugins: [],
diagnostics: [],
});
await runPluginsCommand(["plugins", "doctor"]);
expect(buildPluginDiagnosticsReport).toHaveBeenCalledWith();
expect(runtimeLogs).toContain("No plugin issues detected.");
});
});