136 lines
2.5 KiB
Go
136 lines
2.5 KiB
Go
package config
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
func TestIsGoGreaterThanOrEqual(t *testing.T) {
|
|
testCases := []struct {
|
|
desc string
|
|
current string
|
|
limit string
|
|
assert assert.BoolAssertionFunc
|
|
}{
|
|
{
|
|
desc: "current (with minor.major) lower than limit",
|
|
current: "go1.21",
|
|
limit: "1.22",
|
|
assert: assert.False,
|
|
},
|
|
{
|
|
desc: "current (with 0 patch) lower than limit",
|
|
current: "go1.21.0",
|
|
limit: "1.22",
|
|
assert: assert.False,
|
|
},
|
|
{
|
|
desc: "current (current with multiple patches) lower than limit",
|
|
current: "go1.21.6",
|
|
limit: "1.22",
|
|
assert: assert.False,
|
|
},
|
|
{
|
|
desc: "current lower than limit (with minor.major)",
|
|
current: "go1.22",
|
|
limit: "1.22",
|
|
assert: assert.True,
|
|
},
|
|
{
|
|
desc: "current lower than limit (with 0 patch)",
|
|
current: "go1.22.0",
|
|
limit: "1.22",
|
|
assert: assert.True,
|
|
},
|
|
{
|
|
desc: "current lower than limit (current with multiple patches)",
|
|
current: "go1.22.6",
|
|
limit: "1.22",
|
|
assert: assert.True,
|
|
},
|
|
{
|
|
desc: "current greater than limit",
|
|
current: "go1.23.0",
|
|
limit: "1.22",
|
|
assert: assert.True,
|
|
},
|
|
{
|
|
desc: "current with no prefix",
|
|
current: "1.22",
|
|
limit: "1.22",
|
|
assert: assert.True,
|
|
},
|
|
{
|
|
desc: "invalid current value",
|
|
current: "go",
|
|
limit: "1.22",
|
|
assert: assert.False,
|
|
},
|
|
{
|
|
desc: "invalid limit value",
|
|
current: "go1.22",
|
|
limit: "go",
|
|
assert: assert.False,
|
|
},
|
|
}
|
|
|
|
for _, test := range testCases {
|
|
test := test
|
|
t.Run(test.desc, func(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
test.assert(t, IsGoGreaterThanOrEqual(test.current, test.limit))
|
|
})
|
|
}
|
|
}
|
|
|
|
func Test_trimGoVersion(t *testing.T) {
|
|
testCases := []struct {
|
|
desc string
|
|
version string
|
|
expected string
|
|
}{
|
|
{
|
|
desc: "patched version",
|
|
version: "1.22.0",
|
|
expected: "1.22",
|
|
},
|
|
{
|
|
desc: "minor version",
|
|
version: "1.22",
|
|
expected: "1.22",
|
|
},
|
|
{
|
|
desc: "RC version",
|
|
version: "1.22rc1",
|
|
expected: "1.22",
|
|
},
|
|
{
|
|
desc: "alpha version",
|
|
version: "1.22alpha1",
|
|
expected: "1.22",
|
|
},
|
|
{
|
|
desc: "beta version",
|
|
version: "1.22beta1",
|
|
expected: "1.22",
|
|
},
|
|
{
|
|
desc: "semver RC version",
|
|
version: "1.22.0-rc1",
|
|
expected: "1.22",
|
|
},
|
|
}
|
|
|
|
for _, test := range testCases {
|
|
test := test
|
|
t.Run(test.desc, func(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
version := trimGoVersion(test.version)
|
|
assert.Equal(t, test.expected, version)
|
|
})
|
|
}
|
|
}
|