aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorElena Vilchik2019-06-11 13:00:18 +0200
committerGitHub2019-06-11 13:00:18 +0200
commit1410b857a28a37feb6268c27fd3b075b691a234f (patch)
tree5e56b7fe098261f3075f7231c774750e58cc1253
parent45c1d35f0a132b257c8aa419eb981d0b9198bd2f (diff)
downloadsonar-css-1410b857a28a37feb6268c27fd3b075b691a234f.tar.bz2
Add warning when old NodeJS property is used (#175)
-rw-r--r--sonar-css-plugin/src/main/java/org/sonar/css/plugin/CssRuleSensor.java8
-rw-r--r--sonar-css-plugin/src/main/java/org/sonar/css/plugin/StylelintCommandProvider.java19
-rw-r--r--sonar-css-plugin/src/test/java/org/sonar/css/plugin/CssRuleSensorTest.java13
3 files changed, 27 insertions, 13 deletions
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 82e6306..a21f2a0 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
@@ -88,7 +88,13 @@ public class CssRuleSensor implements Sensor {
@Override
public void execute(SensorContext context) {
- // fixme add log and UI warn when old property is provided
+ if (context.config().hasKey(CssPlugin.FORMER_NODE_EXECUTABLE)) {
+ String msg = "Property '" + CssPlugin.FORMER_NODE_EXECUTABLE + "' is ignored, 'sonar.nodejs.executable' should be used instead";
+ LOG.warn(msg);
+ if (analysisWarnings != null) {
+ analysisWarnings.addUnique(msg);
+ }
+ }
if (cssRules.isEmpty()) {
LOG.warn("No rules are activated in CSS Quality Profile");
diff --git a/sonar-css-plugin/src/main/java/org/sonar/css/plugin/StylelintCommandProvider.java b/sonar-css-plugin/src/main/java/org/sonar/css/plugin/StylelintCommandProvider.java
index 90d3ae8..26541bd 100644
--- a/sonar-css-plugin/src/main/java/org/sonar/css/plugin/StylelintCommandProvider.java
+++ b/sonar-css-plugin/src/main/java/org/sonar/css/plugin/StylelintCommandProvider.java
@@ -25,7 +25,6 @@ import java.util.function.Consumer;
import org.sonar.api.batch.ScannerSide;
import org.sonar.api.batch.sensor.SensorContext;
import org.sonarsource.nodejs.NodeCommand;
-import org.sonarsource.nodejs.NodeCommandException;
@ScannerSide
public class StylelintCommandProvider implements LinterCommandProvider {
@@ -47,17 +46,13 @@ public class StylelintCommandProvider implements LinterCommandProvider {
"-f", "json"
};
- try {
- return NodeCommand.builder()
- .outputConsumer(output)
- .errorConsumer(error)
- .minNodeVersion(6)
- .configuration(context.config())
- .nodeJsArgs(args)
- .build();
- } catch (IllegalArgumentException e) {
- throw new NodeCommandException(e.getMessage(), e);
- }
+ return NodeCommand.builder()
+ .outputConsumer(output)
+ .errorConsumer(error)
+ .minNodeVersion(6)
+ .configuration(context.config())
+ .nodeJsArgs(args)
+ .build();
}
@Override
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 f7f0d31..cf33d50 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
@@ -107,6 +107,19 @@ public class CssRuleSensorTest {
}
@Test
+ public void test_old_property_is_provided() {
+ TestLinterCommandProvider commandProvider = getCommandProvider();
+ CssRuleSensor sensor = createCssRuleSensor(commandProvider, analysisWarnings);
+ context.settings().setProperty(CssPlugin.FORMER_NODE_EXECUTABLE, "foo");
+ sensor.execute(context);
+
+ assertThat(logTester.logs(LoggerLevel.WARN)).contains("Property 'sonar.css.node' is ignored, 'sonar.nodejs.executable' should be used instead");
+ verify(analysisWarnings).addUnique(eq("Property 'sonar.css.node' is ignored, 'sonar.nodejs.executable' should be used instead"));
+
+ assertThat(context.allIssues()).hasSize(1);
+ }
+
+ @Test
public void test_invalid_node() {
InvalidCommandProvider commandProvider = new InvalidCommandProvider();
CssRuleSensor sensor = createCssRuleSensor(commandProvider);