@@ -1060,5 +1060,79 @@ class MainIntegrationTest : IntegrationTestBase() {
10601060 job.cancel()
10611061 }
10621062
1063+ @Test
1064+ fun `test additional fqns` () =
1065+ setup(Mode .NAMESPACED ) { namespace, shinyProxyClient, namespacedClient, _, operator , reconcileListener, _ ->
1066+ // 1. create a SP instance
1067+ val spTestInstance = ShinyProxyTestInstance (
1068+ namespace,
1069+ namespacedClient,
1070+ shinyProxyClient,
1071+ " additional_fqdns.yaml" ,
1072+ reconcileListener
1073+ )
1074+ spTestInstance.create()
1075+
1076+ val (resourceRetriever, shinyProxyLister) = operator .prepare()
1077+ // 2. start the operator and let it do it's work
1078+ val job = GlobalScope .launch {
1079+ operator .run (resourceRetriever, shinyProxyLister)
1080+ }
1081+
1082+ // 3. wait until instance is created
1083+ spTestInstance.waitForOneReconcile()
1084+
1085+ // 4. assert correctness
1086+ val sp = spTestInstance.retrieveInstance()
1087+ assertNotNull(sp)
1088+ val instance = sp.status.instances[0 ]
1089+ assertNotNull(instance)
1090+ assertTrue(instance.isLatestInstance)
1091+
1092+ // check configmap
1093+ spTestInstance.assertConfigMapIsCorrect(sp)
1094+
1095+ // check replicaset
1096+ spTestInstance.assertReplicaSetIsCorrect(sp)
1097+
1098+ // check service
1099+ spTestInstance.assertServiceIsCorrect(spTestInstance.retrieveInstance())
1100+
1101+ // check ingress
1102+ val allIngresses = namespacedClient.network().v1().ingresses().list().items
1103+ assertEquals(1 , allIngresses.size)
1104+ val ingress = allIngresses.firstOrNull { it.metadata.name == " sp-${sp.metadata.name} -ing" .take(63 ) }
1105+ assertNotNull(ingress)
1106+
1107+ assertEquals(mapOf (
1108+ LabelFactory .APP_LABEL to LabelFactory .APP_LABEL_VALUE ,
1109+ LabelFactory .REALM_ID_LABEL to sp.realmId,
1110+ LabelFactory .LATEST_INSTANCE_LABEL to sp.status.latestInstance()!! .hashOfSpec
1111+ ), ingress.metadata.labels)
1112+
1113+ assertEquals(2 , ingress.spec.rules.size)
1114+ val rule1 = ingress.spec.rules[0 ]
1115+ assertNotNull(rule1)
1116+ assertEquals(sp.fqdn, rule1.host)
1117+ assertEquals(1 , rule1.http.paths.size)
1118+ val path1 = rule1.http.paths[0 ]
1119+ assertNotNull(path1)
1120+ assertEquals(sp.subPath, path1.path)
1121+ assertEquals(" sp-${sp.metadata.name} -svc" .take(63 ), path1.backend.service.name)
1122+ assertEquals(80 , path1.backend.service.port.number)
1123+
1124+ val rule2 = ingress.spec.rules[1 ]
1125+ assertNotNull(rule2)
1126+ assertEquals(sp.additionalFqdns[0 ], rule2.host)
1127+ assertEquals(1 , rule2.http.paths.size)
1128+ val path2 = rule2.http.paths[0 ]
1129+ assertNotNull(path2)
1130+ assertEquals(sp.subPath, path2.path)
1131+ assertEquals(" sp-${sp.metadata.name} -svc" .take(63 ), path2.backend.service.name)
1132+ assertEquals(80 , path2.backend.service.port.number)
1133+
1134+ job.cancel()
1135+ }
1136+
10631137
10641138}
0 commit comments