@@ -214,20 +214,49 @@ func Test_ResolveReferencesForField_SingleReference(t *testing.T) {
214
214
` if ko.Spec.APIRef != nil && ko.Spec.APIRef.From != nil {
215
215
arr := ko.Spec.APIRef.From
216
216
if arr == nil || arr.Name == nil || *arr.Name == "" {
217
- return fmt.Errorf("provided resource reference is nil or empty: \" APIRef"\ ")
217
+ return fmt.Errorf("provided resource reference is nil or empty: APIRef")
218
218
}
219
219
obj := &svcapitypes.API{}
220
220
if err := getReferencedResourceState_API(ctx, apiReader, obj, *arr.Name, namespace); err != nil {
221
221
return err
222
222
}
223
- ko.Spec.APIID = obj.Status.APIID
223
+ ko.Spec.APIID = (*string)( obj.Status.APIID)
224
224
}
225
225
`
226
226
227
227
field := crd .Fields ["APIID" ]
228
228
assert .Equal (expected , code .ResolveReferencesForField (field , "ko" , 1 ))
229
229
}
230
230
231
+ func Test_ResolveReferencesForField_ReferencingARN (t * testing.T ) {
232
+ assert := assert .New (t )
233
+ require := require .New (t )
234
+
235
+ g := testutil .NewModelForServiceWithOptions (t , "iam" ,
236
+ & testutil.TestingModelOptions {
237
+ GeneratorConfigFile : "generator.yaml" ,
238
+ })
239
+
240
+ crd := testutil .GetCRDByName (t , g , "User" )
241
+ require .NotNil (crd )
242
+ expected :=
243
+ ` if ko.Spec.PermissionsBoundaryRef != nil && ko.Spec.PermissionsBoundaryRef.From != nil {
244
+ arr := ko.Spec.PermissionsBoundaryRef.From
245
+ if arr == nil || arr.Name == nil || *arr.Name == "" {
246
+ return fmt.Errorf("provided resource reference is nil or empty: PermissionsBoundaryRef")
247
+ }
248
+ obj := &svcapitypes.Policy{}
249
+ if err := getReferencedResourceState_Policy(ctx, apiReader, obj, *arr.Name, namespace); err != nil {
250
+ return err
251
+ }
252
+ ko.Spec.PermissionsBoundary = (*string)(obj.Status.ACKResourceMetadata.ARN)
253
+ }
254
+ `
255
+
256
+ field := crd .Fields ["PermissionsBoundary" ]
257
+ assert .Equal (expected , code .ResolveReferencesForField (field , "ko" , 1 ))
258
+ }
259
+
231
260
func Test_ResolveReferencesForField_SliceOfReferences (t * testing.T ) {
232
261
assert := assert .New (t )
233
262
require := require .New (t )
@@ -241,10 +270,10 @@ func Test_ResolveReferencesForField_SliceOfReferences(t *testing.T) {
241
270
require .NotNil (crd )
242
271
expected :=
243
272
` ko.Spec.SecurityGroupIDs = []*string{}
244
- for _, iter0 := range ko.Spec.SecurityGroupIDs {
273
+ for _, iter0 := range ko.Spec.SecurityGroupRefs {
245
274
arr := iter0.From
246
275
if arr == nil || arr.Name == nil || *arr.Name == "" {
247
- return fmt.Errorf("provided resource reference is nil or empty: \" SecurityGroupRefs"\ ")
276
+ return fmt.Errorf("provided resource reference is nil or empty: SecurityGroupRefs")
248
277
}
249
278
if err := getReferencedResourceState_SecurityGroup(ctx, apiReader, obj, *arr.Name, namespace); err != nil {
250
279
return err
@@ -273,13 +302,13 @@ func Test_ResolveReferencesForField_NestedSingleReference(t *testing.T) {
273
302
if ko.Spec.JWTConfiguration.IssuerRef != nil && ko.Spec.JWTConfiguration.IssuerRef.From != nil {
274
303
arr := ko.Spec.JWTConfiguration.IssuerRef.From
275
304
if arr == nil || arr.Name == nil || *arr.Name == "" {
276
- return fmt.Errorf("provided resource reference is nil or empty: \" JWTConfiguration.IssuerRef"\ ")
305
+ return fmt.Errorf("provided resource reference is nil or empty: JWTConfiguration.IssuerRef")
277
306
}
278
307
obj := &svcapitypes.API{}
279
308
if err := getReferencedResourceState_API(ctx, apiReader, obj, *arr.Name, namespace); err != nil {
280
309
return err
281
310
}
282
- ko.Spec.JWTConfiguration.Issuer = obj.Status.APIID
311
+ ko.Spec.JWTConfiguration.Issuer = (*string)( obj.Status.APIID)
283
312
}
284
313
}
285
314
`
@@ -307,13 +336,13 @@ func Test_ResolveReferencesForField_SingleReference_DeeplyNested(t *testing.T) {
307
336
if ko.Spec.Logging.LoggingEnabled.TargetBucketRef != nil && ko.Spec.Logging.LoggingEnabled.TargetBucketRef.From != nil {
308
337
arr := ko.Spec.Logging.LoggingEnabled.TargetBucketRef.From
309
338
if arr == nil || arr.Name == nil || *arr.Name == "" {
310
- return fmt.Errorf("provided resource reference is nil or empty: \" Logging.LoggingEnabled.TargetBucketRef"\ ")
339
+ return fmt.Errorf("provided resource reference is nil or empty: Logging.LoggingEnabled.TargetBucketRef")
311
340
}
312
341
obj := &svcapitypes.Bucket{}
313
342
if err := getReferencedResourceState_Bucket(ctx, apiReader, obj, *arr.Name, namespace); err != nil {
314
343
return err
315
344
}
316
- ko.Spec.Logging.LoggingEnabled.TargetBucket = obj.Spec.Name
345
+ ko.Spec.Logging.LoggingEnabled.TargetBucket = (*string)( obj.Spec.Name)
317
346
}
318
347
}
319
348
}
0 commit comments