refactor(plugins): separate activation from enablement (#59844)

* refactor(plugins): separate activation from enablement

* fix(cli): sanitize verbose plugin activation reasons
This commit is contained in:
Vincent Koc
2026-04-03 03:22:37 +09:00
committed by GitHub
parent 4aeb0255f3
commit f911bbc353
15 changed files with 148 additions and 42 deletions

View File

@@ -69,6 +69,28 @@ describe("plugins cli list", () => {
expect(output).toContain("explicitly enabled: no");
});
it("sanitizes activation reasons in verbose output", async () => {
buildPluginSnapshotReport.mockReturnValue({
plugins: [
createPluginRecord({
id: "demo",
name: "Demo Plugin",
activated: true,
activationSource: "auto",
activationReason: "\u001B[31mconfigured\nnext\tstep",
}),
],
diagnostics: [],
});
await runPluginsCommand(["plugins", "list", "--verbose"]);
const output = runtimeLogs.join("\n");
expect(output).toContain("activation reason: configured\\nnext\\tstep");
expect(output).not.toContain("\u001B[31m");
expect(output.match(/activation reason:/g)).toHaveLength(1);
});
it("keeps doctor on a module-loading snapshot", async () => {
buildPluginDiagnosticsReport.mockReturnValue({
plugins: [],