diff --git a/tests/e2e/test_rosacli_ingress.go b/tests/e2e/test_rosacli_ingress.go index ea33edd662..3a50ad7df4 100644 --- a/tests/e2e/test_rosacli_ingress.go +++ b/tests/e2e/test_rosacli_ingress.go @@ -9,6 +9,7 @@ import ( "github.com/openshift/rosa/tests/ci/labels" "github.com/openshift/rosa/tests/utils/common" + "github.com/openshift/rosa/tests/utils/config" "github.com/openshift/rosa/tests/utils/exec/rosacli" ph "github.com/openshift/rosa/tests/utils/profilehandler" @@ -403,4 +404,65 @@ var _ = Describe("Edit default ingress", Expect(expectLabel).To(BeElementOf(ingressRouteSelectors)) } }) + It("can update ingress components (oauth, downloads, console) - [id:72868]", + labels.Medium, + labels.Runtime.Day2, + func() { + + By("Record ingress default value") + output, err := rosaClient.Ingress.ListIngress(clusterID) + Expect(err).ToNot(HaveOccurred()) + ingressList, err := rosaClient.Ingress.ReflectIngressList(output) + Expect(err).ToNot(HaveOccurred()) + defaultIngress := ingressList.Ingresses[0] + + By("Check edit ingress help message") + output, err = rosaClient.Ingress.EditIngress(clusterID, "-h") + Expect(err).ToNot(HaveOccurred()) + Expect(output.String()).Should(ContainSubstring("--component-routes")) + + By("Edit ingress with --component-routes") + componentRoutes := "oauth: hostname=oauth.hostname.com;tlsSecretRef=oauth-secret,downloads: hostname=downloads.hostname.com;tlsSecretRef=downloads-secret,console: hostname=console.hostname.com;tlsSecretRef=console-secret" + output, err = rosaClient.Ingress.EditIngress(clusterID, + defaultIngress.ID, + "--component-routes", componentRoutes, + ) + Expect(err).ToNot(HaveOccurred()) + + _, err = rosaClient.Ingress.EditIngress(clusterID, + defaultIngress.ID, + "--component-routes", componentRoutes, + ) + Expect(err).ToNot(HaveOccurred()) + + By("List ingress to check") + output, err = rosaClient.Ingress.ListIngress(clusterID) + Expect(err).ToNot(HaveOccurred()) + + By("Edit ingress with --component-routes with incorrect syntax") + componentRoutes = "oauth: hostname:custom1;tlsSecretRef=custom1,downloads: hostname=custom2;tlsSecretRef=custom2,console: hostname=custom3;tlsSecretRef=custom3" + output, err = rosaClient.Ingress.EditIngress(clusterID, + defaultIngress.ID, + "--component-routes", componentRoutes, + ) + Expect(err).To(HaveOccurred()) + Expect(output.String()).Should(ContainSubstring("An error occurred whilst parsing the supplied component routes: only the name of the component should be followed by ':'")) + + By("List ingress to check") + output, err = rosaClient.Ingress.ListIngress(clusterID) + Expect(err).ToNot(HaveOccurred()) + + By("Edit ingress with --component-routes with incorrect number of components") + componentRoutes = "oauth: hostname=custom1;tlsSecretRef=custom1" + output, err = rosaClient.Ingress.EditIngress(clusterID, + defaultIngress.ID, + "--component-routes", componentRoutes, + ) + Expect(err).To(HaveOccurred()) + Expect(output.String()).Should(ContainSubstring("An error occurred whilst parsing the supplied component routes: the expected amount of component routes is 3, but 1 have been supplied")) + + By("List ingress to check") + _, err = rosaClient.Ingress.ListIngress(clusterID) + Expect(err).ToNot(HaveOccurred()) + }) }) diff --git a/tests/utils/exec/rosacli/ingress_service.go b/tests/utils/exec/rosacli/ingress_service.go index d6687a7f49..e14d3fd1b9 100644 --- a/tests/utils/exec/rosacli/ingress_service.go +++ b/tests/utils/exec/rosacli/ingress_service.go @@ -64,6 +64,7 @@ type Ingress struct { ExcludeNamespace string `yaml:"Exclude Namespce,omitempty" json:"EXCLUDED NAMESPACE,omitempty"` WildcardPolicy string `yaml:"Wildcard Policy,omitempty" json:"WILDCARD POLICY,omitempty"` NamespaceOwnershipPolicy string `yaml:"Namespace Ownership Policy,omitempty" json:"NAMESPACE OWNERSHIP,omitempty"` + ComponentRoutes string `yaml:"Component Routes,omitempty" json:"COMPONENT ROUTES,omitempty"` } // Get specified ingress by ingress id