@@ -166,22 +166,24 @@ func TestFuzzyConversion(t *testing.T) {
166
166
func TestMachineConversionControllerSpecFields (t * testing.T ) {
167
167
// This tests that we still do field restoration when the controller modifies ProviderID and InstanceID in the spec
168
168
169
- g := gomega .NewWithT (t )
170
- scheme := runtime .NewScheme ()
171
- g .Expect (AddToScheme (scheme )).To (gomega .Succeed ())
172
- g .Expect (infrav1 .AddToScheme (scheme )).To (gomega .Succeed ())
173
-
169
+ // Define an initial state which cannot be converted losslessly. We add
170
+ // an IdentityRef with a Kind, which has been removed in v1beta1.
174
171
testMachine := func () * OpenStackMachine {
175
172
return & OpenStackMachine {
176
- Spec : OpenStackMachineSpec {},
173
+ Spec : OpenStackMachineSpec {
174
+ IdentityRef : & OpenStackIdentityReference {
175
+ Kind : "InvalidKind" ,
176
+ Name : "test-name" ,
177
+ },
178
+ },
177
179
}
178
180
}
179
181
180
182
tests := []struct {
181
- name string
182
- modifyUp func (* infrav1.OpenStackMachine )
183
- testAfter func (* OpenStackMachine )
184
- expectNetworkDiff bool
183
+ name string
184
+ modifyUp func (* infrav1.OpenStackMachine )
185
+ testAfter func (gomega. Gomega , * OpenStackMachine )
186
+ expectIdentityRefDiff bool
185
187
}{
186
188
{
187
189
name : "No change" ,
@@ -191,47 +193,52 @@ func TestMachineConversionControllerSpecFields(t *testing.T) {
191
193
modifyUp : func (up * infrav1.OpenStackMachine ) {
192
194
up .Spec .Flavor = "new-flavor"
193
195
},
194
- testAfter : func (after * OpenStackMachine ) {
196
+ testAfter : func (g gomega. Gomega , after * OpenStackMachine ) {
195
197
g .Expect (after .Spec .Flavor ).To (gomega .Equal ("new-flavor" ))
196
198
},
197
- expectNetworkDiff : true ,
199
+ expectIdentityRefDiff : true ,
198
200
},
199
201
{
200
202
name : "Set ProviderID" ,
201
203
modifyUp : func (up * infrav1.OpenStackMachine ) {
202
204
up .Spec .ProviderID = pointer .String ("new-provider-id" )
203
205
},
204
- testAfter : func (after * OpenStackMachine ) {
206
+ testAfter : func (g gomega. Gomega , after * OpenStackMachine ) {
205
207
g .Expect (after .Spec .ProviderID ).To (gomega .Equal (pointer .String ("new-provider-id" )))
206
208
},
207
- expectNetworkDiff : false ,
209
+ expectIdentityRefDiff : false ,
208
210
},
209
211
{
210
212
name : "Set InstanceID" ,
211
213
modifyUp : func (up * infrav1.OpenStackMachine ) {
212
214
up .Spec .InstanceID = pointer .String ("new-instance-id" )
213
215
},
214
- testAfter : func (after * OpenStackMachine ) {
216
+ testAfter : func (g gomega. Gomega , after * OpenStackMachine ) {
215
217
g .Expect (after .Spec .InstanceID ).To (gomega .Equal (pointer .String ("new-instance-id" )))
216
218
},
217
- expectNetworkDiff : false ,
219
+ expectIdentityRefDiff : false ,
218
220
},
219
221
{
220
222
name : "Set ProviderID and non-ignored change" ,
221
223
modifyUp : func (up * infrav1.OpenStackMachine ) {
222
224
up .Spec .ProviderID = pointer .String ("new-provider-id" )
223
225
up .Spec .Flavor = "new-flavor"
224
226
},
225
- testAfter : func (after * OpenStackMachine ) {
227
+ testAfter : func (g gomega. Gomega , after * OpenStackMachine ) {
226
228
g .Expect (after .Spec .ProviderID ).To (gomega .Equal (pointer .String ("new-provider-id" )))
227
229
g .Expect (after .Spec .Flavor ).To (gomega .Equal ("new-flavor" ))
228
230
},
229
- expectNetworkDiff : true ,
231
+ expectIdentityRefDiff : true ,
230
232
},
231
233
}
232
234
233
235
for _ , tt := range tests {
234
236
t .Run (tt .name , func (t * testing.T ) {
237
+ g := gomega .NewWithT (t )
238
+ scheme := runtime .NewScheme ()
239
+ g .Expect (AddToScheme (scheme )).To (gomega .Succeed ())
240
+ g .Expect (infrav1 .AddToScheme (scheme )).To (gomega .Succeed ())
241
+
235
242
before := testMachine ()
236
243
237
244
up := infrav1.OpenStackMachine {}
@@ -245,7 +252,14 @@ func TestMachineConversionControllerSpecFields(t *testing.T) {
245
252
g .Expect (after .ConvertFrom (& up )).To (gomega .Succeed ())
246
253
247
254
if tt .testAfter != nil {
248
- tt .testAfter (& after )
255
+ tt .testAfter (g , & after )
256
+ }
257
+
258
+ g .Expect (after .Spec .IdentityRef ).ToNot (gomega .BeNil ())
259
+ if tt .expectIdentityRefDiff {
260
+ g .Expect (after .Spec .IdentityRef .Kind ).ToNot (gomega .Equal ("InvalidKind" ))
261
+ } else {
262
+ g .Expect (after .Spec .IdentityRef .Kind ).To (gomega .Equal ("InvalidKind" ))
249
263
}
250
264
})
251
265
}
0 commit comments