github.com/chenfeining/golangci-lint@v1.0.2-0.20230730162517-14c6c67868df/pkg/result/processors/path_prefixer_test.go (about)

     1  package processors
     2  
     3  import (
     4  	"go/token"
     5  	"path/filepath"
     6  	"testing"
     7  
     8  	"github.com/stretchr/testify/assert"
     9  	"github.com/stretchr/testify/require"
    10  
    11  	"github.com/chenfeining/golangci-lint/pkg/result"
    12  )
    13  
    14  func TestPathPrefixer_Process(t *testing.T) {
    15  	paths := func(ps ...string) (issues []result.Issue) {
    16  		for _, p := range ps {
    17  			issues = append(issues, result.Issue{Pos: token.Position{Filename: filepath.FromSlash(p)}})
    18  		}
    19  		return
    20  	}
    21  
    22  	for _, tt := range []struct {
    23  		name, prefix string
    24  		issues, want []result.Issue
    25  	}{
    26  		{
    27  			name:   "empty prefix",
    28  			issues: paths("some/path", "cool"),
    29  			want:   paths("some/path", "cool"),
    30  		},
    31  		{
    32  			name:   "prefix",
    33  			prefix: "ok",
    34  			issues: paths("some/path", "cool"),
    35  			want:   paths("ok/some/path", "ok/cool"),
    36  		},
    37  		{
    38  			name:   "prefix slashed",
    39  			prefix: "ok/",
    40  			issues: paths("some/path", "cool"),
    41  			want:   paths("ok/some/path", "ok/cool"),
    42  		},
    43  	} {
    44  		t.Run(tt.name, func(t *testing.T) {
    45  			p := NewPathPrefixer(tt.prefix)
    46  
    47  			got, err := p.Process(tt.issues)
    48  			require.NoError(t, err)
    49  
    50  			assert.Equal(t, got, tt.want)
    51  		})
    52  	}
    53  }