diff --git a/lib/cli-engine/cli-engine.js b/lib/cli-engine/cli-engine.js index 17ed8d9f01b..8afd262708f 100644 --- a/lib/cli-engine/cli-engine.js +++ b/lib/cli-engine/cli-engine.js @@ -667,11 +667,14 @@ class CLIEngine { addPlugin(name, pluginObject) { const { additionalPluginPool, - configArrayFactory + configArrayFactory, + lastConfigArrays } = internalSlotsMap.get(this); additionalPluginPool.set(name, pluginObject); configArrayFactory.clearCache(); + lastConfigArrays.length = 1; + lastConfigArrays[0] = configArrayFactory.getConfigArrayForFile(); } /** diff --git a/tests/lib/cli-engine/cli-engine.js b/tests/lib/cli-engine/cli-engine.js index 7c2ce871cca..2cdc81301bf 100644 --- a/tests/lib/cli-engine/cli-engine.js +++ b/tests/lib/cli-engine/cli-engine.js @@ -4022,6 +4022,14 @@ describe("CLIEngine", () => { assert(engine.getRules().has("node/no-deprecated-api"), "node/no-deprecated-api is present"); }); + + it("should expose the rules of the plugin that is added by 'addPlugin'.", () => { + const engine = new CLIEngine({ plugins: ["foo"] }); + + engine.addPlugin("foo", require("eslint-plugin-node")); + + assert(engine.getRules().has("foo/no-deprecated-api"), "foo/no-deprecated-api is present"); + }); }); describe("resolveFileGlobPatterns", () => {