@@ -20,8 +20,8 @@ import (
20
20
"testing"
21
21
22
22
. "github.com/onsi/gomega"
23
-
24
23
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
24
+ "k8s.io/utils/pointer"
25
25
utildefaulting "sigs.k8s.io/cluster-api/util/defaulting"
26
26
)
27
27
@@ -31,6 +31,13 @@ func TestMachineSetDefault(t *testing.T) {
31
31
ObjectMeta : metav1.ObjectMeta {
32
32
Name : "test-ms" ,
33
33
},
34
+ Spec : MachineSetSpec {
35
+ Template : MachineTemplateSpec {
36
+ Spec : MachineSpec {
37
+ Version : pointer .String ("1.19.10" ),
38
+ },
39
+ },
40
+ },
34
41
}
35
42
t .Run ("for MachineSet" , utildefaulting .DefaultValidateTest (ms ))
36
43
ms .Default ()
@@ -39,6 +46,7 @@ func TestMachineSetDefault(t *testing.T) {
39
46
g .Expect (ms .Spec .DeletePolicy ).To (Equal (string (RandomMachineSetDeletePolicy )))
40
47
g .Expect (ms .Spec .Selector .MatchLabels ).To (HaveKeyWithValue (MachineSetLabelName , "test-ms" ))
41
48
g .Expect (ms .Spec .Template .Labels ).To (HaveKeyWithValue (MachineSetLabelName , "test-ms" ))
49
+ g .Expect (* ms .Spec .Template .Spec .Version ).To (Equal ("v1.19.10" ))
42
50
}
43
51
44
52
func TestMachineSetLabelSelectorMatchValidation (t * testing.T ) {
@@ -151,3 +159,61 @@ func TestMachineSetClusterNameImmutable(t *testing.T) {
151
159
})
152
160
}
153
161
}
162
+
163
+ func TestMachineSetVersionValidation (t * testing.T ) {
164
+ tests := []struct {
165
+ name string
166
+ version string
167
+ expectErr bool
168
+ }{
169
+ {
170
+ name : "should succeed when given a valid semantic version with prepended 'v'" ,
171
+ version : "v1.19.2" ,
172
+ expectErr : false ,
173
+ },
174
+ {
175
+ name : "should return error when given a valid semantic version without 'v'" ,
176
+ version : "1.19.2" ,
177
+ expectErr : true ,
178
+ },
179
+ {
180
+ name : "should return error when given an invalid semantic version" ,
181
+ version : "1" ,
182
+ expectErr : true ,
183
+ },
184
+ {
185
+ name : "should return error when given an invalid semantic version" ,
186
+ version : "v1" ,
187
+ expectErr : true ,
188
+ },
189
+ {
190
+ name : "should return error when given an invalid semantic version" ,
191
+ version : "wrong_version" ,
192
+ expectErr : true ,
193
+ },
194
+ }
195
+
196
+ for _ , tt := range tests {
197
+ t .Run (tt .name , func (t * testing.T ) {
198
+ g := NewWithT (t )
199
+
200
+ md := & MachineSet {
201
+ Spec : MachineSetSpec {
202
+ Template : MachineTemplateSpec {
203
+ Spec : MachineSpec {
204
+ Version : pointer .String (tt .version ),
205
+ },
206
+ },
207
+ },
208
+ }
209
+
210
+ if tt .expectErr {
211
+ g .Expect (md .ValidateCreate ()).NotTo (Succeed ())
212
+ g .Expect (md .ValidateUpdate (md )).NotTo (Succeed ())
213
+ } else {
214
+ g .Expect (md .ValidateCreate ()).To (Succeed ())
215
+ g .Expect (md .ValidateUpdate (md )).To (Succeed ())
216
+ }
217
+ })
218
+ }
219
+ }
0 commit comments