87 lines
1.7 KiB
Go
87 lines
1.7 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))
|
|
})
|
|
}
|
|
}
|