diff --git a/src/Cake.Issues.Sarif.Tests/Cake.Issues.Sarif.Tests.csproj b/src/Cake.Issues.Sarif.Tests/Cake.Issues.Sarif.Tests.csproj
index f3168ebec..76f693687 100644
--- a/src/Cake.Issues.Sarif.Tests/Cake.Issues.Sarif.Tests.csproj
+++ b/src/Cake.Issues.Sarif.Tests/Cake.Issues.Sarif.Tests.csproj
@@ -13,9 +13,14 @@
..\Cake.Issues.ruleset
+
+
+
+
+
diff --git a/src/Cake.Issues.Sarif.Tests/SarifIssuesProviderTests.cs b/src/Cake.Issues.Sarif.Tests/SarifIssuesProviderTests.cs
index 0918d3a76..908e545fb 100644
--- a/src/Cake.Issues.Sarif.Tests/SarifIssuesProviderTests.cs
+++ b/src/Cake.Issues.Sarif.Tests/SarifIssuesProviderTests.cs
@@ -173,6 +173,30 @@ public void Should_Read_Issue_Correct_For_File_Generated_By_CakeIssuesReportingS
.WithPriority(IssuePriority.Warning)
.Create());
}
+
+ [Fact]
+ public void Should_Read_Issue_Correct_For_File_Generated_By_EsLint()
+ {
+ // Given
+ var fixture = new SarifIssuesProviderFixture("eslint.sarif");
+
+ // When
+ var issues = fixture.ReadIssues().ToList();
+
+ // Then
+ issues.Count.ShouldBe(1);
+ var issue = issues.Single();
+ IssueChecker.Check(
+ issue,
+ IssueBuilder.NewIssue(
+ "'x' is assigned a value but never used.",
+ "Cake.Issues.Sarif.SarifIssuesProvider",
+ "ESLint")
+ .InFile(@"src\collections\list.cpp", 15)
+ .OfRule("no-unused-vars", new Uri("https://eslint.org/docs/rules/no-unused-vars"))
+ .WithPriority(IssuePriority.Error)
+ .Create());
+ }
}
}
}
diff --git a/src/Cake.Issues.Sarif.Tests/Testfiles/eslint.sarif b/src/Cake.Issues.Sarif.Tests/Testfiles/eslint.sarif
new file mode 100644
index 000000000..2d2fa5cac
--- /dev/null
+++ b/src/Cake.Issues.Sarif.Tests/Testfiles/eslint.sarif
@@ -0,0 +1,57 @@
+{
+ "version": "2.1.0",
+ "$schema": "http://json.schemastore.org/sarif-2.1.0-rtm.4",
+ "runs": [
+ {
+ "tool": {
+ "driver": {
+ "name": "ESLint",
+ "informationUri": "https://eslint.org",
+ "rules": [
+ {
+ "id": "no-unused-vars",
+ "shortDescription": {
+ "text": "disallow unused variables"
+ },
+ "helpUri": "https://eslint.org/docs/rules/no-unused-vars",
+ "properties": {
+ "category": "Variables"
+ }
+ }
+ ]
+ }
+ },
+ "artifacts": [
+ {
+ "location": {
+ "uri": "file:///C:/dev/sarif/sarif-tutorials/samples/Introduction/simple-example.js"
+ }
+ }
+ ],
+ "results": [
+ {
+ "level": "error",
+ "message": {
+ "text": "'x' is assigned a value but never used."
+ },
+ "locations": [
+ {
+ "physicalLocation": {
+ "artifactLocation": {
+ "uri": "file:///C:/dev/sarif/sarif-tutorials/samples/Introduction/simple-example.js",
+ "index": 0
+ },
+ "region": {
+ "startLine": 1,
+ "startColumn": 5
+ }
+ }
+ }
+ ],
+ "ruleId": "no-unused-vars",
+ "ruleIndex": 0
+ }
+ ]
+ }
+ ]
+}
\ No newline at end of file