@@ -342,4 +342,49 @@ var _ = Describe("Console controller", func() {
342
342
}, timeout , interval ).Should (BeTrue ())
343
343
})
344
344
})
345
+
346
+ Context ("When enabling multiple Login providers" , func () {
347
+ ctx := context .Background ()
348
+ It ("Should prioritize RedpandaCloud" , func () {
349
+ var (
350
+ rpCloudDomain = "test.auth.vectorized.io"
351
+ rpCloudAudience = "dev.vectorized.io"
352
+ )
353
+
354
+ By ("Updating Console RedpandaCloud Login fields" )
355
+ console := & redpandav1alpha1.Console {}
356
+ Expect (k8sClient .Get (ctx , types.NamespacedName {Namespace : ConsoleNamespace , Name : ConsoleName }, console )).Should (Succeed ())
357
+ console .Spec .Login .RedpandaCloud = & redpandav1alpha1.EnterpriseLoginRedpandaCloud {
358
+ Enabled : true ,
359
+ Domain : rpCloudDomain ,
360
+ Audience : rpCloudAudience ,
361
+ }
362
+ Expect (k8sClient .Update (ctx , console )).Should (Succeed ())
363
+
364
+ By ("Having only RedpandaCloud provider in ConfigMap" )
365
+ createdConfigMaps := & corev1.ConfigMapList {}
366
+ Eventually (func () bool {
367
+ if err := k8sClient .List (ctx , createdConfigMaps , client .MatchingLabels (labels .ForConsole (console )), client .InNamespace (ConsoleNamespace )); err != nil {
368
+ return false
369
+ }
370
+ if len (createdConfigMaps .Items ) != 1 {
371
+ return false
372
+ }
373
+ for _ , cm := range createdConfigMaps .Items {
374
+ cc := & consolepkg.ConsoleConfig {}
375
+ if err := yaml .Unmarshal ([]byte (cm .Data ["config.yaml" ]), cc ); err != nil {
376
+ return false
377
+ }
378
+ if cc .Login .Google != nil {
379
+ return false
380
+ }
381
+ rpCloudConfig := cc .Login .RedpandaCloud
382
+ if ! rpCloudConfig .Enabled || rpCloudConfig .Domain != rpCloudDomain || rpCloudConfig .Audience != rpCloudAudience {
383
+ return false
384
+ }
385
+ }
386
+ return true
387
+ }, timeout , interval ).Should (BeTrue ())
388
+ })
389
+ })
345
390
})
0 commit comments