Skip to content

Commit a49e0b8

Browse files
k1LoWdaveshanley
authored andcommitted
add VersionToFloat utility function
1 parent c440fec commit a49e0b8

File tree

2 files changed

+78
-0
lines changed

2 files changed

+78
-0
lines changed

helpers/version.go

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
package helpers
2+
3+
import (
4+
"strings"
5+
)
6+
7+
// VersionToFloat converts a version string to a float32 for easier comparison.
8+
func VersionToFloat(version string) float32 {
9+
switch {
10+
case strings.HasPrefix(version, "3.0"):
11+
return 3.0
12+
default:
13+
return 3.1
14+
}
15+
}

helpers/version_test.go

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
package helpers
2+
3+
import (
4+
"testing"
5+
6+
"github.com/stretchr/testify/assert"
7+
)
8+
9+
func TestVersionToFloat(t *testing.T) {
10+
tests := []struct {
11+
name string
12+
version string
13+
expected float32
14+
}{
15+
{
16+
name: "OpenAPI 3.0",
17+
version: "3.0",
18+
expected: 3.0,
19+
},
20+
{
21+
name: "OpenAPI 3.0.0",
22+
version: "3.0.0",
23+
expected: 3.0,
24+
},
25+
{
26+
name: "OpenAPI 3.0.3",
27+
version: "3.0.3",
28+
expected: 3.0,
29+
},
30+
{
31+
name: "OpenAPI 3.1",
32+
version: "3.1",
33+
expected: 3.1,
34+
},
35+
{
36+
name: "OpenAPI 3.1.0",
37+
version: "3.1.0",
38+
expected: 3.1,
39+
},
40+
{
41+
name: "OpenAPI 3.1.1",
42+
version: "3.1.1",
43+
expected: 3.1,
44+
},
45+
{
46+
name: "default to 3.1 for unknown version",
47+
version: "4.0",
48+
expected: 3.1,
49+
},
50+
{
51+
name: "default to 3.1 for empty string",
52+
version: "",
53+
expected: 3.1,
54+
},
55+
}
56+
57+
for _, tt := range tests {
58+
t.Run(tt.name, func(t *testing.T) {
59+
result := VersionToFloat(tt.version)
60+
assert.Equal(t, tt.expected, result)
61+
})
62+
}
63+
}

0 commit comments

Comments
 (0)