golangci-lint/pkg/result/processors/invalid_issue_test.go
Ludovic Fernandez cd890db217
Some checks failed
Release a tag / release (push) Has been cancelled
fix: filter invalid issues before other processors (#4552)
2024-03-20 17:25:22 +01:00

110 lines
1.9 KiB
Go

package processors
import (
"go/token"
"testing"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
"github.com/golangci/golangci-lint/pkg/logutils"
"github.com/golangci/golangci-lint/pkg/result"
)
func TestInvalidIssue_Process(t *testing.T) {
logger := logutils.NewStderrLog(logutils.DebugKeyInvalidIssue)
logger.SetLevel(logutils.LogLevelDebug)
p := NewInvalidIssue(logger)
testCases := []struct {
desc string
issues []result.Issue
expected []result.Issue
}{
{
desc: "typecheck",
issues: []result.Issue{
{FromLinter: "typecheck"},
},
expected: []result.Issue{
{FromLinter: "typecheck"},
},
},
{
desc: "Go file",
issues: []result.Issue{
{
FromLinter: "example",
Pos: token.Position{
Filename: "test.go",
},
},
},
expected: []result.Issue{
{
FromLinter: "example",
Pos: token.Position{
Filename: "test.go",
},
},
},
},
{
desc: "go.mod",
issues: []result.Issue{
{
FromLinter: "example",
Pos: token.Position{
Filename: "go.mod",
},
},
},
expected: []result.Issue{
{
FromLinter: "example",
Pos: token.Position{
Filename: "go.mod",
},
},
},
},
{
desc: "non Go file",
issues: []result.Issue{
{
FromLinter: "example",
Pos: token.Position{
Filename: "test.txt",
},
},
},
expected: []result.Issue{},
},
{
desc: "no filename",
issues: []result.Issue{
{
FromLinter: "example",
Pos: token.Position{
Filename: "",
},
},
},
expected: []result.Issue{},
},
}
for _, test := range testCases {
test := test
t.Run(test.desc, func(t *testing.T) {
t.Parallel()
after, err := p.Process(test.issues)
require.NoError(t, err)
assert.Equal(t, test.expected, after)
})
}
}