@@ -3643,3 +3643,58 @@ func Test_GetRepositoryLock(t *testing.T) {
36433643 require .NotNil (t , state .repositoryLocks [repo2 ])
36443644 require .Equal (t , lock3 , state .repositoryLocks [repo2 ])
36453645}
3646+
3647+ func Test_mergeKustomizeOverride (t * testing.T ) {
3648+ tests := []struct {
3649+ name string
3650+ existing v1alpha1.KustomizeImages
3651+ new v1alpha1.KustomizeImages
3652+ expected v1alpha1.KustomizeImages
3653+ }{
3654+ {"with-tag" , []v1alpha1.KustomizeImage {"nginx:foo" },
3655+ []v1alpha1.KustomizeImage {"nginx:foo" },
3656+ []v1alpha1.KustomizeImage {"nginx:foo" }},
3657+ {"with-tag-1" , []v1alpha1.KustomizeImage {"nginx" },
3658+ []v1alpha1.KustomizeImage {"nginx:latest" },
3659+ []v1alpha1.KustomizeImage {"nginx:latest" }},
3660+ {"with-tag-sha" , []v1alpha1.KustomizeImage {"nginx:latest" },
3661+ []v1alpha1.KustomizeImage {"nginx:latest@sha256:91734281c0ebfc6f1aea979cffeed5079cfe786228a71cc6f1f46a228cde6e34" },
3662+ []v1alpha1.KustomizeImage {"nginx:latest@sha256:91734281c0ebfc6f1aea979cffeed5079cfe786228a71cc6f1f46a228cde6e34" }},
3663+
3664+ {"2-images" , []v1alpha1.KustomizeImage {"nginx:latest" ,
3665+ "bitnami/nginx:latest@sha256:1a2fe3f9f6d1d38d5a7ee35af732fdb7d15266ec3dbc79bbc0355742cd24d3ec" },
3666+ []v1alpha1.KustomizeImage {"nginx:latest@sha256:91734281c0ebfc6f1aea979cffeed5079cfe786228a71cc6f1f46a228cde6e34" ,
3667+ "bitnami/nginx@sha256:1a2fe3f9f6d1d38d5a7ee35af732fdb7d15266ec3dbc79bbc0355742cd24d3ec" },
3668+ []v1alpha1.KustomizeImage {"nginx:latest@sha256:91734281c0ebfc6f1aea979cffeed5079cfe786228a71cc6f1f46a228cde6e34" ,
3669+ "bitnami/nginx:latest@sha256:1a2fe3f9f6d1d38d5a7ee35af732fdb7d15266ec3dbc79bbc0355742cd24d3ec" }},
3670+
3671+ {"with-registry" , []v1alpha1.KustomizeImage {"quay.io/nginx:latest" },
3672+ []v1alpha1.KustomizeImage {"quay.io/nginx:latest" },
3673+ []v1alpha1.KustomizeImage {"quay.io/nginx:latest" }},
3674+ {"with-registry-1" , []v1alpha1.KustomizeImage {"quay.io/nginx:latest" },
3675+ []v1alpha1.KustomizeImage {"docker.io/nginx:latest" },
3676+ []v1alpha1.KustomizeImage {"docker.io/nginx:latest" , "quay.io/nginx:latest" }},
3677+ }
3678+ for _ , tt := range tests {
3679+ t .Run (tt .name , func (t * testing.T ) {
3680+ existingImages := kustomizeOverride {
3681+ Kustomize : kustomizeImages {
3682+ Images : & tt .existing ,
3683+ },
3684+ }
3685+ newImages := kustomizeOverride {
3686+ Kustomize : kustomizeImages {
3687+ Images : & tt .new ,
3688+ },
3689+ }
3690+ expectedImages := kustomizeOverride {
3691+ Kustomize : kustomizeImages {
3692+ Images : & tt .expected ,
3693+ },
3694+ }
3695+
3696+ mergeKustomizeOverride (& existingImages , & newImages )
3697+ assert .ElementsMatch (t , * expectedImages .Kustomize .Images , * existingImages .Kustomize .Images )
3698+ })
3699+ }
3700+ }
0 commit comments