|
6 | 6 |
|
7 | 7 | "github.com/blang/semver/v4" |
8 | 8 | troubleshootv1beta2 "github.com/replicatedhq/troubleshoot/pkg/apis/troubleshoot/v1beta2" |
| 9 | + "github.com/stretchr/testify/assert" |
9 | 10 | ) |
10 | 11 |
|
11 | 12 | func Test_analyzeClusterVersionResult(t *testing.T) { |
@@ -103,3 +104,41 @@ func Test_analyzeClusterVersionResult(t *testing.T) { |
103 | 104 | }) |
104 | 105 | } |
105 | 106 | } |
| 107 | + |
| 108 | +func Test_parseVersionString(t *testing.T) { |
| 109 | + tests := []struct { |
| 110 | + name string |
| 111 | + rawVersion string |
| 112 | + want semver.Version |
| 113 | + wantErr bool |
| 114 | + }{ |
| 115 | + { |
| 116 | + name: "valid version", |
| 117 | + rawVersion: "1.17.0", |
| 118 | + want: semver.MustParse("1.17.0"), |
| 119 | + }, |
| 120 | + { |
| 121 | + name: "valid version with v prefix", |
| 122 | + rawVersion: "v1.17.0", |
| 123 | + want: semver.MustParse("1.17.0"), |
| 124 | + }, |
| 125 | + { |
| 126 | + name: "invalid version", |
| 127 | + rawVersion: "v1.17", |
| 128 | + want: semver.Version{}, |
| 129 | + wantErr: true, |
| 130 | + }, |
| 131 | + { |
| 132 | + name: "EKS version", |
| 133 | + rawVersion: "v1.25.16-eks-8cb36c9", |
| 134 | + want: semver.MustParse("1.25.16"), |
| 135 | + }, |
| 136 | + } |
| 137 | + for _, tt := range tests { |
| 138 | + t.Run(tt.name, func(t *testing.T) { |
| 139 | + got, err := parseK8sVersionString(tt.rawVersion) |
| 140 | + assert.Equal(t, tt.wantErr, err != nil, "parseVersionString() error = %v, wantErr %v", err, tt.wantErr) |
| 141 | + assert.Equal(t, tt.want, got, "parseVersionString() = %v, want %v", got, tt.want) |
| 142 | + }) |
| 143 | + } |
| 144 | +} |
0 commit comments