@@ -8,13 +8,15 @@ import (
88 "github.com/stretchr/testify/assert"
99 "github.com/stretchr/testify/require"
1010 corev1 "k8s.io/api/core/v1"
11+ metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
1112 "k8s.io/apimachinery/pkg/runtime"
1213 "k8s.io/apimachinery/pkg/types"
1314 "k8s.io/client-go/rest"
1415 "sigs.k8s.io/controller-runtime/pkg/client"
1516 "sigs.k8s.io/controller-runtime/pkg/client/fake"
1617
1718 svcv1alpha1 "github.com/akuity/kargo/api/service/v1alpha1"
19+ kargoapi "github.com/akuity/kargo/api/v1alpha1"
1820 "github.com/akuity/kargo/pkg/server/config"
1921 "github.com/akuity/kargo/pkg/server/kubernetes"
2022)
@@ -77,6 +79,7 @@ func TestCreateClusterSecret(t *testing.T) {
7779 secret := resp .Msg .GetSecret ()
7880 assert .Equal (t , "kargo-cluster-secrts" , secret .Namespace )
7981 assert .Equal (t , "secret-1" , secret .Name )
82+ assert .Equal (t , kargoapi .LabelValueCredentialTypeGeneric , secret .Labels [kargoapi .LabelKeyCredentialType ])
8083 assert .Equal (t , redacted , secret .StringData ["foo" ])
8184 assert .Equal (t , redacted , secret .StringData ["baz" ])
8285
@@ -94,6 +97,11 @@ func TestCreateClusterSecret(t *testing.T) {
9497 data := k8sSecret .Data
9598 assert .Equal (t , "bar" , string (data ["foo" ]))
9699 assert .Equal (t , "bax" , string (data ["baz" ]))
100+ assert .Equal (
101+ t ,
102+ kargoapi .LabelValueCredentialTypeGeneric ,
103+ k8sSecret .Labels [kargoapi .LabelKeyCredentialType ],
104+ )
97105}
98106
99107func TestValidateSecrets (t * testing.T ) {
@@ -118,3 +126,43 @@ func TestValidateSecrets(t *testing.T) {
118126 })
119127 require .NoError (t , err )
120128}
129+
130+ func TestEnsureCredentialTypeLabel (t * testing.T ) {
131+ t .Run ("sets label when labels nil" , func (t * testing.T ) {
132+ secret := & corev1.Secret {}
133+ ensureCredentialTypeLabel (secret )
134+ require .Equal (
135+ t ,
136+ kargoapi .LabelValueCredentialTypeGeneric ,
137+ secret .Labels [kargoapi .LabelKeyCredentialType ],
138+ )
139+ })
140+
141+ t .Run ("sets label when label value empty" , func (t * testing.T ) {
142+ secret := & corev1.Secret {
143+ ObjectMeta : metav1.ObjectMeta {
144+ Labels : map [string ]string {
145+ kargoapi .LabelKeyCredentialType : "" ,
146+ },
147+ },
148+ }
149+ ensureCredentialTypeLabel (secret )
150+ require .Equal (
151+ t ,
152+ kargoapi .LabelValueCredentialTypeGeneric ,
153+ secret .Labels [kargoapi .LabelKeyCredentialType ],
154+ )
155+ })
156+
157+ t .Run ("does not overwrite non-empty label" , func (t * testing.T ) {
158+ secret := & corev1.Secret {
159+ ObjectMeta : metav1.ObjectMeta {
160+ Labels : map [string ]string {
161+ kargoapi .LabelKeyCredentialType : "repository" ,
162+ },
163+ },
164+ }
165+ ensureCredentialTypeLabel (secret )
166+ require .Equal (t , "repository" , secret .Labels [kargoapi .LabelKeyCredentialType ])
167+ })
168+ }
0 commit comments