From a7cbea9bfccfaaeca25498d4cde75dff7ddb7b76 Mon Sep 17 00:00:00 2001 From: Elena Date: Tue, 26 Jun 2018 14:45:24 +0200 Subject: Do not launch stylelint if no rules enabled --- .../src/main/java/org/sonar/css/plugin/CssRuleSensor.java | 5 +++++ .../src/main/java/org/sonar/css/plugin/CssRules.java | 4 ++++ .../src/test/java/org/sonar/css/plugin/CssRuleSensorTest.java | 9 +++++++++ 3 files changed, 18 insertions(+) (limited to 'sonar-css-plugin') diff --git a/sonar-css-plugin/src/main/java/org/sonar/css/plugin/CssRuleSensor.java b/sonar-css-plugin/src/main/java/org/sonar/css/plugin/CssRuleSensor.java index d13038e..da781aa 100644 --- a/sonar-css-plugin/src/main/java/org/sonar/css/plugin/CssRuleSensor.java +++ b/sonar-css-plugin/src/main/java/org/sonar/css/plugin/CssRuleSensor.java @@ -71,6 +71,11 @@ public class CssRuleSensor implements Sensor { @Override public void execute(SensorContext context) { + if (cssRules.isEmpty()) { + LOG.warn("No rules are activated in CSS Quality Profile"); + return; + } + if (!checkCompatibleNodeVersion(context)) { return; } diff --git a/sonar-css-plugin/src/main/java/org/sonar/css/plugin/CssRules.java b/sonar-css-plugin/src/main/java/org/sonar/css/plugin/CssRules.java index b2f3560..e05461b 100644 --- a/sonar-css-plugin/src/main/java/org/sonar/css/plugin/CssRules.java +++ b/sonar-css-plugin/src/main/java/org/sonar/css/plugin/CssRules.java @@ -101,6 +101,10 @@ public class CssRules { return config; } + public boolean isEmpty() { + return stylelintKeyToRuleKey.isEmpty(); + } + public static class StylelintConfig { Map rules = new HashMap<>(); } diff --git a/sonar-css-plugin/src/test/java/org/sonar/css/plugin/CssRuleSensorTest.java b/sonar-css-plugin/src/test/java/org/sonar/css/plugin/CssRuleSensorTest.java index 030a987..0b4acd2 100644 --- a/sonar-css-plugin/src/test/java/org/sonar/css/plugin/CssRuleSensorTest.java +++ b/sonar-css-plugin/src/test/java/org/sonar/css/plugin/CssRuleSensorTest.java @@ -136,6 +136,15 @@ public class CssRuleSensorTest { sensor.execute(context); } + @Test + public void test_not_execute_rules_if_nothing_enabled() throws IOException { + TestLinterCommandProvider commandProvider = new TestLinterCommandProvider().nodeScript("/executables/mockError.js", inputFile.absolutePath()); + CssRuleSensor sensor = new CssRuleSensor(new TestBundleHandler(), new CheckFactory(new TestActiveRules()), commandProvider); + sensor.execute(context); + + assertThat(logTester.logs(LoggerLevel.WARN)).contains("No rules are activated in CSS Quality Profile"); + } + private static DefaultInputFile createInputFile(SensorContextTester sensorContext, String content, String relativePath) { DefaultInputFile inputFile = new TestInputFileBuilder("moduleKey", relativePath) .setModuleBaseDir(sensorContext.fileSystem().baseDirPath()) -- cgit v1.2.3