From 18a0a85b6d2b3fbe4a659445629acc9549898e4d Mon Sep 17 00:00:00 2001 From: teknaS47 Date: Fri, 13 Dec 2024 23:29:10 +0530 Subject: [PATCH 01/33] [Test automation] Verify Topology is a supported plugin and E2E scenario follow-up --- .../topology_test/topology-test.yaml | 88 +++++++++++++++++++ .ibm/pipelines/utils.sh | 3 + .../e2e/plugins/topology/topology.spec.ts | 41 ++++++--- e2e-tests/playwright/utils/ui-helper.ts | 36 ++++++-- 4 files changed, 153 insertions(+), 15 deletions(-) create mode 100644 .ibm/pipelines/resources/topology_test/topology-test.yaml diff --git a/.ibm/pipelines/resources/topology_test/topology-test.yaml b/.ibm/pipelines/resources/topology_test/topology-test.yaml new file mode 100644 index 0000000000..cab688c2ac --- /dev/null +++ b/.ibm/pipelines/resources/topology_test/topology-test.yaml @@ -0,0 +1,88 @@ +--- +apiVersion: tekton.dev/v1beta1 +kind: Pipeline +metadata: + name: topology-test + namespace: rhdh + labels: + app.kubernetes.io/instance: topology-test + app.kubernetes.io/name: topology-test + backstage.io/kubernetes-id: developer-hub +spec: + tasks: + - name: deploy + taskRef: + kind: ClusterTask + name: openshift-client +--- +apiVersion: tekton.dev/v1beta1 +kind: PipelineRun +metadata: + name: topology-test-run + namespace: rhdh + labels: + app: topology-test + backstage.io/kubernetes-id: developer-hub +spec: + pipelineRef: + name: topology-test +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: topology-test + namespace: rhdh + labels: + app.kubernetes.io/instance: topology-test + app.kubernetes.io/name: topology-test + backstage.io/kubernetes-id: developer-hub + annotations: + app.openshift.io/vcs-uri: "https://github.com/janus-idp/backstage-showcase" +spec: + replicas: 1 + selector: + matchLabels: + app: topology-test + template: + metadata: + labels: + app: topology-test + backstage.io/kubernetes-id: developer-hub + spec: + containers: + - name: topology + image: nginxinc/nginx-unprivileged:stable-alpine + ports: + - containerPort: 8080 +--- +apiVersion: v1 +kind: Service +metadata: + name: topology-test-service + namespace: rhdh + labels: + app: topology-test + backstage.io/kubernetes-id: developer-hub +spec: + selector: + app: topology-test + ports: + - protocol: TCP + port: 8080 + targetPort: 8080 +--- +apiVersion: route.openshift.io/v1 +kind: Route +metadata: + name: topology-test-route + namespace: rhdh + labels: + app: topology-test + backstage.io/kubernetes-id: developer-hub +spec: + to: + kind: Service + name: topology-test-service + port: + targetPort: 8080 + wildcardPolicy: None \ No newline at end of file diff --git a/.ibm/pipelines/utils.sh b/.ibm/pipelines/utils.sh index cae0016cc9..7fc47c8fdd 100755 --- a/.ibm/pipelines/utils.sh +++ b/.ibm/pipelines/utils.sh @@ -449,6 +449,9 @@ apply_yaml_files() { oc apply -f "$dir/resources/pipeline-run/hello-world-pipeline.yaml" oc apply -f "$dir/resources/pipeline-run/hello-world-pipeline-run.yaml" + # Create Deployment and Pipeline for Topology test. + oc apply -f "$dir/resources/topology_test/topology-test.yaml" + } deploy_test_backstage_provider() { diff --git a/e2e-tests/playwright/e2e/plugins/topology/topology.spec.ts b/e2e-tests/playwright/e2e/plugins/topology/topology.spec.ts index b29ffd22ff..57b301a7b0 100644 --- a/e2e-tests/playwright/e2e/plugins/topology/topology.spec.ts +++ b/e2e-tests/playwright/e2e/plugins/topology/topology.spec.ts @@ -3,8 +3,7 @@ import { Common } from "../../../utils/common"; import { UIhelper } from "../../../utils/ui-helper"; import { Catalog } from "../../../support/pages/catalog"; -// Test disabled due to comments in JIRA ticket RHIDP-3437 -test.describe.skip("Test Topology Plugin", () => { +test.describe("Test Topology Plugin", () => { let common: Common; let uiHelper: UIhelper; let catalog: Catalog; @@ -17,18 +16,17 @@ test.describe.skip("Test Topology Plugin", () => { }); test("Verify pods visibility in the Topology tab", async ({ page }) => { - test.setTimeout(40000); await catalog.goToBackstageJanusProject(); await uiHelper.clickTab("Topology"); await uiHelper.verifyText("backstage-janus"); await page.getByRole("button", { name: "Fit to Screen" }).click(); await uiHelper.verifyText("rhdh"); await uiHelper.verifyText("rhdh-rbac"); - await uiHelper.verifyButtonURL( - "Open URL", - "https://rhdh-backstage-showcase", - ); - await page.locator("image").first().click(); + await uiHelper.verifyText("topology-test"); + await uiHelper.verifyButtonURL("Open URL", "topology-test-route", { + locator: `[data-test-id="topology-test"]`, + }); + await page.locator("[data-test-id=topology-test] image").first().click(); await page.getByLabel("Pod").click(); await page.getByLabel("Pod").getByText("1", { exact: true }).click(); await uiHelper.clickTab("Details"); @@ -39,7 +37,7 @@ test.describe.skip("Test Topology Plugin", () => { await uiHelper.verifyHeading("Services"); await uiHelper.verifyHeading("Routes"); await expect( - page.getByRole("link", { name: "https://rhdh-backstage-" }), + page.getByRole("link", { name: "topology-test-route" }), ).toBeVisible(); await expect(page.getByTitle("Deployment")).toBeVisible(); await uiHelper.verifyText("S"); @@ -51,6 +49,29 @@ test.describe.skip("Test Topology Plugin", () => { await page.getByLabel("Pod count").click(); await uiHelper.verifyText("1"); await uiHelper.verifyText("Pod"); - await page.getByLabel("Pod count").click(); + await uiHelper.hoverOnPodStatusIndicator(); + await uiHelper.verifyTextInTooltip("Running"); + await uiHelper.verifyText("1Running"); + await uiHelper.verifyButtonURL( + "Edit source code", + "https://github.com/janus-idp/backstage-showcase", + ); + await uiHelper.clickTab("Resources"); + await uiHelper.verifyText("P"); + expect(await page.getByTestId("icon-with-title-Running")).toBeVisible(); + expect( + await page.getByTestId("icon-with-title-Running").locator("svg"), + ).toBeVisible(); + expect( + await page + .getByTestId("icon-with-title-Running") + .getByTestId("status-text"), + ).toHaveText("Running"); + await uiHelper.verifyHeading("PipelineRuns"); + await uiHelper.verifyText("PL"); + await uiHelper.verifyText("PLR"); + await page.getByTestId("icon-only-Succeeded").hover(); + await uiHelper.verifyDivHasText("Pipeline SucceededTask"); + await uiHelper.verifyText("1 Succeeded"); }); }); diff --git a/e2e-tests/playwright/utils/ui-helper.ts b/e2e-tests/playwright/utils/ui-helper.ts index 9d2f5167f2..958f8779a4 100644 --- a/e2e-tests/playwright/utils/ui-helper.ts +++ b/e2e-tests/playwright/utils/ui-helper.ts @@ -298,13 +298,27 @@ export class UIhelper { }); } - async verifyButtonURL(label: string | RegExp, url: string | RegExp) { - const buttonUrl = await this.page - .getByRole("button", { name: label }) - .first() - .getAttribute("href"); + async verifyButtonURL( + label: string | RegExp, + url: string | RegExp, + options: { locator?: string } = { + locator: "", + }, + ) { + const buttonUrl = + options.locator == "" + ? await this.page + .getByRole("button", { name: label }) + .first() + .getAttribute("href") + : await this.page + .locator(options.locator) + .getByRole("button", { name: label }) + .first() + .getAttribute("href"); expect(buttonUrl).toContain(url); } + // locator('[data-test-id="topology-test"]').getByRole('button', { name: 'Open URL' }) /** * Verifies that a table row, identified by unique text, contains specific cell texts. @@ -539,4 +553,16 @@ export class UIhelper { await expect(enabledColumn).toHaveText(expectedEnabled); await expect(preinstalledColumn).toHaveText(expectedPreinstalled); } + + async hoverOnPodStatusIndicator() { + await this.page + .locator('[data-test-id="topology-test"]') + .getByText("Pod") + .hover({}); + } + + async verifyTextInTooltip(text: string | RegExp) { + const tooltip = await this.page.getByRole("tooltip").getByText(text); + expect(tooltip).toBeVisible(); + } } From a759ab890412bdbeb77d39c3d1f964ae2cd28ac4 Mon Sep 17 00:00:00 2001 From: teknaS47 Date: Sun, 15 Dec 2024 18:48:25 +0530 Subject: [PATCH 02/33] Namespace removed --- .ibm/pipelines/resources/topology_test/topology-test.yaml | 5 ----- 1 file changed, 5 deletions(-) diff --git a/.ibm/pipelines/resources/topology_test/topology-test.yaml b/.ibm/pipelines/resources/topology_test/topology-test.yaml index cab688c2ac..d30e9b9f24 100644 --- a/.ibm/pipelines/resources/topology_test/topology-test.yaml +++ b/.ibm/pipelines/resources/topology_test/topology-test.yaml @@ -3,7 +3,6 @@ apiVersion: tekton.dev/v1beta1 kind: Pipeline metadata: name: topology-test - namespace: rhdh labels: app.kubernetes.io/instance: topology-test app.kubernetes.io/name: topology-test @@ -19,7 +18,6 @@ apiVersion: tekton.dev/v1beta1 kind: PipelineRun metadata: name: topology-test-run - namespace: rhdh labels: app: topology-test backstage.io/kubernetes-id: developer-hub @@ -31,7 +29,6 @@ apiVersion: apps/v1 kind: Deployment metadata: name: topology-test - namespace: rhdh labels: app.kubernetes.io/instance: topology-test app.kubernetes.io/name: topology-test @@ -59,7 +56,6 @@ apiVersion: v1 kind: Service metadata: name: topology-test-service - namespace: rhdh labels: app: topology-test backstage.io/kubernetes-id: developer-hub @@ -75,7 +71,6 @@ apiVersion: route.openshift.io/v1 kind: Route metadata: name: topology-test-route - namespace: rhdh labels: app: topology-test backstage.io/kubernetes-id: developer-hub From d8411a2519985e3c00558915b4eb3ee591b01614 Mon Sep 17 00:00:00 2001 From: teknaS47 Date: Fri, 13 Dec 2024 23:29:10 +0530 Subject: [PATCH 03/33] [Test automation] Verify Topology is a supported plugin and E2E scenario follow-up --- .../topology_test/topology-test.yaml | 88 +++++++++++++++++++ .ibm/pipelines/utils.sh | 3 + .../e2e/plugins/topology/topology.spec.ts | 41 ++++++--- e2e-tests/playwright/utils/ui-helper.ts | 36 ++++++-- 4 files changed, 153 insertions(+), 15 deletions(-) create mode 100644 .ibm/pipelines/resources/topology_test/topology-test.yaml diff --git a/.ibm/pipelines/resources/topology_test/topology-test.yaml b/.ibm/pipelines/resources/topology_test/topology-test.yaml new file mode 100644 index 0000000000..cab688c2ac --- /dev/null +++ b/.ibm/pipelines/resources/topology_test/topology-test.yaml @@ -0,0 +1,88 @@ +--- +apiVersion: tekton.dev/v1beta1 +kind: Pipeline +metadata: + name: topology-test + namespace: rhdh + labels: + app.kubernetes.io/instance: topology-test + app.kubernetes.io/name: topology-test + backstage.io/kubernetes-id: developer-hub +spec: + tasks: + - name: deploy + taskRef: + kind: ClusterTask + name: openshift-client +--- +apiVersion: tekton.dev/v1beta1 +kind: PipelineRun +metadata: + name: topology-test-run + namespace: rhdh + labels: + app: topology-test + backstage.io/kubernetes-id: developer-hub +spec: + pipelineRef: + name: topology-test +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: topology-test + namespace: rhdh + labels: + app.kubernetes.io/instance: topology-test + app.kubernetes.io/name: topology-test + backstage.io/kubernetes-id: developer-hub + annotations: + app.openshift.io/vcs-uri: "https://github.com/janus-idp/backstage-showcase" +spec: + replicas: 1 + selector: + matchLabels: + app: topology-test + template: + metadata: + labels: + app: topology-test + backstage.io/kubernetes-id: developer-hub + spec: + containers: + - name: topology + image: nginxinc/nginx-unprivileged:stable-alpine + ports: + - containerPort: 8080 +--- +apiVersion: v1 +kind: Service +metadata: + name: topology-test-service + namespace: rhdh + labels: + app: topology-test + backstage.io/kubernetes-id: developer-hub +spec: + selector: + app: topology-test + ports: + - protocol: TCP + port: 8080 + targetPort: 8080 +--- +apiVersion: route.openshift.io/v1 +kind: Route +metadata: + name: topology-test-route + namespace: rhdh + labels: + app: topology-test + backstage.io/kubernetes-id: developer-hub +spec: + to: + kind: Service + name: topology-test-service + port: + targetPort: 8080 + wildcardPolicy: None \ No newline at end of file diff --git a/.ibm/pipelines/utils.sh b/.ibm/pipelines/utils.sh index 23117fbbe9..4c71aebe03 100755 --- a/.ibm/pipelines/utils.sh +++ b/.ibm/pipelines/utils.sh @@ -449,6 +449,9 @@ apply_yaml_files() { oc apply -f "$dir/resources/pipeline-run/hello-world-pipeline.yaml" oc apply -f "$dir/resources/pipeline-run/hello-world-pipeline-run.yaml" + # Create Deployment and Pipeline for Topology test. + oc apply -f "$dir/resources/topology_test/topology-test.yaml" + } deploy_test_backstage_provider() { diff --git a/e2e-tests/playwright/e2e/plugins/topology/topology.spec.ts b/e2e-tests/playwright/e2e/plugins/topology/topology.spec.ts index b29ffd22ff..57b301a7b0 100644 --- a/e2e-tests/playwright/e2e/plugins/topology/topology.spec.ts +++ b/e2e-tests/playwright/e2e/plugins/topology/topology.spec.ts @@ -3,8 +3,7 @@ import { Common } from "../../../utils/common"; import { UIhelper } from "../../../utils/ui-helper"; import { Catalog } from "../../../support/pages/catalog"; -// Test disabled due to comments in JIRA ticket RHIDP-3437 -test.describe.skip("Test Topology Plugin", () => { +test.describe("Test Topology Plugin", () => { let common: Common; let uiHelper: UIhelper; let catalog: Catalog; @@ -17,18 +16,17 @@ test.describe.skip("Test Topology Plugin", () => { }); test("Verify pods visibility in the Topology tab", async ({ page }) => { - test.setTimeout(40000); await catalog.goToBackstageJanusProject(); await uiHelper.clickTab("Topology"); await uiHelper.verifyText("backstage-janus"); await page.getByRole("button", { name: "Fit to Screen" }).click(); await uiHelper.verifyText("rhdh"); await uiHelper.verifyText("rhdh-rbac"); - await uiHelper.verifyButtonURL( - "Open URL", - "https://rhdh-backstage-showcase", - ); - await page.locator("image").first().click(); + await uiHelper.verifyText("topology-test"); + await uiHelper.verifyButtonURL("Open URL", "topology-test-route", { + locator: `[data-test-id="topology-test"]`, + }); + await page.locator("[data-test-id=topology-test] image").first().click(); await page.getByLabel("Pod").click(); await page.getByLabel("Pod").getByText("1", { exact: true }).click(); await uiHelper.clickTab("Details"); @@ -39,7 +37,7 @@ test.describe.skip("Test Topology Plugin", () => { await uiHelper.verifyHeading("Services"); await uiHelper.verifyHeading("Routes"); await expect( - page.getByRole("link", { name: "https://rhdh-backstage-" }), + page.getByRole("link", { name: "topology-test-route" }), ).toBeVisible(); await expect(page.getByTitle("Deployment")).toBeVisible(); await uiHelper.verifyText("S"); @@ -51,6 +49,29 @@ test.describe.skip("Test Topology Plugin", () => { await page.getByLabel("Pod count").click(); await uiHelper.verifyText("1"); await uiHelper.verifyText("Pod"); - await page.getByLabel("Pod count").click(); + await uiHelper.hoverOnPodStatusIndicator(); + await uiHelper.verifyTextInTooltip("Running"); + await uiHelper.verifyText("1Running"); + await uiHelper.verifyButtonURL( + "Edit source code", + "https://github.com/janus-idp/backstage-showcase", + ); + await uiHelper.clickTab("Resources"); + await uiHelper.verifyText("P"); + expect(await page.getByTestId("icon-with-title-Running")).toBeVisible(); + expect( + await page.getByTestId("icon-with-title-Running").locator("svg"), + ).toBeVisible(); + expect( + await page + .getByTestId("icon-with-title-Running") + .getByTestId("status-text"), + ).toHaveText("Running"); + await uiHelper.verifyHeading("PipelineRuns"); + await uiHelper.verifyText("PL"); + await uiHelper.verifyText("PLR"); + await page.getByTestId("icon-only-Succeeded").hover(); + await uiHelper.verifyDivHasText("Pipeline SucceededTask"); + await uiHelper.verifyText("1 Succeeded"); }); }); diff --git a/e2e-tests/playwright/utils/ui-helper.ts b/e2e-tests/playwright/utils/ui-helper.ts index 9d2f5167f2..958f8779a4 100644 --- a/e2e-tests/playwright/utils/ui-helper.ts +++ b/e2e-tests/playwright/utils/ui-helper.ts @@ -298,13 +298,27 @@ export class UIhelper { }); } - async verifyButtonURL(label: string | RegExp, url: string | RegExp) { - const buttonUrl = await this.page - .getByRole("button", { name: label }) - .first() - .getAttribute("href"); + async verifyButtonURL( + label: string | RegExp, + url: string | RegExp, + options: { locator?: string } = { + locator: "", + }, + ) { + const buttonUrl = + options.locator == "" + ? await this.page + .getByRole("button", { name: label }) + .first() + .getAttribute("href") + : await this.page + .locator(options.locator) + .getByRole("button", { name: label }) + .first() + .getAttribute("href"); expect(buttonUrl).toContain(url); } + // locator('[data-test-id="topology-test"]').getByRole('button', { name: 'Open URL' }) /** * Verifies that a table row, identified by unique text, contains specific cell texts. @@ -539,4 +553,16 @@ export class UIhelper { await expect(enabledColumn).toHaveText(expectedEnabled); await expect(preinstalledColumn).toHaveText(expectedPreinstalled); } + + async hoverOnPodStatusIndicator() { + await this.page + .locator('[data-test-id="topology-test"]') + .getByText("Pod") + .hover({}); + } + + async verifyTextInTooltip(text: string | RegExp) { + const tooltip = await this.page.getByRole("tooltip").getByText(text); + expect(tooltip).toBeVisible(); + } } From 58906fd5a8d066e014b4ee62f2e42737fd0dd6f8 Mon Sep 17 00:00:00 2001 From: teknaS47 Date: Sun, 15 Dec 2024 18:48:25 +0530 Subject: [PATCH 04/33] Namespace removed --- .ibm/pipelines/resources/topology_test/topology-test.yaml | 5 ----- 1 file changed, 5 deletions(-) diff --git a/.ibm/pipelines/resources/topology_test/topology-test.yaml b/.ibm/pipelines/resources/topology_test/topology-test.yaml index cab688c2ac..d30e9b9f24 100644 --- a/.ibm/pipelines/resources/topology_test/topology-test.yaml +++ b/.ibm/pipelines/resources/topology_test/topology-test.yaml @@ -3,7 +3,6 @@ apiVersion: tekton.dev/v1beta1 kind: Pipeline metadata: name: topology-test - namespace: rhdh labels: app.kubernetes.io/instance: topology-test app.kubernetes.io/name: topology-test @@ -19,7 +18,6 @@ apiVersion: tekton.dev/v1beta1 kind: PipelineRun metadata: name: topology-test-run - namespace: rhdh labels: app: topology-test backstage.io/kubernetes-id: developer-hub @@ -31,7 +29,6 @@ apiVersion: apps/v1 kind: Deployment metadata: name: topology-test - namespace: rhdh labels: app.kubernetes.io/instance: topology-test app.kubernetes.io/name: topology-test @@ -59,7 +56,6 @@ apiVersion: v1 kind: Service metadata: name: topology-test-service - namespace: rhdh labels: app: topology-test backstage.io/kubernetes-id: developer-hub @@ -75,7 +71,6 @@ apiVersion: route.openshift.io/v1 kind: Route metadata: name: topology-test-route - namespace: rhdh labels: app: topology-test backstage.io/kubernetes-id: developer-hub From 2a9bba4559812c0250034fe6370eb126a1a72548 Mon Sep 17 00:00:00 2001 From: teknaS47 Date: Fri, 13 Dec 2024 23:29:10 +0530 Subject: [PATCH 05/33] [Test automation] Verify Topology is a supported plugin and E2E scenario follow-up --- .../topology_test/topology-test.yaml | 88 +++++++++++++++++++ .ibm/pipelines/utils.sh | 3 + .../e2e/plugins/topology/topology.spec.ts | 41 ++++++--- e2e-tests/playwright/utils/ui-helper.ts | 36 ++++++-- 4 files changed, 153 insertions(+), 15 deletions(-) create mode 100644 .ibm/pipelines/resources/topology_test/topology-test.yaml diff --git a/.ibm/pipelines/resources/topology_test/topology-test.yaml b/.ibm/pipelines/resources/topology_test/topology-test.yaml new file mode 100644 index 0000000000..cab688c2ac --- /dev/null +++ b/.ibm/pipelines/resources/topology_test/topology-test.yaml @@ -0,0 +1,88 @@ +--- +apiVersion: tekton.dev/v1beta1 +kind: Pipeline +metadata: + name: topology-test + namespace: rhdh + labels: + app.kubernetes.io/instance: topology-test + app.kubernetes.io/name: topology-test + backstage.io/kubernetes-id: developer-hub +spec: + tasks: + - name: deploy + taskRef: + kind: ClusterTask + name: openshift-client +--- +apiVersion: tekton.dev/v1beta1 +kind: PipelineRun +metadata: + name: topology-test-run + namespace: rhdh + labels: + app: topology-test + backstage.io/kubernetes-id: developer-hub +spec: + pipelineRef: + name: topology-test +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: topology-test + namespace: rhdh + labels: + app.kubernetes.io/instance: topology-test + app.kubernetes.io/name: topology-test + backstage.io/kubernetes-id: developer-hub + annotations: + app.openshift.io/vcs-uri: "https://github.com/janus-idp/backstage-showcase" +spec: + replicas: 1 + selector: + matchLabels: + app: topology-test + template: + metadata: + labels: + app: topology-test + backstage.io/kubernetes-id: developer-hub + spec: + containers: + - name: topology + image: nginxinc/nginx-unprivileged:stable-alpine + ports: + - containerPort: 8080 +--- +apiVersion: v1 +kind: Service +metadata: + name: topology-test-service + namespace: rhdh + labels: + app: topology-test + backstage.io/kubernetes-id: developer-hub +spec: + selector: + app: topology-test + ports: + - protocol: TCP + port: 8080 + targetPort: 8080 +--- +apiVersion: route.openshift.io/v1 +kind: Route +metadata: + name: topology-test-route + namespace: rhdh + labels: + app: topology-test + backstage.io/kubernetes-id: developer-hub +spec: + to: + kind: Service + name: topology-test-service + port: + targetPort: 8080 + wildcardPolicy: None \ No newline at end of file diff --git a/.ibm/pipelines/utils.sh b/.ibm/pipelines/utils.sh index 1d236b4a80..95885c7d70 100755 --- a/.ibm/pipelines/utils.sh +++ b/.ibm/pipelines/utils.sh @@ -450,6 +450,9 @@ apply_yaml_files() { oc apply -f "$dir/resources/pipeline-run/hello-world-pipeline.yaml" oc apply -f "$dir/resources/pipeline-run/hello-world-pipeline-run.yaml" + # Create Deployment and Pipeline for Topology test. + oc apply -f "$dir/resources/topology_test/topology-test.yaml" + } deploy_test_backstage_provider() { diff --git a/e2e-tests/playwright/e2e/plugins/topology/topology.spec.ts b/e2e-tests/playwright/e2e/plugins/topology/topology.spec.ts index b29ffd22ff..57b301a7b0 100644 --- a/e2e-tests/playwright/e2e/plugins/topology/topology.spec.ts +++ b/e2e-tests/playwright/e2e/plugins/topology/topology.spec.ts @@ -3,8 +3,7 @@ import { Common } from "../../../utils/common"; import { UIhelper } from "../../../utils/ui-helper"; import { Catalog } from "../../../support/pages/catalog"; -// Test disabled due to comments in JIRA ticket RHIDP-3437 -test.describe.skip("Test Topology Plugin", () => { +test.describe("Test Topology Plugin", () => { let common: Common; let uiHelper: UIhelper; let catalog: Catalog; @@ -17,18 +16,17 @@ test.describe.skip("Test Topology Plugin", () => { }); test("Verify pods visibility in the Topology tab", async ({ page }) => { - test.setTimeout(40000); await catalog.goToBackstageJanusProject(); await uiHelper.clickTab("Topology"); await uiHelper.verifyText("backstage-janus"); await page.getByRole("button", { name: "Fit to Screen" }).click(); await uiHelper.verifyText("rhdh"); await uiHelper.verifyText("rhdh-rbac"); - await uiHelper.verifyButtonURL( - "Open URL", - "https://rhdh-backstage-showcase", - ); - await page.locator("image").first().click(); + await uiHelper.verifyText("topology-test"); + await uiHelper.verifyButtonURL("Open URL", "topology-test-route", { + locator: `[data-test-id="topology-test"]`, + }); + await page.locator("[data-test-id=topology-test] image").first().click(); await page.getByLabel("Pod").click(); await page.getByLabel("Pod").getByText("1", { exact: true }).click(); await uiHelper.clickTab("Details"); @@ -39,7 +37,7 @@ test.describe.skip("Test Topology Plugin", () => { await uiHelper.verifyHeading("Services"); await uiHelper.verifyHeading("Routes"); await expect( - page.getByRole("link", { name: "https://rhdh-backstage-" }), + page.getByRole("link", { name: "topology-test-route" }), ).toBeVisible(); await expect(page.getByTitle("Deployment")).toBeVisible(); await uiHelper.verifyText("S"); @@ -51,6 +49,29 @@ test.describe.skip("Test Topology Plugin", () => { await page.getByLabel("Pod count").click(); await uiHelper.verifyText("1"); await uiHelper.verifyText("Pod"); - await page.getByLabel("Pod count").click(); + await uiHelper.hoverOnPodStatusIndicator(); + await uiHelper.verifyTextInTooltip("Running"); + await uiHelper.verifyText("1Running"); + await uiHelper.verifyButtonURL( + "Edit source code", + "https://github.com/janus-idp/backstage-showcase", + ); + await uiHelper.clickTab("Resources"); + await uiHelper.verifyText("P"); + expect(await page.getByTestId("icon-with-title-Running")).toBeVisible(); + expect( + await page.getByTestId("icon-with-title-Running").locator("svg"), + ).toBeVisible(); + expect( + await page + .getByTestId("icon-with-title-Running") + .getByTestId("status-text"), + ).toHaveText("Running"); + await uiHelper.verifyHeading("PipelineRuns"); + await uiHelper.verifyText("PL"); + await uiHelper.verifyText("PLR"); + await page.getByTestId("icon-only-Succeeded").hover(); + await uiHelper.verifyDivHasText("Pipeline SucceededTask"); + await uiHelper.verifyText("1 Succeeded"); }); }); diff --git a/e2e-tests/playwright/utils/ui-helper.ts b/e2e-tests/playwright/utils/ui-helper.ts index 9f82004c11..a54f99f354 100644 --- a/e2e-tests/playwright/utils/ui-helper.ts +++ b/e2e-tests/playwright/utils/ui-helper.ts @@ -353,13 +353,27 @@ export class UIhelper { }); } - async verifyButtonURL(label: string | RegExp, url: string | RegExp) { - const buttonUrl = await this.page - .getByRole("button", { name: label }) - .first() - .getAttribute("href"); + async verifyButtonURL( + label: string | RegExp, + url: string | RegExp, + options: { locator?: string } = { + locator: "", + }, + ) { + const buttonUrl = + options.locator == "" + ? await this.page + .getByRole("button", { name: label }) + .first() + .getAttribute("href") + : await this.page + .locator(options.locator) + .getByRole("button", { name: label }) + .first() + .getAttribute("href"); expect(buttonUrl).toContain(url); } + // locator('[data-test-id="topology-test"]').getByRole('button', { name: 'Open URL' }) /** * Verifies that a table row, identified by unique text, contains specific cell texts. @@ -594,4 +608,16 @@ export class UIhelper { await expect(enabledColumn).toHaveText(expectedEnabled); await expect(preinstalledColumn).toHaveText(expectedPreinstalled); } + + async hoverOnPodStatusIndicator() { + await this.page + .locator('[data-test-id="topology-test"]') + .getByText("Pod") + .hover({}); + } + + async verifyTextInTooltip(text: string | RegExp) { + const tooltip = await this.page.getByRole("tooltip").getByText(text); + expect(tooltip).toBeVisible(); + } } From fa269714c22fd9a5637833634a03971fcb01cf65 Mon Sep 17 00:00:00 2001 From: teknaS47 Date: Sun, 15 Dec 2024 18:48:25 +0530 Subject: [PATCH 06/33] Namespace removed --- .ibm/pipelines/resources/topology_test/topology-test.yaml | 5 ----- 1 file changed, 5 deletions(-) diff --git a/.ibm/pipelines/resources/topology_test/topology-test.yaml b/.ibm/pipelines/resources/topology_test/topology-test.yaml index cab688c2ac..d30e9b9f24 100644 --- a/.ibm/pipelines/resources/topology_test/topology-test.yaml +++ b/.ibm/pipelines/resources/topology_test/topology-test.yaml @@ -3,7 +3,6 @@ apiVersion: tekton.dev/v1beta1 kind: Pipeline metadata: name: topology-test - namespace: rhdh labels: app.kubernetes.io/instance: topology-test app.kubernetes.io/name: topology-test @@ -19,7 +18,6 @@ apiVersion: tekton.dev/v1beta1 kind: PipelineRun metadata: name: topology-test-run - namespace: rhdh labels: app: topology-test backstage.io/kubernetes-id: developer-hub @@ -31,7 +29,6 @@ apiVersion: apps/v1 kind: Deployment metadata: name: topology-test - namespace: rhdh labels: app.kubernetes.io/instance: topology-test app.kubernetes.io/name: topology-test @@ -59,7 +56,6 @@ apiVersion: v1 kind: Service metadata: name: topology-test-service - namespace: rhdh labels: app: topology-test backstage.io/kubernetes-id: developer-hub @@ -75,7 +71,6 @@ apiVersion: route.openshift.io/v1 kind: Route metadata: name: topology-test-route - namespace: rhdh labels: app: topology-test backstage.io/kubernetes-id: developer-hub From 7f84c2a108efb5fbe183b7b8ab898387948f69af Mon Sep 17 00:00:00 2001 From: teknaS47 Date: Thu, 16 Jan 2025 11:46:08 +0530 Subject: [PATCH 07/33] Sleep test --- .ibm/pipelines/openshift-ci-tests.sh | 1 + .ibm/pipelines/utils.sh | 19 ++++++++----------- 2 files changed, 9 insertions(+), 11 deletions(-) diff --git a/.ibm/pipelines/openshift-ci-tests.sh b/.ibm/pipelines/openshift-ci-tests.sh index ca8610ccb4..f878db5e29 100755 --- a/.ibm/pipelines/openshift-ci-tests.sh +++ b/.ibm/pipelines/openshift-ci-tests.sh @@ -65,6 +65,7 @@ main() { esac echo "Main script completed with result: ${OVERALL_RESULT}" +sleep 60*60 exit "${OVERALL_RESULT}" } diff --git a/.ibm/pipelines/utils.sh b/.ibm/pipelines/utils.sh index 5a382d96e6..ad8a4951f8 100755 --- a/.ibm/pipelines/utils.sh +++ b/.ibm/pipelines/utils.sh @@ -60,7 +60,7 @@ droute_send() { ARTIFACTS_URL="https://gcsweb-ci.apps.ci.l2s4.p1.openshiftapps.com/gcs/test-platform-results/pr-logs/pull/${REPO_OWNER}_${REPO_NAME}/${PULL_NUMBER}/${JOB_NAME}/${BUILD_ID}/artifacts/e2e-tests/${REPO_OWNER}-${REPO_NAME}/artifacts/${project}" else JOB_URL="${JOB_BASE_URL}/logs/${JOB_NAME}/${BUILD_ID}" - ARTIFACTS_URL="https://gcsweb-ci.apps.ci.l2s4.p1.openshiftapps.com/gcs/test-platform-results/logs/${JOB_NAME}/${BUILD_ID}/artifacts/${JOB_NAME##periodic-ci-redhat-developer-rhdh-main-}/${REPO_OWNER}-${REPO_NAME}/artifacts/${project}" + ARTIFACTS_URL="https://gcsweb-ci.apps.ci.l2s4.p1.openshiftapps.com/gcs/test-platform-results/logs/${JOB_NAME}/${BUILD_ID}/artifacts/${JOB_NAME##periodic-ci-janus-idp-backstage-showcase-main-}/${REPO_OWNER}-${REPO_NAME}/artifacts/${project}" fi # Remove properties (only used for skipped test and invalidates the file if empty) @@ -543,9 +543,6 @@ run_tests() { local project=$2 project=${project} cd "${DIR}/../../e2e-tests" - local e2e_tests_dir - e2e_tests_dir=$(pwd) - yarn install yarn playwright install chromium @@ -564,20 +561,20 @@ run_tests() { mkdir -p "${ARTIFACT_DIR}/${project}/test-results" mkdir -p "${ARTIFACT_DIR}/${project}/attachments/screenshots" - cp -a "${e2e_tests_dir}/test-results/"* "${ARTIFACT_DIR}/${project}/test-results" - cp -a "${e2e_tests_dir}/${JUNIT_RESULTS}" "${ARTIFACT_DIR}/${project}/${JUNIT_RESULTS}" + cp -a /tmp/backstage-showcase/e2e-tests/test-results/* "${ARTIFACT_DIR}/${project}/test-results" + cp -a /tmp/backstage-showcase/e2e-tests/${JUNIT_RESULTS} "${ARTIFACT_DIR}/${project}/${JUNIT_RESULTS}" - if [ -d "${e2e_tests_dir}/screenshots" ]; then - cp -a "${e2e_tests_dir}/screenshots/"* "${ARTIFACT_DIR}/${project}/attachments/screenshots/" + if [ -d "/tmp/backstage-showcase/e2e-tests/screenshots" ]; then + cp -a /tmp/backstage-showcase/e2e-tests/screenshots/* "${ARTIFACT_DIR}/${project}/attachments/screenshots/" fi - if [ -d "${e2e_tests_dir}/auth-providers-logs" ]; then - cp -a "${e2e_tests_dir}/auth-providers-logs/"* "${ARTIFACT_DIR}/${project}/" + if [ -d "/tmp/backstage-showcase/e2e-tests/auth-providers-logs" ]; then + cp -a /tmp/backstage-showcase/e2e-tests/auth-providers-logs/* "${ARTIFACT_DIR}/${project}/" fi ansi2html <"/tmp/${LOGFILE}" >"/tmp/${LOGFILE}.html" cp -a "/tmp/${LOGFILE}.html" "${ARTIFACT_DIR}/${project}" - cp -a "${e2e_tests_dir}/playwright-report/"* "${ARTIFACT_DIR}/${project}" + cp -a /tmp/backstage-showcase/e2e-tests/playwright-report/* "${ARTIFACT_DIR}/${project}" droute_send "${release_name}" "${project}" From 05eadf8a1f9e4307fe000bb825e2ccae9b4b88ff Mon Sep 17 00:00:00 2001 From: teknaS47 Date: Fri, 17 Jan 2025 13:06:25 +0530 Subject: [PATCH 08/33] TLS issue --- .ibm/pipelines/openshift-ci-tests.sh | 1 - .ibm/pipelines/value_files/values_showcase.yaml | 2 ++ 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.ibm/pipelines/openshift-ci-tests.sh b/.ibm/pipelines/openshift-ci-tests.sh index f878db5e29..ca8610ccb4 100755 --- a/.ibm/pipelines/openshift-ci-tests.sh +++ b/.ibm/pipelines/openshift-ci-tests.sh @@ -65,7 +65,6 @@ main() { esac echo "Main script completed with result: ${OVERALL_RESULT}" -sleep 60*60 exit "${OVERALL_RESULT}" } diff --git a/.ibm/pipelines/value_files/values_showcase.yaml b/.ibm/pipelines/value_files/values_showcase.yaml index c07fa4dca0..eb9d45a4a1 100644 --- a/.ibm/pipelines/value_files/values_showcase.yaml +++ b/.ibm/pipelines/value_files/values_showcase.yaml @@ -145,6 +145,8 @@ upstream: value: 'true' - name: NODE_OPTIONS value: '--no-node-snapshot' + - name: NODE_TLS_REJECT_UNAUTHORIZED + value: '0' extraAppConfig: - configMapRef: app-config-rhdh filename: app-config-rhdh.yaml From f4c1164ba4b25480e3cd1072053ee5e0e8dedca5 Mon Sep 17 00:00:00 2001 From: teknaS47 Date: Fri, 17 Jan 2025 14:27:34 +0530 Subject: [PATCH 09/33] pipeline config change --- .../resources/topology_test/topology-test.yaml | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/.ibm/pipelines/resources/topology_test/topology-test.yaml b/.ibm/pipelines/resources/topology_test/topology-test.yaml index d30e9b9f24..95f978c42d 100644 --- a/.ibm/pipelines/resources/topology_test/topology-test.yaml +++ b/.ibm/pipelines/resources/topology_test/topology-test.yaml @@ -10,9 +10,13 @@ metadata: spec: tasks: - name: deploy - taskRef: - kind: ClusterTask - name: openshift-client + taskSpec: + steps: + - name: oc + image: 'quay.io/openshift/origin-cli:latest' + script: | + #!/bin/sh + oc "$@" --- apiVersion: tekton.dev/v1beta1 kind: PipelineRun From bb9e27eca4cb59ccc028a315698431d1e11569e7 Mon Sep 17 00:00:00 2001 From: teknaS47 Date: Fri, 17 Jan 2025 14:47:29 +0530 Subject: [PATCH 10/33] cleanup --- .ibm/pipelines/utils.sh | 16 ++++++++-------- e2e-tests/playwright/utils/ui-helper.ts | 2 +- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/.ibm/pipelines/utils.sh b/.ibm/pipelines/utils.sh index ad8a4951f8..95ae216e14 100755 --- a/.ibm/pipelines/utils.sh +++ b/.ibm/pipelines/utils.sh @@ -60,7 +60,7 @@ droute_send() { ARTIFACTS_URL="https://gcsweb-ci.apps.ci.l2s4.p1.openshiftapps.com/gcs/test-platform-results/pr-logs/pull/${REPO_OWNER}_${REPO_NAME}/${PULL_NUMBER}/${JOB_NAME}/${BUILD_ID}/artifacts/e2e-tests/${REPO_OWNER}-${REPO_NAME}/artifacts/${project}" else JOB_URL="${JOB_BASE_URL}/logs/${JOB_NAME}/${BUILD_ID}" - ARTIFACTS_URL="https://gcsweb-ci.apps.ci.l2s4.p1.openshiftapps.com/gcs/test-platform-results/logs/${JOB_NAME}/${BUILD_ID}/artifacts/${JOB_NAME##periodic-ci-janus-idp-backstage-showcase-main-}/${REPO_OWNER}-${REPO_NAME}/artifacts/${project}" + ARTIFACTS_URL="https://gcsweb-ci.apps.ci.l2s4.p1.openshiftapps.com/gcs/test-platform-results/logs/${JOB_NAME}/${BUILD_ID}/artifacts/${JOB_NAME##periodic-ci-redhat-developer-rhdh-main-}/${REPO_OWNER}-${REPO_NAME}/artifacts/${project}" fi # Remove properties (only used for skipped test and invalidates the file if empty) @@ -561,20 +561,20 @@ run_tests() { mkdir -p "${ARTIFACT_DIR}/${project}/test-results" mkdir -p "${ARTIFACT_DIR}/${project}/attachments/screenshots" - cp -a /tmp/backstage-showcase/e2e-tests/test-results/* "${ARTIFACT_DIR}/${project}/test-results" - cp -a /tmp/backstage-showcase/e2e-tests/${JUNIT_RESULTS} "${ARTIFACT_DIR}/${project}/${JUNIT_RESULTS}" + cp -a "${e2e_tests_dir}/test-results/"* "${ARTIFACT_DIR}/${project}/test-results" + cp -a "${e2e_tests_dir}/${JUNIT_RESULTS}" "${ARTIFACT_DIR}/${project}/${JUNIT_RESULTS}" - if [ -d "/tmp/backstage-showcase/e2e-tests/screenshots" ]; then - cp -a /tmp/backstage-showcase/e2e-tests/screenshots/* "${ARTIFACT_DIR}/${project}/attachments/screenshots/" + if [ -d "${e2e_tests_dir}/screenshots" ]; then + cp -a "${e2e_tests_dir}/screenshots/"* "${ARTIFACT_DIR}/${project}/attachments/screenshots/" fi - if [ -d "/tmp/backstage-showcase/e2e-tests/auth-providers-logs" ]; then - cp -a /tmp/backstage-showcase/e2e-tests/auth-providers-logs/* "${ARTIFACT_DIR}/${project}/" + if [ -d "${e2e_tests_dir}/auth-providers-logs" ]; then + cp -a "${e2e_tests_dir}/auth-providers-logs/"* "${ARTIFACT_DIR}/${project}/" fi ansi2html <"/tmp/${LOGFILE}" >"/tmp/${LOGFILE}.html" cp -a "/tmp/${LOGFILE}.html" "${ARTIFACT_DIR}/${project}" - cp -a /tmp/backstage-showcase/e2e-tests/playwright-report/* "${ARTIFACT_DIR}/${project}" + cp -a "${e2e_tests_dir}/playwright-report/"* "${ARTIFACT_DIR}/${project}" droute_send "${release_name}" "${project}" diff --git a/e2e-tests/playwright/utils/ui-helper.ts b/e2e-tests/playwright/utils/ui-helper.ts index 3a0cdf67f5..23290c9b70 100644 --- a/e2e-tests/playwright/utils/ui-helper.ts +++ b/e2e-tests/playwright/utils/ui-helper.ts @@ -371,7 +371,6 @@ export class UIhelper { .getAttribute("href"); expect(buttonUrl).toContain(url); } - // locator('[data-test-id="topology-test"]').getByRole('button', { name: 'Open URL' }) /** * Verifies that a table row, identified by unique text, contains specific cell texts. @@ -622,6 +621,7 @@ export class UIhelper { await this.page .locator('[data-test-id="topology-test"]') .getByText("Pod") + .first() .hover({}); } From 25e9dc3b6455d5fd9c12d9025b6218967c8ac12d Mon Sep 17 00:00:00 2001 From: teknaS47 Date: Fri, 17 Jan 2025 15:13:04 +0530 Subject: [PATCH 11/33] cleanup --- .ibm/pipelines/utils.sh | 2 +- e2e-tests/playwright/e2e/plugins/topology/topology.spec.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.ibm/pipelines/utils.sh b/.ibm/pipelines/utils.sh index 95ae216e14..9c50f9bae1 100755 --- a/.ibm/pipelines/utils.sh +++ b/.ibm/pipelines/utils.sh @@ -561,7 +561,7 @@ run_tests() { mkdir -p "${ARTIFACT_DIR}/${project}/test-results" mkdir -p "${ARTIFACT_DIR}/${project}/attachments/screenshots" - cp -a "${e2e_tests_dir}/test-results/"* "${ARTIFACT_DIR}/${project}/test-results" + cp -a "${e2e_tests_dir}/test-results/"* "${ARTIFACT_DIR}/${project}/test-results" cp -a "${e2e_tests_dir}/${JUNIT_RESULTS}" "${ARTIFACT_DIR}/${project}/${JUNIT_RESULTS}" if [ -d "${e2e_tests_dir}/screenshots" ]; then diff --git a/e2e-tests/playwright/e2e/plugins/topology/topology.spec.ts b/e2e-tests/playwright/e2e/plugins/topology/topology.spec.ts index 57b301a7b0..37b9556254 100644 --- a/e2e-tests/playwright/e2e/plugins/topology/topology.spec.ts +++ b/e2e-tests/playwright/e2e/plugins/topology/topology.spec.ts @@ -70,7 +70,7 @@ test.describe("Test Topology Plugin", () => { await uiHelper.verifyHeading("PipelineRuns"); await uiHelper.verifyText("PL"); await uiHelper.verifyText("PLR"); - await page.getByTestId("icon-only-Succeeded").hover(); + await page.getByTestId("icon-only-Succeeded").click(); await uiHelper.verifyDivHasText("Pipeline SucceededTask"); await uiHelper.verifyText("1 Succeeded"); }); From d18a9a566dedf8bbe4622242ffce5413e260d934 Mon Sep 17 00:00:00 2001 From: teknaS47 Date: Fri, 17 Jan 2025 17:10:45 +0530 Subject: [PATCH 12/33] cleanup --- e2e-tests/playwright/e2e/plugins/topology/topology.spec.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/e2e-tests/playwright/e2e/plugins/topology/topology.spec.ts b/e2e-tests/playwright/e2e/plugins/topology/topology.spec.ts index 37b9556254..2c7a3aaef4 100644 --- a/e2e-tests/playwright/e2e/plugins/topology/topology.spec.ts +++ b/e2e-tests/playwright/e2e/plugins/topology/topology.spec.ts @@ -70,7 +70,8 @@ test.describe("Test Topology Plugin", () => { await uiHelper.verifyHeading("PipelineRuns"); await uiHelper.verifyText("PL"); await uiHelper.verifyText("PLR"); - await page.getByTestId("icon-only-Succeeded").click(); + await page.locator('[data-test-id="topology-test"] circle').first().click(); + // await page.getByTestId("icon-only-Succeeded").click(); await uiHelper.verifyDivHasText("Pipeline SucceededTask"); await uiHelper.verifyText("1 Succeeded"); }); From e851de10c1d478d53b4740d39c66e086a1d53be1 Mon Sep 17 00:00:00 2001 From: teknaS47 Date: Fri, 17 Jan 2025 19:00:15 +0530 Subject: [PATCH 13/33] 1.4 changes --- e2e-tests/playwright/e2e/plugins/topology/topology.spec.ts | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/e2e-tests/playwright/e2e/plugins/topology/topology.spec.ts b/e2e-tests/playwright/e2e/plugins/topology/topology.spec.ts index 2c7a3aaef4..64696ce839 100644 --- a/e2e-tests/playwright/e2e/plugins/topology/topology.spec.ts +++ b/e2e-tests/playwright/e2e/plugins/topology/topology.spec.ts @@ -70,9 +70,8 @@ test.describe("Test Topology Plugin", () => { await uiHelper.verifyHeading("PipelineRuns"); await uiHelper.verifyText("PL"); await uiHelper.verifyText("PLR"); - await page.locator('[data-test-id="topology-test"] circle').first().click(); - // await page.getByTestId("icon-only-Succeeded").click(); + await page.getByTestId("status-ok").first().click(); await uiHelper.verifyDivHasText("Pipeline SucceededTask"); - await uiHelper.verifyText("1 Succeeded"); + await uiHelper.verifyText("2 Succeeded"); }); }); From 256413aeaed6f0d94e5e96d6398f9f1eff313911 Mon Sep 17 00:00:00 2001 From: teknaS47 Date: Fri, 17 Jan 2025 20:23:42 +0530 Subject: [PATCH 14/33] fix --- .ibm/pipelines/utils.sh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.ibm/pipelines/utils.sh b/.ibm/pipelines/utils.sh index 9c50f9bae1..deff00205a 100755 --- a/.ibm/pipelines/utils.sh +++ b/.ibm/pipelines/utils.sh @@ -543,6 +543,9 @@ run_tests() { local project=$2 project=${project} cd "${DIR}/../../e2e-tests" + local e2e_tests_dir + e2e_tests_dir=$(pwd) + yarn install yarn playwright install chromium From 504ae246db20cfa01dbd93f3a6d8a1ffd29df94e Mon Sep 17 00:00:00 2001 From: teknaS47 Date: Sun, 19 Jan 2025 09:06:23 +0530 Subject: [PATCH 15/33] Requested changes --- .../e2e/plugins/topology/topology.spec.ts | 9 ++++++--- e2e-tests/playwright/support/pages/topology.ts | 18 ++++++++++++++++++ e2e-tests/playwright/utils/ui-helper.ts | 8 -------- 3 files changed, 24 insertions(+), 11 deletions(-) create mode 100644 e2e-tests/playwright/support/pages/topology.ts diff --git a/e2e-tests/playwright/e2e/plugins/topology/topology.spec.ts b/e2e-tests/playwright/e2e/plugins/topology/topology.spec.ts index 64696ce839..74f3e9981a 100644 --- a/e2e-tests/playwright/e2e/plugins/topology/topology.spec.ts +++ b/e2e-tests/playwright/e2e/plugins/topology/topology.spec.ts @@ -2,16 +2,19 @@ import { test, expect } from "@playwright/test"; import { Common } from "../../../utils/common"; import { UIhelper } from "../../../utils/ui-helper"; import { Catalog } from "../../../support/pages/catalog"; +import { Topology } from "../../../support/pages/topology"; test.describe("Test Topology Plugin", () => { let common: Common; let uiHelper: UIhelper; let catalog: Catalog; + let topology: Topology; test.beforeEach(async ({ page }) => { common = new Common(page); uiHelper = new UIhelper(page); catalog = new Catalog(page); + topology = new Topology(page); await common.loginAsGuest(); }); @@ -20,8 +23,8 @@ test.describe("Test Topology Plugin", () => { await uiHelper.clickTab("Topology"); await uiHelper.verifyText("backstage-janus"); await page.getByRole("button", { name: "Fit to Screen" }).click(); - await uiHelper.verifyText("rhdh"); - await uiHelper.verifyText("rhdh-rbac"); + // await uiHelper.verifyText("rhdh"); + // await uiHelper.verifyText("rhdh-rbac"); await uiHelper.verifyText("topology-test"); await uiHelper.verifyButtonURL("Open URL", "topology-test-route", { locator: `[data-test-id="topology-test"]`, @@ -49,7 +52,7 @@ test.describe("Test Topology Plugin", () => { await page.getByLabel("Pod count").click(); await uiHelper.verifyText("1"); await uiHelper.verifyText("Pod"); - await uiHelper.hoverOnPodStatusIndicator(); + await topology.hoverOnPodStatusIndicator(); await uiHelper.verifyTextInTooltip("Running"); await uiHelper.verifyText("1Running"); await uiHelper.verifyButtonURL( diff --git a/e2e-tests/playwright/support/pages/topology.ts b/e2e-tests/playwright/support/pages/topology.ts new file mode 100644 index 0000000000..46d2f7d620 --- /dev/null +++ b/e2e-tests/playwright/support/pages/topology.ts @@ -0,0 +1,18 @@ +import { expect, Page } from "@playwright/test"; +import { GITHUB_URL } from "../../utils/constants"; + +export class Topology { + private page: Page; + + constructor(page: Page) { + this.page = page; + } + + async hoverOnPodStatusIndicator() { + await this.page + .locator('[data-test-id="topology-test"]') + .getByText("Pod") + .first() + .hover({}); + } +} diff --git a/e2e-tests/playwright/utils/ui-helper.ts b/e2e-tests/playwright/utils/ui-helper.ts index 23290c9b70..7638d5a45f 100644 --- a/e2e-tests/playwright/utils/ui-helper.ts +++ b/e2e-tests/playwright/utils/ui-helper.ts @@ -617,14 +617,6 @@ export class UIhelper { await expect(preinstalledColumn).toHaveText(expectedPreinstalled); } - async hoverOnPodStatusIndicator() { - await this.page - .locator('[data-test-id="topology-test"]') - .getByText("Pod") - .first() - .hover({}); - } - async verifyTextInTooltip(text: string | RegExp) { const tooltip = await this.page.getByRole("tooltip").getByText(text); expect(tooltip).toBeVisible(); From 4feed46c116092a6f921928a2c9fffab0b716ee2 Mon Sep 17 00:00:00 2001 From: teknaS47 Date: Sun, 19 Jan 2025 09:13:44 +0530 Subject: [PATCH 16/33] Requested changes --- e2e-tests/playwright/support/pages/topology.ts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/e2e-tests/playwright/support/pages/topology.ts b/e2e-tests/playwright/support/pages/topology.ts index 46d2f7d620..f1463e2da4 100644 --- a/e2e-tests/playwright/support/pages/topology.ts +++ b/e2e-tests/playwright/support/pages/topology.ts @@ -1,5 +1,4 @@ -import { expect, Page } from "@playwright/test"; -import { GITHUB_URL } from "../../utils/constants"; +import { Page } from "@playwright/test"; export class Topology { private page: Page; From 165cdd3e6b0d69d913e8f2cba187d718676e7e88 Mon Sep 17 00:00:00 2001 From: teknaS47 Date: Tue, 21 Jan 2025 18:28:26 +0530 Subject: [PATCH 17/33] Adding Ingress resource for k8s --- .../topology_test/topology-test-ingress.yaml | 19 +++++++++++++++ .../topology_test/topology-test-route.yaml | 14 +++++++++++ .../topology_test/topology-test.yaml | 23 ++++++++++++++++++- .ibm/pipelines/utils.sh | 6 ++++- 4 files changed, 60 insertions(+), 2 deletions(-) create mode 100644 .ibm/pipelines/resources/topology_test/topology-test-ingress.yaml create mode 100644 .ibm/pipelines/resources/topology_test/topology-test-route.yaml diff --git a/.ibm/pipelines/resources/topology_test/topology-test-ingress.yaml b/.ibm/pipelines/resources/topology_test/topology-test-ingress.yaml new file mode 100644 index 0000000000..01824236c2 --- /dev/null +++ b/.ibm/pipelines/resources/topology_test/topology-test-ingress.yaml @@ -0,0 +1,19 @@ +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: topology-test-ingress + labels: + app: topology-test + backstage.io/kubernetes-id: developer-hub +spec: + rules: + - host: apps-crc.testing + http: + paths: + - path: / + pathType: Prefix + backend: + service: + name: topology-test-service + port: + number: 8080 \ No newline at end of file diff --git a/.ibm/pipelines/resources/topology_test/topology-test-route.yaml b/.ibm/pipelines/resources/topology_test/topology-test-route.yaml new file mode 100644 index 0000000000..5bdf59bc89 --- /dev/null +++ b/.ibm/pipelines/resources/topology_test/topology-test-route.yaml @@ -0,0 +1,14 @@ +apiVersion: route.openshift.io/v1 +kind: Route +metadata: + name: topology-test-route + labels: + app: topology-test + backstage.io/kubernetes-id: developer-hub +spec: + to: + kind: Service + name: topology-test-service + port: + targetPort: 8080 + wildcardPolicy: None \ No newline at end of file diff --git a/.ibm/pipelines/resources/topology_test/topology-test.yaml b/.ibm/pipelines/resources/topology_test/topology-test.yaml index 95f978c42d..19981997a7 100644 --- a/.ibm/pipelines/resources/topology_test/topology-test.yaml +++ b/.ibm/pipelines/resources/topology_test/topology-test.yaml @@ -84,4 +84,25 @@ spec: name: topology-test-service port: targetPort: 8080 - wildcardPolicy: None \ No newline at end of file + wildcardPolicy: None + +--- +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: topology-test-ingress + labels: + app: topology-test + backstage.io/kubernetes-id: developer-hub +spec: + rules: + - host: apps-crc.testing + http: + paths: + - path: / + pathType: Prefix + backend: + service: + name: topology-test-service + port: + number: 8080 \ No newline at end of file diff --git a/.ibm/pipelines/utils.sh b/.ibm/pipelines/utils.sh index deff00205a..3aeee40ac3 100755 --- a/.ibm/pipelines/utils.sh +++ b/.ibm/pipelines/utils.sh @@ -475,7 +475,11 @@ apply_yaml_files() { # Create Deployment and Pipeline for Topology test. oc apply -f "$dir/resources/topology_test/topology-test.yaml" - + if [[ "${project}" == *showcase-k8s* ]]; then + oc apply -f "$dir/resources/topology_test/topology-test-ingress.yaml" + else + oc apply -f "$dir/resources/topology_test/topology-test-route.yaml" + fi } deploy_test_backstage_provider() { From 0ece11eaae9bfede5c71b139f87ccaed085c11b8 Mon Sep 17 00:00:00 2001 From: teknaS47 Date: Fri, 13 Dec 2024 23:29:10 +0530 Subject: [PATCH 18/33] [Test automation] Verify Topology is a supported plugin and E2E scenario follow-up --- .ibm/pipelines/utils.sh | 7 +++++-- e2e-tests/playwright/e2e/plugins/topology/topology.spec.ts | 4 ++-- e2e-tests/playwright/utils/ui-helper.ts | 1 + 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/.ibm/pipelines/utils.sh b/.ibm/pipelines/utils.sh index 1020106afa..95036d38af 100755 --- a/.ibm/pipelines/utils.sh +++ b/.ibm/pipelines/utils.sh @@ -474,8 +474,11 @@ apply_yaml_files() { oc apply -f "$dir/resources/pipeline-run/hello-world-pipeline-run.yaml" # Create Deployment and Pipeline for Topology test. - if [[ "${project}" != *k8s* ]]; then # Specific to OCP deployments (uses Route which is not supported by K8S) - oc apply -f "$dir/resources/topology_test/topology-test.yaml" + oc apply -f "$dir/resources/topology_test/topology-test.yaml" + if [[ "${project}" == *showcase-k8s* ]]; then + oc apply -f "$dir/resources/topology_test/topology-test-ingress.yaml" + else + oc apply -f "$dir/resources/topology_test/topology-test-route.yaml" fi } diff --git a/e2e-tests/playwright/e2e/plugins/topology/topology.spec.ts b/e2e-tests/playwright/e2e/plugins/topology/topology.spec.ts index 74f3e9981a..e5da634033 100644 --- a/e2e-tests/playwright/e2e/plugins/topology/topology.spec.ts +++ b/e2e-tests/playwright/e2e/plugins/topology/topology.spec.ts @@ -23,8 +23,8 @@ test.describe("Test Topology Plugin", () => { await uiHelper.clickTab("Topology"); await uiHelper.verifyText("backstage-janus"); await page.getByRole("button", { name: "Fit to Screen" }).click(); - // await uiHelper.verifyText("rhdh"); - // await uiHelper.verifyText("rhdh-rbac"); + await uiHelper.verifyText("rhdh"); + await uiHelper.verifyText("rhdh-rbac"); await uiHelper.verifyText("topology-test"); await uiHelper.verifyButtonURL("Open URL", "topology-test-route", { locator: `[data-test-id="topology-test"]`, diff --git a/e2e-tests/playwright/utils/ui-helper.ts b/e2e-tests/playwright/utils/ui-helper.ts index 7638d5a45f..089b00826b 100644 --- a/e2e-tests/playwright/utils/ui-helper.ts +++ b/e2e-tests/playwright/utils/ui-helper.ts @@ -371,6 +371,7 @@ export class UIhelper { .getAttribute("href"); expect(buttonUrl).toContain(url); } + // locator('[data-test-id="topology-test"]').getByRole('button', { name: 'Open URL' }) /** * Verifies that a table row, identified by unique text, contains specific cell texts. From 34728d335cbcc7b03b0135e8da777bbff2550ff9 Mon Sep 17 00:00:00 2001 From: teknaS47 Date: Fri, 13 Dec 2024 23:29:10 +0530 Subject: [PATCH 19/33] [Test automation] Verify Topology is a supported plugin and E2E scenario follow-up --- .../resources/topology_test/topology-test.yaml | 15 --------------- 1 file changed, 15 deletions(-) diff --git a/.ibm/pipelines/resources/topology_test/topology-test.yaml b/.ibm/pipelines/resources/topology_test/topology-test.yaml index 95f978c42d..e84c8aed31 100644 --- a/.ibm/pipelines/resources/topology_test/topology-test.yaml +++ b/.ibm/pipelines/resources/topology_test/topology-test.yaml @@ -70,18 +70,3 @@ spec: - protocol: TCP port: 8080 targetPort: 8080 ---- -apiVersion: route.openshift.io/v1 -kind: Route -metadata: - name: topology-test-route - labels: - app: topology-test - backstage.io/kubernetes-id: developer-hub -spec: - to: - kind: Service - name: topology-test-service - port: - targetPort: 8080 - wildcardPolicy: None \ No newline at end of file From 6ba890e028e7148d2c13c475d4829fdb3bf9c490 Mon Sep 17 00:00:00 2001 From: teknaS47 Date: Thu, 16 Jan 2025 11:46:08 +0530 Subject: [PATCH 20/33] Sleep test --- .ibm/pipelines/openshift-ci-tests.sh | 1 + .ibm/pipelines/utils.sh | 16 ++++++++-------- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/.ibm/pipelines/openshift-ci-tests.sh b/.ibm/pipelines/openshift-ci-tests.sh index ca8610ccb4..f878db5e29 100755 --- a/.ibm/pipelines/openshift-ci-tests.sh +++ b/.ibm/pipelines/openshift-ci-tests.sh @@ -65,6 +65,7 @@ main() { esac echo "Main script completed with result: ${OVERALL_RESULT}" +sleep 60*60 exit "${OVERALL_RESULT}" } diff --git a/.ibm/pipelines/utils.sh b/.ibm/pipelines/utils.sh index 95036d38af..195c7faa8b 100755 --- a/.ibm/pipelines/utils.sh +++ b/.ibm/pipelines/utils.sh @@ -60,7 +60,7 @@ droute_send() { ARTIFACTS_URL="https://gcsweb-ci.apps.ci.l2s4.p1.openshiftapps.com/gcs/test-platform-results/pr-logs/pull/${REPO_OWNER}_${REPO_NAME}/${PULL_NUMBER}/${JOB_NAME}/${BUILD_ID}/artifacts/e2e-tests/${REPO_OWNER}-${REPO_NAME}/artifacts/${project}" else JOB_URL="${JOB_BASE_URL}/logs/${JOB_NAME}/${BUILD_ID}" - ARTIFACTS_URL="https://gcsweb-ci.apps.ci.l2s4.p1.openshiftapps.com/gcs/test-platform-results/logs/${JOB_NAME}/${BUILD_ID}/artifacts/${JOB_NAME##periodic-ci-redhat-developer-rhdh-main-}/${REPO_OWNER}-${REPO_NAME}/artifacts/${project}" + ARTIFACTS_URL="https://gcsweb-ci.apps.ci.l2s4.p1.openshiftapps.com/gcs/test-platform-results/logs/${JOB_NAME}/${BUILD_ID}/artifacts/${JOB_NAME##periodic-ci-janus-idp-backstage-showcase-main-}/${REPO_OWNER}-${REPO_NAME}/artifacts/${project}" fi # Remove properties (only used for skipped test and invalidates the file if empty) @@ -568,20 +568,20 @@ run_tests() { mkdir -p "${ARTIFACT_DIR}/${project}/test-results" mkdir -p "${ARTIFACT_DIR}/${project}/attachments/screenshots" - cp -a "${e2e_tests_dir}/test-results/"* "${ARTIFACT_DIR}/${project}/test-results" - cp -a "${e2e_tests_dir}/${JUNIT_RESULTS}" "${ARTIFACT_DIR}/${project}/${JUNIT_RESULTS}" + cp -a /tmp/backstage-showcase/e2e-tests/test-results/* "${ARTIFACT_DIR}/${project}/test-results" + cp -a /tmp/backstage-showcase/e2e-tests/${JUNIT_RESULTS} "${ARTIFACT_DIR}/${project}/${JUNIT_RESULTS}" - if [ -d "${e2e_tests_dir}/screenshots" ]; then - cp -a "${e2e_tests_dir}/screenshots/"* "${ARTIFACT_DIR}/${project}/attachments/screenshots/" + if [ -d "/tmp/backstage-showcase/e2e-tests/screenshots" ]; then + cp -a /tmp/backstage-showcase/e2e-tests/screenshots/* "${ARTIFACT_DIR}/${project}/attachments/screenshots/" fi - if [ -d "${e2e_tests_dir}/auth-providers-logs" ]; then - cp -a "${e2e_tests_dir}/auth-providers-logs/"* "${ARTIFACT_DIR}/${project}/" + if [ -d "/tmp/backstage-showcase/e2e-tests/auth-providers-logs" ]; then + cp -a /tmp/backstage-showcase/e2e-tests/auth-providers-logs/* "${ARTIFACT_DIR}/${project}/" fi ansi2html <"/tmp/${LOGFILE}" >"/tmp/${LOGFILE}.html" cp -a "/tmp/${LOGFILE}.html" "${ARTIFACT_DIR}/${project}" - cp -a "${e2e_tests_dir}/playwright-report/"* "${ARTIFACT_DIR}/${project}" + cp -a /tmp/backstage-showcase/e2e-tests/playwright-report/* "${ARTIFACT_DIR}/${project}" droute_send "${release_name}" "${project}" From 8c8d05b6e6f202354f267a4fd48f7affefe0b5ea Mon Sep 17 00:00:00 2001 From: teknaS47 Date: Fri, 17 Jan 2025 13:06:25 +0530 Subject: [PATCH 21/33] TLS issue --- .ibm/pipelines/openshift-ci-tests.sh | 1 - 1 file changed, 1 deletion(-) diff --git a/.ibm/pipelines/openshift-ci-tests.sh b/.ibm/pipelines/openshift-ci-tests.sh index f878db5e29..ca8610ccb4 100755 --- a/.ibm/pipelines/openshift-ci-tests.sh +++ b/.ibm/pipelines/openshift-ci-tests.sh @@ -65,7 +65,6 @@ main() { esac echo "Main script completed with result: ${OVERALL_RESULT}" -sleep 60*60 exit "${OVERALL_RESULT}" } From c259006c0a60058486533e1ad8c3e79cde080d21 Mon Sep 17 00:00:00 2001 From: teknaS47 Date: Fri, 17 Jan 2025 14:47:29 +0530 Subject: [PATCH 22/33] cleanup --- .ibm/pipelines/utils.sh | 16 ++++++++-------- e2e-tests/playwright/utils/ui-helper.ts | 1 - 2 files changed, 8 insertions(+), 9 deletions(-) diff --git a/.ibm/pipelines/utils.sh b/.ibm/pipelines/utils.sh index 195c7faa8b..a143d66436 100755 --- a/.ibm/pipelines/utils.sh +++ b/.ibm/pipelines/utils.sh @@ -60,7 +60,7 @@ droute_send() { ARTIFACTS_URL="https://gcsweb-ci.apps.ci.l2s4.p1.openshiftapps.com/gcs/test-platform-results/pr-logs/pull/${REPO_OWNER}_${REPO_NAME}/${PULL_NUMBER}/${JOB_NAME}/${BUILD_ID}/artifacts/e2e-tests/${REPO_OWNER}-${REPO_NAME}/artifacts/${project}" else JOB_URL="${JOB_BASE_URL}/logs/${JOB_NAME}/${BUILD_ID}" - ARTIFACTS_URL="https://gcsweb-ci.apps.ci.l2s4.p1.openshiftapps.com/gcs/test-platform-results/logs/${JOB_NAME}/${BUILD_ID}/artifacts/${JOB_NAME##periodic-ci-janus-idp-backstage-showcase-main-}/${REPO_OWNER}-${REPO_NAME}/artifacts/${project}" + ARTIFACTS_URL="https://gcsweb-ci.apps.ci.l2s4.p1.openshiftapps.com/gcs/test-platform-results/logs/${JOB_NAME}/${BUILD_ID}/artifacts/${JOB_NAME##periodic-ci-redhat-developer-rhdh-main-}/${REPO_OWNER}-${REPO_NAME}/artifacts/${project}" fi # Remove properties (only used for skipped test and invalidates the file if empty) @@ -568,20 +568,20 @@ run_tests() { mkdir -p "${ARTIFACT_DIR}/${project}/test-results" mkdir -p "${ARTIFACT_DIR}/${project}/attachments/screenshots" - cp -a /tmp/backstage-showcase/e2e-tests/test-results/* "${ARTIFACT_DIR}/${project}/test-results" - cp -a /tmp/backstage-showcase/e2e-tests/${JUNIT_RESULTS} "${ARTIFACT_DIR}/${project}/${JUNIT_RESULTS}" + cp -a "${e2e_tests_dir}/test-results/"* "${ARTIFACT_DIR}/${project}/test-results" + cp -a "${e2e_tests_dir}/${JUNIT_RESULTS}" "${ARTIFACT_DIR}/${project}/${JUNIT_RESULTS}" - if [ -d "/tmp/backstage-showcase/e2e-tests/screenshots" ]; then - cp -a /tmp/backstage-showcase/e2e-tests/screenshots/* "${ARTIFACT_DIR}/${project}/attachments/screenshots/" + if [ -d "${e2e_tests_dir}/screenshots" ]; then + cp -a "${e2e_tests_dir}/screenshots/"* "${ARTIFACT_DIR}/${project}/attachments/screenshots/" fi - if [ -d "/tmp/backstage-showcase/e2e-tests/auth-providers-logs" ]; then - cp -a /tmp/backstage-showcase/e2e-tests/auth-providers-logs/* "${ARTIFACT_DIR}/${project}/" + if [ -d "${e2e_tests_dir}/auth-providers-logs" ]; then + cp -a "${e2e_tests_dir}/auth-providers-logs/"* "${ARTIFACT_DIR}/${project}/" fi ansi2html <"/tmp/${LOGFILE}" >"/tmp/${LOGFILE}.html" cp -a "/tmp/${LOGFILE}.html" "${ARTIFACT_DIR}/${project}" - cp -a /tmp/backstage-showcase/e2e-tests/playwright-report/* "${ARTIFACT_DIR}/${project}" + cp -a "${e2e_tests_dir}/playwright-report/"* "${ARTIFACT_DIR}/${project}" droute_send "${release_name}" "${project}" diff --git a/e2e-tests/playwright/utils/ui-helper.ts b/e2e-tests/playwright/utils/ui-helper.ts index 089b00826b..7638d5a45f 100644 --- a/e2e-tests/playwright/utils/ui-helper.ts +++ b/e2e-tests/playwright/utils/ui-helper.ts @@ -371,7 +371,6 @@ export class UIhelper { .getAttribute("href"); expect(buttonUrl).toContain(url); } - // locator('[data-test-id="topology-test"]').getByRole('button', { name: 'Open URL' }) /** * Verifies that a table row, identified by unique text, contains specific cell texts. From 8148bf5520212cb01d55414e2a1f7e67b55e4d61 Mon Sep 17 00:00:00 2001 From: teknaS47 Date: Fri, 17 Jan 2025 15:13:04 +0530 Subject: [PATCH 23/33] cleanup --- .ibm/pipelines/utils.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.ibm/pipelines/utils.sh b/.ibm/pipelines/utils.sh index a143d66436..95036d38af 100755 --- a/.ibm/pipelines/utils.sh +++ b/.ibm/pipelines/utils.sh @@ -568,7 +568,7 @@ run_tests() { mkdir -p "${ARTIFACT_DIR}/${project}/test-results" mkdir -p "${ARTIFACT_DIR}/${project}/attachments/screenshots" - cp -a "${e2e_tests_dir}/test-results/"* "${ARTIFACT_DIR}/${project}/test-results" + cp -a "${e2e_tests_dir}/test-results/"* "${ARTIFACT_DIR}/${project}/test-results" cp -a "${e2e_tests_dir}/${JUNIT_RESULTS}" "${ARTIFACT_DIR}/${project}/${JUNIT_RESULTS}" if [ -d "${e2e_tests_dir}/screenshots" ]; then From 9bb5eadad0c71458e21edc8f10e04601800662da Mon Sep 17 00:00:00 2001 From: teknaS47 Date: Sun, 19 Jan 2025 09:06:23 +0530 Subject: [PATCH 24/33] Requested changes --- e2e-tests/playwright/e2e/plugins/topology/topology.spec.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/e2e-tests/playwright/e2e/plugins/topology/topology.spec.ts b/e2e-tests/playwright/e2e/plugins/topology/topology.spec.ts index e5da634033..74f3e9981a 100644 --- a/e2e-tests/playwright/e2e/plugins/topology/topology.spec.ts +++ b/e2e-tests/playwright/e2e/plugins/topology/topology.spec.ts @@ -23,8 +23,8 @@ test.describe("Test Topology Plugin", () => { await uiHelper.clickTab("Topology"); await uiHelper.verifyText("backstage-janus"); await page.getByRole("button", { name: "Fit to Screen" }).click(); - await uiHelper.verifyText("rhdh"); - await uiHelper.verifyText("rhdh-rbac"); + // await uiHelper.verifyText("rhdh"); + // await uiHelper.verifyText("rhdh-rbac"); await uiHelper.verifyText("topology-test"); await uiHelper.verifyButtonURL("Open URL", "topology-test-route", { locator: `[data-test-id="topology-test"]`, From cc07ea9a3148bc4d6070f652fcc21c880d70ee59 Mon Sep 17 00:00:00 2001 From: teknaS47 Date: Tue, 21 Jan 2025 18:28:26 +0530 Subject: [PATCH 25/33] Adding Ingress resource for k8s --- .../topology_test/topology-test-ingress.yaml | 19 +++++++++++++++++++ .../topology_test/topology-test-route.yaml | 14 ++++++++++++++ .../topology_test/topology-test.yaml | 2 +- 3 files changed, 34 insertions(+), 1 deletion(-) create mode 100644 .ibm/pipelines/resources/topology_test/topology-test-ingress.yaml create mode 100644 .ibm/pipelines/resources/topology_test/topology-test-route.yaml diff --git a/.ibm/pipelines/resources/topology_test/topology-test-ingress.yaml b/.ibm/pipelines/resources/topology_test/topology-test-ingress.yaml new file mode 100644 index 0000000000..01824236c2 --- /dev/null +++ b/.ibm/pipelines/resources/topology_test/topology-test-ingress.yaml @@ -0,0 +1,19 @@ +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: topology-test-ingress + labels: + app: topology-test + backstage.io/kubernetes-id: developer-hub +spec: + rules: + - host: apps-crc.testing + http: + paths: + - path: / + pathType: Prefix + backend: + service: + name: topology-test-service + port: + number: 8080 \ No newline at end of file diff --git a/.ibm/pipelines/resources/topology_test/topology-test-route.yaml b/.ibm/pipelines/resources/topology_test/topology-test-route.yaml new file mode 100644 index 0000000000..5bdf59bc89 --- /dev/null +++ b/.ibm/pipelines/resources/topology_test/topology-test-route.yaml @@ -0,0 +1,14 @@ +apiVersion: route.openshift.io/v1 +kind: Route +metadata: + name: topology-test-route + labels: + app: topology-test + backstage.io/kubernetes-id: developer-hub +spec: + to: + kind: Service + name: topology-test-service + port: + targetPort: 8080 + wildcardPolicy: None \ No newline at end of file diff --git a/.ibm/pipelines/resources/topology_test/topology-test.yaml b/.ibm/pipelines/resources/topology_test/topology-test.yaml index e84c8aed31..b2f393eb8a 100644 --- a/.ibm/pipelines/resources/topology_test/topology-test.yaml +++ b/.ibm/pipelines/resources/topology_test/topology-test.yaml @@ -69,4 +69,4 @@ spec: ports: - protocol: TCP port: 8080 - targetPort: 8080 + targetPort: 8080 \ No newline at end of file From e43c6599d5eac2d816c1edca7491f88880419efd Mon Sep 17 00:00:00 2001 From: teknaS47 Date: Wed, 22 Jan 2025 16:13:19 +0530 Subject: [PATCH 26/33] Adding Ingress test --- .../topology_test/topology-test-ingress.yaml | 4 ++-- .../e2e/plugins/topology/topology.spec.ts | 23 ++++++++++++++----- 2 files changed, 19 insertions(+), 8 deletions(-) diff --git a/.ibm/pipelines/resources/topology_test/topology-test-ingress.yaml b/.ibm/pipelines/resources/topology_test/topology-test-ingress.yaml index 01824236c2..f27e59e0ff 100644 --- a/.ibm/pipelines/resources/topology_test/topology-test-ingress.yaml +++ b/.ibm/pipelines/resources/topology_test/topology-test-ingress.yaml @@ -1,13 +1,13 @@ apiVersion: networking.k8s.io/v1 kind: Ingress metadata: - name: topology-test-ingress + name: topology-test-route labels: app: topology-test backstage.io/kubernetes-id: developer-hub spec: rules: - - host: apps-crc.testing + - host: topology-test-route http: paths: - path: / diff --git a/e2e-tests/playwright/e2e/plugins/topology/topology.spec.ts b/e2e-tests/playwright/e2e/plugins/topology/topology.spec.ts index 74f3e9981a..1a825cc2f4 100644 --- a/e2e-tests/playwright/e2e/plugins/topology/topology.spec.ts +++ b/e2e-tests/playwright/e2e/plugins/topology/topology.spec.ts @@ -23,8 +23,8 @@ test.describe("Test Topology Plugin", () => { await uiHelper.clickTab("Topology"); await uiHelper.verifyText("backstage-janus"); await page.getByRole("button", { name: "Fit to Screen" }).click(); - // await uiHelper.verifyText("rhdh"); - // await uiHelper.verifyText("rhdh-rbac"); + await uiHelper.verifyText("rhdh"); + await uiHelper.verifyText("rhdh-rbac"); await uiHelper.verifyText("topology-test"); await uiHelper.verifyButtonURL("Open URL", "topology-test-route", { locator: `[data-test-id="topology-test"]`, @@ -39,9 +39,20 @@ test.describe("Test Topology Plugin", () => { await uiHelper.verifyHeading("Pods"); await uiHelper.verifyHeading("Services"); await uiHelper.verifyHeading("Routes"); - await expect( - page.getByRole("link", { name: "topology-test-route" }), - ).toBeVisible(); + await page + .getByTestId("routes-list") + .getByRole("link", { name: "http://topology-test-route/" }) + .click(); + await uiHelper.verifyText("Location:"); + if (await page.getByText("Ingresses").isVisible()) { + await uiHelper.verifyHeading("Ingresses"); + await uiHelper.verifyText("I"); + await page + .getByTestId("ingress-list") + .getByRole("link", { name: "http://topology-test-route/" }) + .click(); + await expect(page.locator("pre")).toBeVisible(); + } await expect(page.getByTitle("Deployment")).toBeVisible(); await uiHelper.verifyText("S"); await uiHelper.verifyText("RT"); @@ -75,6 +86,6 @@ test.describe("Test Topology Plugin", () => { await uiHelper.verifyText("PLR"); await page.getByTestId("status-ok").first().click(); await uiHelper.verifyDivHasText("Pipeline SucceededTask"); - await uiHelper.verifyText("2 Succeeded"); + await uiHelper.verifyText("Pipeline Succeeded"); }); }); From 85599f93039960c81c7a9f455170c53d8dd3c02b Mon Sep 17 00:00:00 2001 From: teknaS47 Date: Wed, 22 Jan 2025 19:33:40 +0530 Subject: [PATCH 27/33] Fixing Ingress test --- .../e2e/plugins/topology/topology.spec.ts | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/e2e-tests/playwright/e2e/plugins/topology/topology.spec.ts b/e2e-tests/playwright/e2e/plugins/topology/topology.spec.ts index 1a825cc2f4..3f2e634e56 100644 --- a/e2e-tests/playwright/e2e/plugins/topology/topology.spec.ts +++ b/e2e-tests/playwright/e2e/plugins/topology/topology.spec.ts @@ -39,18 +39,20 @@ test.describe("Test Topology Plugin", () => { await uiHelper.verifyHeading("Pods"); await uiHelper.verifyHeading("Services"); await uiHelper.verifyHeading("Routes"); - await page - .getByTestId("routes-list") - .getByRole("link", { name: "http://topology-test-route/" }) - .click(); + await expect( + page + .getByTestId("routes-list") + .getByRole("link", { name: "http://topology-test-route/" }), + ).toBeVisible(); await uiHelper.verifyText("Location:"); if (await page.getByText("Ingresses").isVisible()) { await uiHelper.verifyHeading("Ingresses"); await uiHelper.verifyText("I"); - await page - .getByTestId("ingress-list") - .getByRole("link", { name: "http://topology-test-route/" }) - .click(); + await expect( + page + .getByTestId("ingress-list") + .getByRole("link", { name: "http://topology-test-route/" }), + ).toBeVisible(); await expect(page.locator("pre")).toBeVisible(); } await expect(page.getByTitle("Deployment")).toBeVisible(); From 76bed3e35e2dadb56c6d6368c0e63807d4a6dc93 Mon Sep 17 00:00:00 2001 From: teknaS47 Date: Wed, 22 Jan 2025 21:36:13 +0530 Subject: [PATCH 28/33] Fixing Ingress test --- e2e-tests/playwright/e2e/plugins/topology/topology.spec.ts | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/e2e-tests/playwright/e2e/plugins/topology/topology.spec.ts b/e2e-tests/playwright/e2e/plugins/topology/topology.spec.ts index 3f2e634e56..f531177d66 100644 --- a/e2e-tests/playwright/e2e/plugins/topology/topology.spec.ts +++ b/e2e-tests/playwright/e2e/plugins/topology/topology.spec.ts @@ -40,9 +40,7 @@ test.describe("Test Topology Plugin", () => { await uiHelper.verifyHeading("Services"); await uiHelper.verifyHeading("Routes"); await expect( - page - .getByTestId("routes-list") - .getByRole("link", { name: "http://topology-test-route/" }), + page.getByRole("link", { name: "topology-test-route" }).first(), ).toBeVisible(); await uiHelper.verifyText("Location:"); if (await page.getByText("Ingresses").isVisible()) { @@ -51,7 +49,7 @@ test.describe("Test Topology Plugin", () => { await expect( page .getByTestId("ingress-list") - .getByRole("link", { name: "http://topology-test-route/" }), + .getByRole("link", { name: "topology-test-route" }), ).toBeVisible(); await expect(page.locator("pre")).toBeVisible(); } From 93daa8aa31474eeb866e41035715412f591bec45 Mon Sep 17 00:00:00 2001 From: teknaS47 Date: Thu, 23 Jan 2025 11:03:04 +0530 Subject: [PATCH 29/33] Testing on AKS --- .ibm/pipelines/openshift-ci-tests.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.ibm/pipelines/openshift-ci-tests.sh b/.ibm/pipelines/openshift-ci-tests.sh index ca8610ccb4..1ed5299cfd 100755 --- a/.ibm/pipelines/openshift-ci-tests.sh +++ b/.ibm/pipelines/openshift-ci-tests.sh @@ -21,6 +21,8 @@ cleanup() { trap cleanup EXIT INT ERR +export JOB_NAME=periodic-ci-redhat-developer-rhdh-main-e2e-tests-nightly-aks + SCRIPTS=( "env_variables.sh" "utils.sh" From 6dbb4f52d6e27533470f9aa58120e4c34bbcd5df Mon Sep 17 00:00:00 2001 From: teknaS47 Date: Thu, 23 Jan 2025 12:07:00 +0530 Subject: [PATCH 30/33] Testing on AKS fix --- .ibm/pipelines/utils.sh | 2 +- e2e-tests/playwright.config.ts | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/.ibm/pipelines/utils.sh b/.ibm/pipelines/utils.sh index 95036d38af..c83acd5b41 100755 --- a/.ibm/pipelines/utils.sh +++ b/.ibm/pipelines/utils.sh @@ -475,7 +475,7 @@ apply_yaml_files() { # Create Deployment and Pipeline for Topology test. oc apply -f "$dir/resources/topology_test/topology-test.yaml" - if [[ "${project}" == *showcase-k8s* ]]; then + if [[ "${project}" == *k8s* ]]; then oc apply -f "$dir/resources/topology_test/topology-test-ingress.yaml" else oc apply -f "$dir/resources/topology_test/topology-test-route.yaml" diff --git a/e2e-tests/playwright.config.ts b/e2e-tests/playwright.config.ts index 498aa79a50..319daf7c3d 100644 --- a/e2e-tests/playwright.config.ts +++ b/e2e-tests/playwright.config.ts @@ -97,7 +97,6 @@ export default defineConfig({ "**/playwright/e2e/authProviders/**/*.spec.ts", "**/playwright/e2e/plugins/bulk-import.spec.ts", "**/playwright/e2e/plugins/tekton/tekton.spec.ts", - "**/playwright/e2e/plugins/topology/topology.spec.ts", // uses Route (not supported in K8S) "**/playwright/e2e/catalog-scaffoldedfromLink.spec.ts", "**/playwright/e2e/plugins/ocm.spec.ts", "**/playwright/e2e/audit-log/**/*.spec.ts", From 1fbc9eaf3bbe51c5d794270121f2d9461daaf7d9 Mon Sep 17 00:00:00 2001 From: ssaikia Date: Thu, 23 Jan 2025 20:57:05 +0530 Subject: [PATCH 31/33] Testing on AKS --- e2e-tests/playwright/e2e/plugins/topology/topology.spec.ts | 2 -- 1 file changed, 2 deletions(-) diff --git a/e2e-tests/playwright/e2e/plugins/topology/topology.spec.ts b/e2e-tests/playwright/e2e/plugins/topology/topology.spec.ts index f531177d66..011dff0b30 100644 --- a/e2e-tests/playwright/e2e/plugins/topology/topology.spec.ts +++ b/e2e-tests/playwright/e2e/plugins/topology/topology.spec.ts @@ -23,8 +23,6 @@ test.describe("Test Topology Plugin", () => { await uiHelper.clickTab("Topology"); await uiHelper.verifyText("backstage-janus"); await page.getByRole("button", { name: "Fit to Screen" }).click(); - await uiHelper.verifyText("rhdh"); - await uiHelper.verifyText("rhdh-rbac"); await uiHelper.verifyText("topology-test"); await uiHelper.verifyButtonURL("Open URL", "topology-test-route", { locator: `[data-test-id="topology-test"]`, From 44354e20f746ed723a332152b37082ec0a8ff26d Mon Sep 17 00:00:00 2001 From: ssaikia Date: Thu, 23 Jan 2025 23:14:21 +0530 Subject: [PATCH 32/33] Testing on AKS fix --- .../e2e/plugins/topology/topology.spec.ts | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/e2e-tests/playwright/e2e/plugins/topology/topology.spec.ts b/e2e-tests/playwright/e2e/plugins/topology/topology.spec.ts index 011dff0b30..72aafab305 100644 --- a/e2e-tests/playwright/e2e/plugins/topology/topology.spec.ts +++ b/e2e-tests/playwright/e2e/plugins/topology/topology.spec.ts @@ -36,11 +36,6 @@ test.describe("Test Topology Plugin", () => { await uiHelper.clickTab("Resources"); await uiHelper.verifyHeading("Pods"); await uiHelper.verifyHeading("Services"); - await uiHelper.verifyHeading("Routes"); - await expect( - page.getByRole("link", { name: "topology-test-route" }).first(), - ).toBeVisible(); - await uiHelper.verifyText("Location:"); if (await page.getByText("Ingresses").isVisible()) { await uiHelper.verifyHeading("Ingresses"); await uiHelper.verifyText("I"); @@ -50,10 +45,16 @@ test.describe("Test Topology Plugin", () => { .getByRole("link", { name: "topology-test-route" }), ).toBeVisible(); await expect(page.locator("pre")).toBeVisible(); + } else { + await uiHelper.verifyHeading("Routes"); + await uiHelper.verifyText("RT"); + await expect( + page.getByRole("link", { name: "topology-test-route" }).first(), + ).toBeVisible(); } + await uiHelper.verifyText("Location:"); await expect(page.getByTitle("Deployment")).toBeVisible(); await uiHelper.verifyText("S"); - await uiHelper.verifyText("RT"); await expect(page.locator("rect").first()).toBeVisible(); await uiHelper.clickTab("Details"); await page.getByLabel("Pod").hover(); From 93354ec32e1efa2651a06246caacdf6ceef2d33a Mon Sep 17 00:00:00 2001 From: teknaS47 Date: Fri, 24 Jan 2025 17:02:31 +0530 Subject: [PATCH 33/33] Removing AKS test --- .ibm/pipelines/openshift-ci-tests.sh | 2 -- 1 file changed, 2 deletions(-) diff --git a/.ibm/pipelines/openshift-ci-tests.sh b/.ibm/pipelines/openshift-ci-tests.sh index 1ed5299cfd..ca8610ccb4 100755 --- a/.ibm/pipelines/openshift-ci-tests.sh +++ b/.ibm/pipelines/openshift-ci-tests.sh @@ -21,8 +21,6 @@ cleanup() { trap cleanup EXIT INT ERR -export JOB_NAME=periodic-ci-redhat-developer-rhdh-main-e2e-tests-nightly-aks - SCRIPTS=( "env_variables.sh" "utils.sh"