@@ -166,22 +166,24 @@ func TestFuzzyConversion(t *testing.T) {
166166func TestMachineConversionControllerSpecFields (t * testing.T ) {
167167 // This tests that we still do field restoration when the controller modifies ProviderID and InstanceID in the spec
168168
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.
174171 testMachine := func () * OpenStackMachine {
175172 return & OpenStackMachine {
176- Spec : OpenStackMachineSpec {},
173+ Spec : OpenStackMachineSpec {
174+ IdentityRef : & OpenStackIdentityReference {
175+ Kind : "InvalidKind" ,
176+ Name : "test-name" ,
177+ },
178+ },
177179 }
178180 }
179181
180182 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
185187 }{
186188 {
187189 name : "No change" ,
@@ -191,47 +193,52 @@ func TestMachineConversionControllerSpecFields(t *testing.T) {
191193 modifyUp : func (up * infrav1.OpenStackMachine ) {
192194 up .Spec .Flavor = "new-flavor"
193195 },
194- testAfter : func (after * OpenStackMachine ) {
196+ testAfter : func (g gomega. Gomega , after * OpenStackMachine ) {
195197 g .Expect (after .Spec .Flavor ).To (gomega .Equal ("new-flavor" ))
196198 },
197- expectNetworkDiff : true ,
199+ expectIdentityRefDiff : true ,
198200 },
199201 {
200202 name : "Set ProviderID" ,
201203 modifyUp : func (up * infrav1.OpenStackMachine ) {
202204 up .Spec .ProviderID = pointer .String ("new-provider-id" )
203205 },
204- testAfter : func (after * OpenStackMachine ) {
206+ testAfter : func (g gomega. Gomega , after * OpenStackMachine ) {
205207 g .Expect (after .Spec .ProviderID ).To (gomega .Equal (pointer .String ("new-provider-id" )))
206208 },
207- expectNetworkDiff : false ,
209+ expectIdentityRefDiff : false ,
208210 },
209211 {
210212 name : "Set InstanceID" ,
211213 modifyUp : func (up * infrav1.OpenStackMachine ) {
212214 up .Spec .InstanceID = pointer .String ("new-instance-id" )
213215 },
214- testAfter : func (after * OpenStackMachine ) {
216+ testAfter : func (g gomega. Gomega , after * OpenStackMachine ) {
215217 g .Expect (after .Spec .InstanceID ).To (gomega .Equal (pointer .String ("new-instance-id" )))
216218 },
217- expectNetworkDiff : false ,
219+ expectIdentityRefDiff : false ,
218220 },
219221 {
220222 name : "Set ProviderID and non-ignored change" ,
221223 modifyUp : func (up * infrav1.OpenStackMachine ) {
222224 up .Spec .ProviderID = pointer .String ("new-provider-id" )
223225 up .Spec .Flavor = "new-flavor"
224226 },
225- testAfter : func (after * OpenStackMachine ) {
227+ testAfter : func (g gomega. Gomega , after * OpenStackMachine ) {
226228 g .Expect (after .Spec .ProviderID ).To (gomega .Equal (pointer .String ("new-provider-id" )))
227229 g .Expect (after .Spec .Flavor ).To (gomega .Equal ("new-flavor" ))
228230 },
229- expectNetworkDiff : true ,
231+ expectIdentityRefDiff : true ,
230232 },
231233 }
232234
233235 for _ , tt := range tests {
234236 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+
235242 before := testMachine ()
236243
237244 up := infrav1.OpenStackMachine {}
@@ -245,7 +252,14 @@ func TestMachineConversionControllerSpecFields(t *testing.T) {
245252 g .Expect (after .ConvertFrom (& up )).To (gomega .Succeed ())
246253
247254 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" ))
249263 }
250264 })
251265 }
0 commit comments