71 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			71 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| package golinters
 | |
| 
 | |
| import (
 | |
| 	"testing"
 | |
| 
 | |
| 	"github.com/securego/gosec/v2"
 | |
| 	"github.com/stretchr/testify/assert"
 | |
| 
 | |
| 	"github.com/golangci/golangci-lint/pkg/config"
 | |
| )
 | |
| 
 | |
| func Test_toGosecConfig(t *testing.T) {
 | |
| 	testCases := []struct {
 | |
| 		desc     string
 | |
| 		settings *config.GoSecSettings
 | |
| 		expected gosec.Config
 | |
| 	}{
 | |
| 		{
 | |
| 			desc:     "empty config map",
 | |
| 			settings: &config.GoSecSettings{},
 | |
| 			expected: gosec.Config{
 | |
| 				"global": map[gosec.GlobalOption]string{},
 | |
| 			},
 | |
| 		},
 | |
| 		{
 | |
| 			desc: "with global settings",
 | |
| 			settings: &config.GoSecSettings{
 | |
| 				Config: map[string]any{
 | |
| 					gosec.Globals: map[string]any{
 | |
| 						string(gosec.Nosec): true,
 | |
| 						string(gosec.Audit): "true",
 | |
| 					},
 | |
| 				},
 | |
| 			},
 | |
| 			expected: gosec.Config{
 | |
| 				"global": map[gosec.GlobalOption]string{
 | |
| 					"audit": "true",
 | |
| 					"nosec": "true",
 | |
| 				},
 | |
| 			},
 | |
| 		},
 | |
| 		{
 | |
| 			desc: "rule specified setting",
 | |
| 			settings: &config.GoSecSettings{
 | |
| 				Config: map[string]any{
 | |
| 					"g101": map[string]any{
 | |
| 						"pattern": "(?i)example",
 | |
| 					},
 | |
| 					"G301": "0750",
 | |
| 				},
 | |
| 			},
 | |
| 			expected: gosec.Config{
 | |
| 				"G101":   map[string]any{"pattern": "(?i)example"},
 | |
| 				"G301":   "0750",
 | |
| 				"global": map[gosec.GlobalOption]string{},
 | |
| 			},
 | |
| 		},
 | |
| 	}
 | |
| 
 | |
| 	for _, test := range testCases {
 | |
| 		test := test
 | |
| 		t.Run(test.desc, func(t *testing.T) {
 | |
| 			t.Parallel()
 | |
| 
 | |
| 			conf := toGosecConfig(test.settings)
 | |
| 
 | |
| 			assert.Equal(t, test.expected, conf)
 | |
| 		})
 | |
| 	}
 | |
| }
 | 
