110 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			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)
 | |
| 		})
 | |
| 	}
 | |
| }
 | 
