Skip to content

Commit

Permalink
fix: panic when using default finder findRange (#543)
Browse files Browse the repository at this point in the history
  • Loading branch information
bastiandoetsch authored Jun 14, 2024
1 parent 592e651 commit 6f590f1
Show file tree
Hide file tree
Showing 2 changed files with 37 additions and 17 deletions.
2 changes: 1 addition & 1 deletion infrastructure/oss/range_finder.go
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ func findRange(issue ossIssue, path string, fileContent []byte) snyk.Range {
finder = &DefaultFinder{path: path, fileContent: fileContent, c: c}
}
default:
finder = &DefaultFinder{path: path, fileContent: fileContent}
finder = &DefaultFinder{path: path, fileContent: fileContent, c: c}
}

foundRange = finder.find(issue)
Expand Down
52 changes: 36 additions & 16 deletions infrastructure/oss/range_finder_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -28,30 +28,34 @@ import (
"github.com/snyk/snyk-ls/internal/testutil"
)

func Test_DefaultFinder_FindRange(t *testing.T) {
issue, testPath, testContent := setupDefaultFinderEnvForTesting()
expectedRange := getExpectedRangeForDefaultFinderTests()

actualRange := findRange(issue, testPath, testContent)

assert.Equal(t, expectedRange, actualRange)
}

func TestDefaultFinder_Find(t *testing.T) {
c := testutil.UnitTest(t)
c.SetFormat(config.FormatHtml)

var issue = ossIssue{
Id: "testIssue",
Name: "SNYK-TEST-ISSUE-1",
Title: "THOU SHALL NOT PASS",
Severity: "1",
LineNumber: 0,
Description: "Getting into Moria is an issue!",
References: nil,
Version: "",
PackageManager: "golang",
From: []string{"goof@1.0.1", "github.com/gin-gonic/gin@1.4.0"},
}
var testPath, _ = filepath.Abs("testdata/go.mod")
var testContent, _ = os.ReadFile(testPath)
issue, testPath, testContent := setupDefaultFinderEnvForTesting()

defaultFinder := DefaultFinder{
path: testPath,
fileContent: testContent,
c: c,
}

expectedRange := getExpectedRangeForDefaultFinderTests()

actualRange := defaultFinder.find(issue)
assert.Equal(t, expectedRange, actualRange)
}

func getExpectedRangeForDefaultFinderTests() snyk.Range {
expectedRange := snyk.Range{
Start: snyk.Position{
Line: 9,
Expand All @@ -62,7 +66,23 @@ func TestDefaultFinder_Find(t *testing.T) {
Character: 32,
},
}
return expectedRange
}

actualRange := defaultFinder.find(issue)
assert.Equal(t, expectedRange, actualRange)
func setupDefaultFinderEnvForTesting() (ossIssue, string, []byte) {
var issue = ossIssue{
Id: "testIssue",
Name: "SNYK-TEST-ISSUE-1",
Title: "THOU SHALL NOT PASS",
Severity: "1",
LineNumber: 0,
Description: "Getting into Moria is an issue!",
References: nil,
Version: "",
PackageManager: "golang",
From: []string{"goof@1.0.1", "github.com/gin-gonic/gin@1.4.0"},
}
var testPath, _ = filepath.Abs("testdata/go.mod")
var testContent, _ = os.ReadFile(testPath)
return issue, testPath, testContent
}

0 comments on commit 6f590f1

Please sign in to comment.