@@ -192,4 +192,56 @@ var _ = Describe("Users", func() {
192192 Expect (generatedSecret .Data ).To (HaveKeyWithValue ("password" , []uint8 ("-grace.hopper_9453$" )))
193193 })
194194 })
195+ When ("providing a pre-defined username but autogenerated password" , func () {
196+ var credentialSecret corev1.Secret
197+ BeforeEach (func () {
198+ credentialSecret = corev1.Secret {
199+ ObjectMeta : metav1.ObjectMeta {
200+ Name : "credential-list-secret" ,
201+ Namespace : namespace ,
202+ },
203+ Type : corev1 .SecretTypeOpaque ,
204+ Data : map [string ][]byte {
205+ "some.irrelevant.key" : []byte ("some-useless-value" ),
206+ "username" : []byte ("`got*special_ch$racter5" ),
207+ },
208+ }
209+ Expect (k8sClient .Create (ctx , & credentialSecret , & client.CreateOptions {})).To (Succeed ())
210+ user = & topology.User {
211+ ObjectMeta : metav1.ObjectMeta {
212+ Name : "user-2" ,
213+ Namespace : namespace ,
214+ },
215+ Spec : topology.UserSpec {
216+ RabbitmqClusterReference : topology.RabbitmqClusterReference {
217+ Name : rmq .Name ,
218+ },
219+ ImportCredentialsSecret : & corev1.LocalObjectReference {
220+ Name : credentialSecret .Name ,
221+ },
222+ },
223+ }
224+ })
225+ AfterEach (func () {
226+ Expect (k8sClient .Delete (context .Background (), & credentialSecret )).ToNot (HaveOccurred ())
227+ Expect (k8sClient .Delete (context .Background (), user )).To (Succeed ())
228+ })
229+
230+ It ("sets the value of the Secret according to the provided user" , func () {
231+ By ("declaring user" )
232+ Expect (k8sClient .Create (ctx , user , & client.CreateOptions {})).To (Succeed ())
233+
234+ By ("Creating a new Secret with the provided credentials secret" )
235+ generatedSecretKey := types.NamespacedName {
236+ Name : "user-2-user-credentials" ,
237+ Namespace : namespace ,
238+ }
239+ var generatedSecret = & corev1.Secret {}
240+ Eventually (func () error {
241+ return k8sClient .Get (ctx , generatedSecretKey , generatedSecret )
242+ }, 30 , 2 ).Should (Succeed ())
243+ Expect (generatedSecret .Data ).To (HaveKeyWithValue ("username" , []uint8 ("`got*special_ch$racter5" )))
244+ Expect (generatedSecret .Data ).To (HaveKey ("password" ))
245+ })
246+ })
195247})
0 commit comments