Skip to content

Commit c739fc6

Browse files
ericmorand-sonarsourceEric Morand
andauthored
JS-551 - The import of the ESLint issues is done during the execution… (#5097)
Co-authored-by: Eric Morand <eroc.morand@sonarsource.com>
1 parent cfb68e5 commit c739fc6

3 files changed

Lines changed: 23 additions & 3 deletions

File tree

sonar-plugin/sonar-javascript-plugin/src/main/java/org/sonar/plugins/javascript/analysis/AbstractBridgeSensor.java

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020

2121
import java.io.File;
2222
import java.io.IOException;
23+
import java.util.ArrayList;
2324
import java.util.Arrays;
2425
import java.util.List;
2526
import java.util.function.Predicate;
@@ -35,8 +36,8 @@
3536
import org.sonar.plugins.javascript.bridge.BridgeServer;
3637
import org.sonar.plugins.javascript.bridge.BridgeServerConfig;
3738
import org.sonar.plugins.javascript.bridge.ServerAlreadyFailedException;
38-
import org.sonar.plugins.javascript.external.EslintReportImporter;
3939
import org.sonar.plugins.javascript.external.ExternalIssueRepository;
40+
import org.sonar.plugins.javascript.external.Issue;
4041
import org.sonar.plugins.javascript.nodejs.NodeCommandException;
4142
import org.sonar.plugins.javascript.utils.Exclusions;
4243

@@ -67,8 +68,7 @@ public void execute(SensorContext context) {
6768
environments = Arrays.asList(context.config().getStringArray(JavaScriptPlugin.ENVIRONMENTS));
6869
globals = Arrays.asList(context.config().getStringArray(JavaScriptPlugin.GLOBALS));
6970

70-
var eslintReportImporter = new EslintReportImporter();
71-
var esLintIssues = eslintReportImporter.execute(context);
71+
var esLintIssues = this.getESLintIssues(context);
7272

7373
try {
7474
List<InputFile> inputFiles = getInputFiles();
@@ -142,4 +142,8 @@ protected abstract List<BridgeServer.Issue> analyzeFiles(List<InputFile> inputFi
142142
throws IOException;
143143

144144
protected abstract List<InputFile> getInputFiles();
145+
146+
protected List<Issue> getESLintIssues(SensorContext context) {
147+
return new ArrayList<>();
148+
}
145149
}

sonar-plugin/sonar-javascript-plugin/src/main/java/org/sonar/plugins/javascript/analysis/JsTsSensor.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,12 +23,15 @@
2323
import org.sonar.api.batch.fs.FilePredicate;
2424
import org.sonar.api.batch.fs.FileSystem;
2525
import org.sonar.api.batch.fs.InputFile;
26+
import org.sonar.api.batch.sensor.SensorContext;
2627
import org.sonar.api.batch.sensor.SensorDescriptor;
2728
import org.sonar.plugins.javascript.JavaScriptFilePredicate;
2829
import org.sonar.plugins.javascript.JavaScriptLanguage;
2930
import org.sonar.plugins.javascript.TypeScriptLanguage;
3031
import org.sonar.plugins.javascript.bridge.AnalysisMode;
3132
import org.sonar.plugins.javascript.bridge.BridgeServer;
33+
import org.sonar.plugins.javascript.external.EslintReportImporter;
34+
import org.sonar.plugins.javascript.external.Issue;
3235

3336
@DependedUpon("js-analysis")
3437
public class JsTsSensor extends AbstractBridgeSensor {
@@ -84,4 +87,11 @@ protected List<BridgeServer.Issue> analyzeFiles(List<InputFile> inputFiles) thro
8487

8588
return issues;
8689
}
90+
91+
@Override
92+
protected List<Issue> getESLintIssues(SensorContext context) {
93+
var importer = new EslintReportImporter();
94+
95+
return importer.execute(context);
96+
}
8797
}

sonar-plugin/sonar-javascript-plugin/src/test/java/org/sonar/plugins/javascript/analysis/JsTsSensorTest.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -193,6 +193,12 @@ void should_have_descriptor() throws Exception {
193193
assertThat(descriptor.languages()).containsOnly("js", "ts");
194194
}
195195

196+
/**
197+
* todo
198+
*
199+
* this test should belong to the test suite of the component that actually does the deduplication - namely `AbstractBridgeSensor`;
200+
* but there is no test suite for this component.
201+
*/
196202
@Test
197203
void should_de_duplicate_issues() throws Exception {
198204
JsTsSensor sensor = createSensor();

0 commit comments

Comments
 (0)