golangci-lint/pkg/commands/internal/configuration_test.go
2024-03-11 17:40:26 +01:00

128 lines
2.4 KiB
Go

package internal
import (
"testing"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
)
func TestConfiguration_Validate(t *testing.T) {
testCases := []struct {
desc string
cfg *Configuration
}{
{
desc: "version",
cfg: &Configuration{
Version: "v1.57.0",
Plugins: []*Plugin{
{
Module: "example.org/foo/bar",
Import: "example.org/foo/bar/test",
Version: "v1.2.3",
},
},
},
},
{
desc: "path",
cfg: &Configuration{
Version: "v1.57.0",
Plugins: []*Plugin{
{
Module: "example.org/foo/bar",
Import: "example.org/foo/bar/test",
Path: "/my/path",
},
},
},
},
}
for _, test := range testCases {
test := test
t.Run(test.desc, func(t *testing.T) {
t.Parallel()
err := test.cfg.Validate()
require.NoError(t, err)
})
}
}
func TestConfiguration_Validate_error(t *testing.T) {
testCases := []struct {
desc string
cfg *Configuration
expected string
}{
{
desc: "missing version",
cfg: &Configuration{},
expected: "root field 'version' is required",
},
{
desc: "no plugins",
cfg: &Configuration{
Version: "v1.57.0",
},
expected: "no plugins defined",
},
{
desc: "missing module",
cfg: &Configuration{
Version: "v1.57.0",
Plugins: []*Plugin{
{
Module: "",
Import: "example.org/foo/bar/test",
Version: "v1.2.3",
Path: "/my/path",
},
},
},
expected: "field 'module' is required",
},
{
desc: "module version and path",
cfg: &Configuration{
Version: "v1.57.0",
Plugins: []*Plugin{
{
Module: "example.org/foo/bar",
Import: "example.org/foo/bar/test",
Version: "v1.2.3",
Path: "/my/path",
},
},
},
expected: "invalid configuration: 'version' and 'path' should not be provided at the same time",
},
{
desc: "no module version and path",
cfg: &Configuration{
Version: "v1.57.0",
Plugins: []*Plugin{
{
Module: "example.org/foo/bar",
Import: "example.org/foo/bar/test",
},
},
},
expected: "missing information: 'version' or 'path' should be provided",
},
}
for _, test := range testCases {
test := test
t.Run(test.desc, func(t *testing.T) {
t.Parallel()
err := test.cfg.Validate()
assert.EqualError(t, err, test.expected)
})
}
}