From 6887702aa79b042ea83cf575a8811c91d90ffb21 Mon Sep 17 00:00:00 2001 From: Sahil Shah Date: Wed, 29 Jul 2026 14:57:27 -0400 Subject: [PATCH 1/4] CONSOLE-5234: Remove Cypress CI entrypoint and test runner scripts The Cypress E2E CI pipeline is being replaced by Playwright. Remove the Cypress-specific Prow entrypoint and test runner scripts that are no longer needed now that the Playwright equivalents are in place. Co-Authored-By: Claude Opus 4.6 (1M context) --- frontend/integration-tests/test-cypress.sh | 108 --------------------- test-prow-e2e-techpreview.sh | 3 - test-prow-e2e.sh | 42 -------- test-prow-playwright-e2e.sh | 8 +- 4 files changed, 4 insertions(+), 157 deletions(-) delete mode 100755 frontend/integration-tests/test-cypress.sh delete mode 100755 test-prow-e2e-techpreview.sh delete mode 100755 test-prow-e2e.sh diff --git a/frontend/integration-tests/test-cypress.sh b/frontend/integration-tests/test-cypress.sh deleted file mode 100755 index c0089710227..00000000000 --- a/frontend/integration-tests/test-cypress.sh +++ /dev/null @@ -1,108 +0,0 @@ -#!/usr/bin/env bash -set -euo pipefail - -ARTIFACT_DIR=${ARTIFACT_DIR:=/tmp/artifacts} -SCREENSHOTS_DIR=gui_test_screenshots - -# https://ci-operator-configresolver-ui-ci.apps.ci.l2s4.p1.openshiftapps.com/help#env -OPENSHIFT_CI=${OPENSHIFT_CI:=false} - -if [ "$(basename "$(pwd)")" != "frontend" ]; then - echo "This script must be run from the frontend folder" - exit 1 -fi - -# Disable color codes in Cypress since they do not render well CI test logs. -# https://docs.cypress.io/guides/guides/continuous-integration.html#Colors -if [ "$OPENSHIFT_CI" = true ]; then - export NO_COLOR=1 -fi - -if [ ! -d node_modules ]; then - yarn install -fi - -function copyArtifacts { - if [ -d "$ARTIFACT_DIR" ] && [ -d "$SCREENSHOTS_DIR" ]; then - echo "Copying artifacts from $(pwd)..." - cp -r "$SCREENSHOTS_DIR" "${ARTIFACT_DIR}/gui_test_screenshots" - fi -} - -function generateReport { - yarn run cypress-postreport - if test -f ./packages/integration-tests/cypress-a11y-report.json; then - yarn cypress-a11y-report - fi -} -trap "copyArtifacts; generateReport" EXIT - -while getopts p:s:h:l:n: flag -do - case "${flag}" in - p) pkg=${OPTARG};; - s) spec=${OPTARG};; - h) headless=${OPTARG};; - n) nightly=${OPTARG};; - esac -done - -if [ $# -eq 0 ]; then - echo "Runs Cypress tests in Test Runner or headless mode" - echo "Usage: test-cypress [-p] [-s] [-h true] [-n true/false]" - echo " '-p ' may be 'console, 'olm', 'devconsole'" - echo " '-s ' is a file mask for spec test files, such as 'tests/monitoring/*'. Used only in headless mode when '-p' is specified." - echo " '-h true' runs Cypress in headless mode. When omitted, launches Cypress Test Runner" - echo " '-n true' runs the 'nightly' suite, all specs from selected packages in headless mode" - echo "Examples:" - echo " test-cypress.sh // displays this help text" - echo " test-cypress.sh -p console // opens Cypress Test Runner for console tests" - echo " test-cypress.sh -p olm // opens Cypress Test Runner for OLM tests" - echo " test-cypress.sh -p dev-console // opens Cypress Test Runner for Dev-Console tests" - echo " test-cypress.sh -p knative // opens Cypress Test Runner for knative tests" - echo " test-cypress.sh -h true // runs all packages in headless mode" - echo " test-cypress.sh -p olm -h true // runs OLM tests in headless mode" - echo " test-cypress.sh -p console -s 'tests/crud/*' -h true // runs console CRUD tests in headless mode" - echo " test-cypress.sh -n true // runs the whole nightly suite" - trap EXIT - exit; -fi - -if [ -n "${nightly-}" ] && [ -z "${pkg-}" ]; then - # do not fail fast, let all suites run - set +e - err=0 - trap 'err=1' ERR - - yarn run test-cypress-dev-console-nightly - yarn run test-cypress-helm-nightly - # yarn run test-cypress-knative-nightly - exit $err; -fi - -if [ -n "${headless-}" ] && [ -z "${pkg-}" ]; then - yarn run test-cypress-console-headless - yarn run test-cypress-dev-console-headless - yarn run test-cypress-olm-headless - yarn run test-cypress-helm-headless - # yarn run test-cypress-knative-headless - exit; -fi - -yarn_script="test-cypress" - -if [ -n "${pkg-}" ]; then - yarn_script="$yarn_script-$pkg" -fi - -if [ -n "${nightly-}" ]; then - yarn_script="$yarn_script-nightly" -elif [ -n "${headless-}" ]; then - yarn_script="$yarn_script-headless" -fi - -if [ -n "${spec-}" ] && [ -z "${nightly-}"]; then - yarn_script="$yarn_script --spec '$spec'" -fi - -yarn run $yarn_script diff --git a/test-prow-e2e-techpreview.sh b/test-prow-e2e-techpreview.sh deleted file mode 100755 index ab2412a123c..00000000000 --- a/test-prow-e2e-techpreview.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/usr/bin/env bash - -set -exuo pipefail diff --git a/test-prow-e2e.sh b/test-prow-e2e.sh deleted file mode 100755 index 5aba89af480..00000000000 --- a/test-prow-e2e.sh +++ /dev/null @@ -1,42 +0,0 @@ -#!/usr/bin/env bash - -set -exuo pipefail - -INSTALLER_DIR=${INSTALLER_DIR:=${ARTIFACT_DIR}/installer} - -# don't log kubeadmin-password -set +x -export BRIDGE_KUBEADMIN_PASSWORD="$(cat "${KUBEADMIN_PASSWORD_FILE:-${INSTALLER_DIR}/auth/kubeadmin-password}")" -set -x -export BRIDGE_BASE_ADDRESS="$(oc get consoles.config.openshift.io cluster -o jsonpath='{.status.consoleURL}')" - -./contrib/create-user.sh - -pushd frontend - -SCENARIO="${1:-e2e}" - -if [ "$SCENARIO" == "nightly-cypress" ]; then - PACKAGE="" - if [ $# -gt 1 ]; then - PACKAGE="-p $2" - fi - ./integration-tests/test-cypress.sh -n true $PACKAGE -elif [ "$SCENARIO" == "e2e" ] || [ "$SCENARIO" == "release" ]; then - ./integration-tests/test-cypress.sh -h true -elif [ "$SCENARIO" == "login" ]; then - ./integration-tests/test-cypress.sh -p console -s 'tests/app/auth-multiuser-login.cy.ts' -h true -elif [ "$SCENARIO" == "olmFull" ]; then - ./integration-tests/test-cypress.sh -p olm -h true -elif [ "$SCENARIO" == "dev-console" ]; then - ./integration-tests/test-cypress.sh -p dev-console -h true -elif [ "$SCENARIO" == "pipelines" ]; then - ./integration-tests/test-cypress.sh -p pipelines -h true -# Disabled: knative-ci.feature failing in CI (OCPBUGS-82512) -# elif [ "$SCENARIO" == "knative" ]; then -# ./integration-tests/test-cypress.sh -p knative -h true -fi - -env NO_SANDBOX=true yarn test-puppeteer-csp - -popd diff --git a/test-prow-playwright-e2e.sh b/test-prow-playwright-e2e.sh index ffded4ce090..98313a76f63 100755 --- a/test-prow-playwright-e2e.sh +++ b/test-prow-playwright-e2e.sh @@ -1,10 +1,10 @@ #!/usr/bin/env bash # # Prow / CI entrypoint for Playwright E2E against a live OpenShift cluster console. -# Mirrors test-prow-e2e.sh: kubeadmin password, BRIDGE_BASE_ADDRESS from the cluster, -# contrib/create-user.sh, then tests under frontend/, and the same CSP check as Cypress Prow. +# Sets up kubeadmin password, BRIDGE_BASE_ADDRESS from the cluster, +# contrib/create-user.sh, then tests under frontend/, and the CSP check. # -# Run from the openshift/console repository root (same as test-prow-e2e.sh). +# Run from the openshift/console repository root. # # Usage: # ./test-prow-playwright-e2e.sh [e2e|release|smoke] [arguments passed to: playwright test ...] @@ -14,7 +14,7 @@ # smoke — Playwright smoke project (--project=smoke) # # Environment (typical Prow / installer): -# ARTIFACT_DIR, INSTALLER_DIR, KUBEADMIN_PASSWORD_FILE same as test-prow-e2e.sh +# ARTIFACT_DIR, INSTALLER_DIR, KUBEADMIN_PASSWORD_FILE # set -exuo pipefail From 453e4e0adc626e7020deecc70b105a658854bf42 Mon Sep 17 00:00:00 2001 From: Sahil Shah Date: Wed, 29 Jul 2026 15:10:13 -0400 Subject: [PATCH 2/4] CONSOLE-5232: Remove all Cypress references from the codebase Complete the Cypress-to-Playwright migration by removing all remaining Cypress test infrastructure: - Delete all integration-tests/ directories (7 packages: integration-tests, OLM, dev-console, helm-plugin, knative-plugin, topology, container-security) - Remove Cypress deps and scripts from frontend/package.json - Remove gherkin-lint from test-frontend.sh and package.json - Remove CYPRESS_INSTALL_BINARY=0 from Dockerfile - Remove Cypress system deps from Dockerfile.builder - Update README.md, TESTING.md, INTERNATIONALIZATION.md, AGENTS.md - Clean up .gitignore Cypress artifact patterns - Regenerate yarn.lock Co-Authored-By: Claude Opus 4.6 (1M context) --- .gitignore | 2 - AGENTS.md | 6 +- Dockerfile | 3 +- Dockerfile.builder | 4 +- INTERNATIONALIZATION.md | 4 +- README.md | 63 +- TESTING.md | 32 +- frontend/package.json | 38 +- .../console-shared/src/utils/test-errors.ts | 4 +- .../integration-tests/bad-pods.ts | 86 - .../integration-tests/.gherkin-lintrc | 82 - .../PULL_REQUEST_TEMPLATE/qe-automation-pr.md | 56 - .../dev-console/integration-tests/README.md | 242 - .../integration-tests/cypress.config.js | 14 - .../.github/PULL_REQUEST_TEMPLATE/qe-pr.md | 23 - .../features/BestPractices.md | 73 - .../features/addFlow/add-page.feature | 91 - .../addFlow/catalog-all-namespaces.feature | 21 - .../addFlow/create-from-catalog.feature | 43 - .../create-from-container-image.feature | 80 - .../addFlow/create-from-database.feature | 18 - .../addFlow/create-from-devfile.feature | 74 - .../addFlow/create-from-docker-file.feature | 58 - .../features/addFlow/create-from-git.feature | 286 - .../features/addFlow/create-from-yaml.feature | 24 - .../addFlow/create-operator-backed.feature | 46 - .../addFlow/export-application.feature | 32 - .../addFlow/helm-chart-repositories.feature | 64 - .../features/addFlow/in-cluster-gitea.feature | 42 - .../features/addFlow/quick-search-add.feature | 67 - .../addFlow/resource-quota-warning.feature | 25 - .../features/addFlow/sharing.feature | 15 - .../addFlow/software-catalog-details.feature | 99 - .../features/addFlow/upload-jar-file.feature | 158 - .../build-config/edit-build-config.feature | 113 - .../codeready-workspaces/crw-basic.feature | 19 - .../open-app-in-crw.feature | 16 - .../features/common/operators.feature | 201 - .../features/e2e/add-flow-ci.feature | 169 - .../e2e/enable-dev-perspective-ci.feature | 19 - .../features/e2e/helm.feature | 20 - .../e2e/knative-service-workload.feature | 34 - ...getting-started-to-dev-perspective.feature | 12 - ...tting-started-tour-dev-perspective.feature | 61 - .../sample-card-add-page.feature | 64 - ...ssociate-pipeline-with-application.feature | 120 - .../create-serverless-application.feature | 154 - ...-hub-installation-with-helm-charts.feature | 117 - .../getting-started-serverless.feature | 132 - .../filter-quick-starts-catalog.feature | 50 - .../quick-start-access-code-snippet.feature | 73 - .../quick-start-devperspective.feature | 92 - .../quick-starts-cluster-overview.feature | 41 - .../quickstart-sidepanel-hints.feature | 70 - ...add-health-checks-topology-sidebar.feature | 103 - .../configure-pinned-resources.feature | 35 - .../features/project/project-access.feature | 39 - .../service-mesh-console-links-admin.feature | 55 - ...ervice-mesh-console-links-nonadmin.feature | 55 - .../user-preferences-dev-perspective.feature | 133 - .../virtulization/actions-on-vm.feature | 91 - .../create-vm-from-template.feature | 23 - .../virtual-machines-page.feature | 40 - .../virtual-machines-template.feature | 29 - .../project-vulnerability.feature | 61 - .../integration-tests/package.json | 19 - .../integration-tests/reporter-config.json | 14 - .../integration-tests/support/commands/app.ts | 154 - .../support/commands/hooks.ts | 53 - .../support/commands/index.ts | 8 - .../support/constants/add.ts | 89 - .../support/constants/global.ts | 102 - .../support/constants/helm.ts | 7 - .../support/constants/index.ts | 8 - .../support/constants/monitoring.ts | 8 - .../support/constants/pageTitle.ts | 67 - .../constants/staticText/global-text.ts | 22 - .../support/constants/staticText/index.ts | 2 - .../support/constants/topology.ts | 73 - .../support/pageObjects/add-flow-po.ts | 444 -- .../support/pageObjects/addHealthChecks-po.ts | 47 - .../support/pageObjects/build-po.ts | 22 - .../support/pageObjects/buildConfig-po.ts | 16 - .../support/pageObjects/customization.ts | 28 - .../support/pageObjects/gettingStarted-po.ts | 9 - .../support/pageObjects/global-po.ts | 55 - .../support/pageObjects/helm-po.ts | 47 - .../support/pageObjects/index.ts | 11 - .../support/pageObjects/monitoring-po.ts | 12 - .../support/pageObjects/operators-po.ts | 77 - .../support/pageObjects/quickStarts-po.ts | 63 - .../support/pageObjects/userPreference-po.ts | 48 - .../support/pageObjects/vulnerability-po.ts | 15 - .../support/pages/add-flow/add-page.ts | 215 - .../pages/add-flow/add-quick-search.ts | 12 - .../support/pages/add-flow/catalog-page.ts | 251 - .../support/pages/add-flow/channel-page.ts | 24 - .../pages/add-flow/container-image-page.ts | 79 - .../support/pages/add-flow/dev-file-page.ts | 67 - .../support/pages/add-flow/dockerfile-page.ts | 8 - .../support/pages/add-flow/event-sink-page.ts | 28 - .../pages/add-flow/event-source-page.ts | 143 - .../support/pages/add-flow/events-page.ts | 40 - .../support/pages/add-flow/git-page.ts | 476 -- .../pages/add-flow/helm-chart-repository.ts | 29 - .../support/pages/add-flow/index.ts | 13 - .../support/pages/add-flow/samples-page.ts | 33 - .../pages/add-flow/upload-jar-file-page.ts | 9 - .../support/pages/add-flow/yaml-page.ts | 4 - .../support/pages/addHealthChecks-page.ts | 40 - .../integration-tests/support/pages/app.ts | 447 -- .../support/pages/crw/authorizeAccess.ts | 5 - .../support/pages/crw/keycloak.ts | 16 - .../pages/devworspace/devworkspacePage.ts | 5 - .../functions/checkDeveloperPerspective.ts | 64 - .../pages/functions/checkOperatorHub.ts | 11 - .../pages/functions/checkOperatorStatus.ts | 205 - .../support/pages/functions/createBroker.ts | 40 - .../support/pages/functions/createChannel.ts | 15 - .../pages/functions/createEventSink.ts | 22 - .../pages/functions/createGitWorkload.ts | 166 - .../functions/createHelmChartFromAddPage.ts | 22 - .../pages/functions/createHelmRelease.ts | 24 - .../pages/functions/createOperatorBacked.ts | 35 - .../support/pages/functions/index.ts | 9 - .../support/pages/functions/installCRW.ts | 41 - .../functions/installOperatorOnCluster.ts | 252 - .../installOperatorOnClusterUsingCLI.ts | 227 - .../pages/functions/knativeSubscriptions.ts | 153 - .../functions/shipwrightSubscriptions.ts | 74 - .../support/pages/importYaml.ts | 15 - .../integration-tests/support/pages/index.ts | 11 - .../integration-tests/support/pages/modal.ts | 81 - .../support/pages/monitoring/index.ts | 2 - .../pages/monitoring/monitoring-page.ts | 33 - .../support/pages/operators-page.ts | 225 - .../support/pages/quickStartsPage.ts | 110 - .../addFlow/create-from-catalog.ts | 103 - .../addFlow/create-from-container-image.ts | 122 - .../addFlow/create-from-databse.ts | 16 - .../addFlow/create-from-devfile.ts | 50 - .../addFlow/create-from-docker-file.ts | 45 - .../addFlow/create-from-git.ts | 290 - .../addFlow/create-from-gitea.ts | 46 - .../addFlow/create-from-operator-backed.ts | 104 - .../addFlow/create-from-sample.ts | 19 - .../addFlow/create-from-sidebar.ts | 10 - .../addFlow/create-from-yaml.ts | 27 - .../addFlow/export-application.ts | 84 - .../addFlow/helm-chart-repositories.ts | 98 - .../step-definitions/addFlow/page-details.ts | 182 - .../addFlow/quick-search-add.ts | 88 - .../addFlow/resource-quota-warning.ts | 70 - .../step-definitions/addFlow/sharing.ts | 18 - .../addFlow/software-catalog-details.ts | 46 - .../addFlow/upload-JAR-file.ts | 56 - .../build-config/edit-build-config.ts | 196 - .../step-definitions/common/addFlow.ts | 173 - .../support/step-definitions/common/common.ts | 94 - .../step-definitions/common/masthead.ts | 9 - .../step-definitions/common/monitoring.ts | 23 - .../step-definitions/common/operatorParam.ts | 30 - .../step-definitions/common/operators.ts | 42 - .../common/project-creation.ts | 33 - .../step-definitions/common/topology.ts | 43 - .../consoleConfiguration/pinned-resources.ts | 9 - .../support/step-definitions/crw/crw-basic.ts | 44 - .../getting-started-tour-dev-perspective.ts | 65 - .../getting-started/sample-card-add-page.ts | 153 - ...loper-hub-installation-with-helm-charts.ts | 237 - .../getting-started-serverless.ts | 243 - .../add-health-checks-topology-sidebar.ts | 61 - .../monitoring/topology-sidebar-actions.ts | 163 - .../filter-quick-starts-catalog.ts | 91 - .../quick-start-access-code-snippet.ts | 93 - .../quck-starts/quick-start-devperspective.ts | 161 - .../quick-starts-cluster-overview.ts | 59 - .../topology/create-workloads.ts | 48 - .../user-preferences-dev-perspective.ts | 219 - .../vulnerability/project-vulnerability.ts | 116 - .../testData/add-flow/git-dc.yaml | 18 - .../testData/add-flow/git-page.json | 12 - .../testData/add-flow/gitea-setup.yaml | 49 - .../testData/git-import-flow.data.ts | 15 - .../git-import/cakephp-ex/contents.json | 355 -- .../testData/git-import/cakephp-ex/repo.json | 211 - .../git-import/dancer-ex/contents.json | 211 - .../testData/git-import/dancer-ex/repo.json | 124 - .../git-import/devfile-sample/contents.json | 162 - .../devfile-sample/devFileResources.json | 138 - .../git-import/devfile-sample/package.json | 18 - .../git-import/devfile-sample/repo.json | 129 - .../git-import/django-ex/contents.json | 147 - .../testData/git-import/django-ex/repo.json | 124 - .../flask-dockerfile-example/contents.json | 114 - .../flask-dockerfile-example/repo.json | 109 - .../git-import/golang-ex/contents.json | 35 - .../testData/git-import/golang-ex/repo.json | 124 - .../hello-func-node-env/contents.json | 114 - .../git-import/hello-func-node-env/func.json | 18 - .../hello-func-node-env/package.json | 18 - .../git-import/hello-func-node-env/repo.json | 105 - .../git-import/hello-func-node/contents.json | 114 - .../git-import/hello-func-node/func.json | 18 - .../git-import/hello-func-node/package.json | 18 - .../git-import/hello-func-node/repo.json | 105 - .../hello-func-quarkus/contents.json | 130 - .../git-import/hello-func-quarkus/func.json | 18 - .../git-import/hello-func-quarkus/repo.json | 105 - .../contents.json | 162 - .../kn-func-typescript-cloudevents/func.json | 18 - .../package.json | 18 - .../kn-func-typescript-cloudevents/repo.json | 125 - .../kn-func-typescript-http/contents.json | 162 - .../kn-func-typescript-http/func.json | 18 - .../kn-func-typescript-http/package.json | 18 - .../kn-func-typescript-http/repo.json | 125 - .../git-import/nodejs-ex/contents.json | 130 - .../git-import/nodejs-ex/package.json | 18 - .../testData/git-import/nodejs-ex/repo.json | 323 - .../testData/git-import/repos.ts | 77 - .../testData/git-import/ruby-ex/contents.json | 67 - .../testData/git-import/ruby-ex/repo.json | 124 - .../s2i-dotnetcore-ex/contents.json | 114 - .../git-import/s2i-dotnetcore-ex/repo.json | 129 - .../serverless-func-repo/contents.json | 114 - .../git-import/serverless-func-repo/func.json | 18 - .../serverless-func-repo/package.json | 18 - .../git-import/serverless-func-repo/repo.json | 105 - .../git-import/spring-boot/contents.json | 371 -- .../testData/git-import/spring-boot/repo.json | 133 - .../testData/krew-install.sh | 22 - .../pipelinesOperatorSubscription.yaml | 10 - .../quick-start/copy-execute-demo.yaml | 46 - .../resource-quota/resource-quota.yaml | 15 - .../create-quarkus-deployment.yaml | 21 - ...ith-strategy-docker-source-dockerfile.yaml | 46 - ...onfig-with-strategy-docker-source-git.yaml | 46 - ...ig-with-strategy-source-source-binary.yaml | 91 - .../testData/yamls/create-cronjob.yaml | 19 - .../testData/yamls/create-job.yaml | 20 - .../testData/yamls/create-pod.yaml | 13 - .../testData/yamls/create-statefulsets.yaml | 36 - .../monitoring/cluster-monitoring-config.yaml | 8 - .../yamls/monitoring/prometheous-example.yaml | 76 - .../workload-monitoring-config.yaml | 9 - .../createHyperConverged.yaml | 7 - .../installVirtualizationOperator.yaml | 25 - .../dev-ws-custom-idling-config.yaml | 9 - .../yamls/web-terminal/web-terminal.yaml | 26 - .../integration-tests/tsconfig.json | 15 - .../helm-plugin/integration-tests/README.md | 68 - .../integration-tests/cypress.config.js | 14 - .../features/BestPractices.md | 3 - .../features/helm-release.feature | 122 - ...ions-on-helm-release-after-upgrade.feature | 40 - .../helm/actions-on-helm-release.feature | 50 - .../features/helm/helm-compatibility.feature | 31 - .../features/helm/helm-feature-flag.feature | 33 - .../helm/helm-installation-view.feature | 49 - .../features/helm/helm-navigation.feature | 116 - .../features/helm/helm-page-tabs.feature | 85 - .../features/helm/install-helm-chart.feature | 138 - .../features/helm/install-url-chart.feature | 62 - .../helm/topology-helm-release.feature | 58 - .../integration-tests/package.json | 14 - .../integration-tests/reporter-config.json | 14 - .../support/commands/hooks.ts | 13 - .../support/commands/index.ts | 9 - .../support/constants/index.ts | 3 - .../support/constants/navigation.ts | 9 - .../constants/static-text/helm-text.ts | 3 - .../support/pages/helm/helm-details-page.ts | 69 - .../support/pages/helm/helm-page.ts | 183 - .../support/pages/helm/index.ts | 6 - .../pages/helm/rollBack-helm-release-page.ts | 8 - .../pages/helm/upgrade-helm-release-page.ts | 21 - .../pages/helm/url-chart-install-page.ts | 30 - .../integration-tests/support/pages/index.ts | 2 - .../support/step-definitions/common/common.ts | 118 - .../actions-on-helm-release-after-upgrade.ts | 9 - .../helm/helm-compatibility.ts | 22 - .../helm/helm-installation-view.ts | 54 - .../step-definitions/helm/helm-navigation.ts | 370 -- .../step-definitions/helm/helm-release.ts | 159 - .../support/step-definitions/helm/helm.ts | 124 - .../helm/install-url-chart.ts | 51 - .../namespaced-helm-chart-repository.yaml | 8 - .../test-data/namespaced-helm-crd.yaml | 130 - .../test-data/red-hat-helm-charts.yaml | 9 - .../integration-tests/tsconfig.json | 11 - frontend/packages/integration-tests/OWNERS | 2 - frontend/packages/integration-tests/README.md | 42 - .../cypress-common-config.js | 187 - .../integration-tests/cypress.config.js | 9 - .../fixtures/asciisecret.txt | 1 - .../fixtures/binarysecret.bin | Bin 497 -> 0 bytes .../integration-tests/fixtures/example.json | 5 - .../fixtures/unicodesecret.utf8 | 1 - .../integration-tests/mocks/snapshot.ts | 112 - .../integration-tests/mocks/storage-class.ts | 316 - .../mocks/volume-attributes-class.ts | 71 - .../packages/integration-tests/package.json | 10 - .../integration-tests/reporter-config.json | 14 - .../integration-tests/support/README.md | 15 - .../integration-tests/support/a11y.ts | 84 - .../integration-tests/support/admin.ts | 34 - .../integration-tests/support/i18n.ts | 72 - .../integration-tests/support/index.ts | 121 - .../integration-tests/support/login.ts | 87 - .../packages/integration-tests/support/nav.ts | 23 - .../integration-tests/support/project.ts | 59 - .../integration-tests/support/resources.ts | 52 - .../integration-tests/support/selectors.ts | 99 - .../stub-machine-config-pool-watch-ws.ts | 42 - ...ission-webhook-warning-notifications.cy.ts | 167 - .../tests/app/auth-multiuser-login.cy.ts | 89 - .../tests/app/debug-pod.cy.ts | 113 - .../tests/app/deployments.cy.ts | 55 - .../tests/app/machine-config.cy.ts | 68 - .../tests/app/start-job-from-cronjob.cy.ts | 76 - .../tests/crud/secrets/add-to-workload.cy.ts | 116 - .../tests/crud/secrets/image-pull.cy.ts | 211 - .../tests/crud/secrets/key-value.cy.ts | 218 - .../tests/crud/secrets/source.cy.ts | 113 - .../tests/crud/secrets/webhook.cy.ts | 66 - .../tests/storage/clone.cy.ts | 113 - .../tests/storage/create-storage-class.cy.ts | 26 - .../tests/storage/snapshot.cy.ts | 109 - .../storage/volume-attributes-class.cy.ts | 184 - .../packages/integration-tests/tsconfig.json | 7 - .../integration-tests/views/common.ts | 23 - .../integration-tests/views/details-page.ts | 32 - .../integration-tests/views/environment.ts | 57 - .../packages/integration-tests/views/form.ts | 2 - .../integration-tests/views/labels.ts | 6 - .../integration-tests/views/list-page.ts | 172 - .../integration-tests/views/masthead.ts | 26 - .../packages/integration-tests/views/modal.ts | 15 - .../packages/integration-tests/views/nav.ts | 155 - .../views/resource-sidebar.ts | 10 - .../integration-tests/views/secret.ts | 96 - .../views/storage/create-storage-class.ts | 108 - .../views/storage/snapshot.ts | 8 - .../integration-tests/views/warning-modal.ts | 25 - .../integration-tests/views/yaml-editor.ts | 104 - .../integration-tests/README.md | 100 - .../integration-tests/cypress.config.js | 14 - .../features/BestPractices.md | 3 - .../eventing-page-admin.feature | 79 - .../filters-serving-eventing-admin.feature | 80 - .../serverless-admin-empty-state.feature | 28 - .../serving-page-admin.feature | 49 - .../features/e2e/knative-ci.feature | 266 - .../eventing/actions-on-event-sources.feature | 40 - .../eventing/create-event-sink.feature | 81 - .../eventing/create-event-sources.feature | 143 - .../event-sources-installation-view.feature | 55 - .../event-sources-sink-to-uri.feature | 102 - .../eventing/eventing-broker-actions.feature | 126 - .../eventing/eventing-broker-trigger.feature | 91 - .../features/eventing/eventing-camelk.feature | 95 - .../eventing-channel-subscription.feature | 88 - .../eventing/eventing-channel.feature | 172 - .../eventing-create-sink-broker.feature | 60 - .../eventing-events-subscription.feature | 30 - .../eventing/kafka-event-sink.feature | 75 - .../kafka-event-source-actions.feature | 27 - .../eventing/kafka-event-source.feature | 58 - ...ction-to-kafka-connection-instance.feature | 58 - .../managed-services-kafka-connection.feature | 100 - .../functions/functions-navigation.feature | 35 - .../actions-on-knative-revision.feature | 127 - .../actions-on-knative-service.feature | 178 - ...n-serverless-operator-installation.feature | 70 - ...om-deployment-or-deployment-config.feature | 90 - .../create-knative-workload.feature | 126 - .../serverless/domain-mapping.feature | 69 - .../serverless/serverless-function.feature | 159 - ...ar-of-knative-revision-and-service.feature | 75 - .../integration-tests/package.json | 14 - .../integration-tests/reporter-config.json | 14 - .../support/commands/hooks.ts | 46 - .../support/commands/index.ts | 9 - .../support/pageObjects/functions-po.ts | 10 - .../support/pageObjects/global-po.ts | 280 - .../support/pageObjects/index.ts | 2 - .../pages/admin-perspective/eventing-page.ts | 163 - .../support/pages/dev-perspective/common.ts | 20 - .../pages/dev-perspective/eventing-page.ts | 77 - .../test-serverless-function-page.ts | 22 - .../support/pages/functions/functions-page.ts | 34 - .../integration-tests/support/pages/index.ts | 2 - .../admin-perspective/eventing-page-admin.ts | 62 - .../filters-serving-eventing-admin.ts | 176 - .../serverless-admin-empty-state.ts | 49 - .../admin-perspective/serving-page-admin.ts | 80 - .../step-definitions/common/addFlow.ts | 107 - .../support/step-definitions/common/common.ts | 198 - .../functions/topology-admin-perspective.ts | 8 - .../step-definitions/common/operators.ts | 52 - .../step-definitions/common/topology.ts | 39 - .../eventing/actions-on-event-sources.ts | 112 - .../eventing/create-event-sink.ts | 77 - .../eventing/create-event-sources.ts | 352 -- .../event-sources-installation-view.ts | 97 - .../eventing/event-sources-sink-to-uri.ts | 83 - .../eventing/eventing-broker-actions.ts | 239 - .../eventing/eventing-broker-trigger.ts | 112 - .../eventing/eventing-camelk.ts | 42 - .../eventing/eventing-channel-subscription.ts | 83 - .../eventing/eventing-channel.ts | 272 - .../eventing/eventing-create-sink-broker.ts | 108 - .../eventing/eventing-events-subscription.ts | 125 - .../eventing/kafka-event-sink.ts | 144 - .../eventing/kafka-event-source.ts | 108 - .../eventing/kafka-souce-connection.ts | 121 - .../functions/functions-navigation.ts | 93 - .../serverless/actions-on-knative-revision.ts | 341 -- .../serverless/actions-on-knative-service.ts | 437 -- ...lay-on-serverless-operator-installation.ts | 67 - .../serverless/create-apache-camel.ts | 11 - ...ce-from-deployment-or-deployment-config.ts | 226 - .../serverless/create-knative-workload.ts | 144 - .../serverless/create-serverless-function.ts | 15 - .../serverless/domain-mapping.ts | 121 - .../serverless/serverless-function.ts | 73 - ...ide-bar-of-knative-revision-and-service.ts | 117 - .../serverless/test-serverless-function.ts | 81 - .../testData/createKafkaConnection.yaml | 5 - .../support/testData/createPingSource.yaml | 21 - .../support/testData/createSecret.yaml | 8 - .../createBootStrap-CR.yaml | 20 - .../installation-yamls/createBroker.yaml | 4 - .../createKnativeEventing-CR.yaml | 6 - .../createKnativeKafka-CR.yaml | 11 - .../createKnativeService.yaml | 9 - .../createKnativeServing-CR.yaml | 6 - .../installServerlessOperator.yaml | 22 - .../serverless-function-node-pipeline.yaml | 447 -- .../serverless-functions-samples.yaml | 325 - .../testData/knative-eventing.yaml | 11 - .../testData/knative-kafka.yaml | 19 - .../testData/knative-serving.yaml | 11 - .../redhatCamelkOperatorSubscription.yaml | 12 - .../serverlessOperatorSubscription.yaml | 27 - .../request-body-cloudevent.json | 3 - .../test-serverless-fn/request-body-http.json | 3 - .../response-body-cloudevent.json | 3 - .../response-body-http.json | 3 - .../integration-tests/tsconfig.json | 8 - .../views/serverless-service.yaml | 5 - .../integration-tests/cypress.config.js | 9 - .../integration-tests/mocks/index.tsx | 350 -- .../integration-tests/package.json | 10 - .../integration-tests/reporter-config.json | 14 - .../tests/catalog-source-details.cy.ts | 107 - .../tests/deprecated-operator-warnings.cy.ts | 285 - .../integration-tests/tests/descriptors.cy.ts | 136 - .../tests/edit-default-sources.cy.ts | 46 - .../tests/operator-hub.cy.ts | 89 - .../tests/operator-install-global.cy.ts | 81 - .../operator-install-single-namespace.cy.ts | 100 - .../tests/operator-uninstall.cy.ts | 115 - .../tests/packageserver-tabs.cy.ts | 101 - .../integration-tests/tsconfig.json | 9 - .../integration-tests/views/operator.view.ts | 242 - .../support/page-objects/chart-area-po.ts | 48 - .../page-objects/export-applications-po.ts | 38 - .../support/page-objects/hpa-po.ts | 27 - .../page-objects/topology-add-options-po.ts | 3 - .../support/page-objects/topology-po.ts | 331 -- .../export-application/export-applications.ts | 10 - .../support/pages/functions/add-secret.ts | 55 - .../pages/functions/chart-functions.ts | 117 - .../support/pages/topology/index.ts | 5 - .../pages/topology/topology-actions-page.ts | 180 - .../topology/topology-edit-deployment.ts | 118 - .../pages/topology/topology-helper-page.ts | 34 - .../support/pages/topology/topology-page.ts | 524 -- .../pages/topology/topology-side-pane-page.ts | 144 - frontend/setup-tests.js | 2 +- frontend/yarn.lock | 5211 +---------------- test-frontend.sh | 2 - 484 files changed, 355 insertions(+), 42938 deletions(-) delete mode 100644 frontend/packages/container-security/integration-tests/bad-pods.ts delete mode 100644 frontend/packages/dev-console/integration-tests/.gherkin-lintrc delete mode 100644 frontend/packages/dev-console/integration-tests/.github/PULL_REQUEST_TEMPLATE/qe-automation-pr.md delete mode 100644 frontend/packages/dev-console/integration-tests/README.md delete mode 100644 frontend/packages/dev-console/integration-tests/cypress.config.js delete mode 100644 frontend/packages/dev-console/integration-tests/features/.github/PULL_REQUEST_TEMPLATE/qe-pr.md delete mode 100644 frontend/packages/dev-console/integration-tests/features/BestPractices.md delete mode 100644 frontend/packages/dev-console/integration-tests/features/addFlow/add-page.feature delete mode 100644 frontend/packages/dev-console/integration-tests/features/addFlow/catalog-all-namespaces.feature delete mode 100644 frontend/packages/dev-console/integration-tests/features/addFlow/create-from-catalog.feature delete mode 100644 frontend/packages/dev-console/integration-tests/features/addFlow/create-from-container-image.feature delete mode 100644 frontend/packages/dev-console/integration-tests/features/addFlow/create-from-database.feature delete mode 100644 frontend/packages/dev-console/integration-tests/features/addFlow/create-from-devfile.feature delete mode 100644 frontend/packages/dev-console/integration-tests/features/addFlow/create-from-docker-file.feature delete mode 100644 frontend/packages/dev-console/integration-tests/features/addFlow/create-from-git.feature delete mode 100644 frontend/packages/dev-console/integration-tests/features/addFlow/create-from-yaml.feature delete mode 100644 frontend/packages/dev-console/integration-tests/features/addFlow/create-operator-backed.feature delete mode 100644 frontend/packages/dev-console/integration-tests/features/addFlow/export-application.feature delete mode 100644 frontend/packages/dev-console/integration-tests/features/addFlow/helm-chart-repositories.feature delete mode 100644 frontend/packages/dev-console/integration-tests/features/addFlow/in-cluster-gitea.feature delete mode 100644 frontend/packages/dev-console/integration-tests/features/addFlow/quick-search-add.feature delete mode 100644 frontend/packages/dev-console/integration-tests/features/addFlow/resource-quota-warning.feature delete mode 100644 frontend/packages/dev-console/integration-tests/features/addFlow/sharing.feature delete mode 100644 frontend/packages/dev-console/integration-tests/features/addFlow/software-catalog-details.feature delete mode 100644 frontend/packages/dev-console/integration-tests/features/addFlow/upload-jar-file.feature delete mode 100644 frontend/packages/dev-console/integration-tests/features/build-config/edit-build-config.feature delete mode 100644 frontend/packages/dev-console/integration-tests/features/codeready-workspaces/crw-basic.feature delete mode 100644 frontend/packages/dev-console/integration-tests/features/codeready-workspaces/open-app-in-crw.feature delete mode 100644 frontend/packages/dev-console/integration-tests/features/common/operators.feature delete mode 100644 frontend/packages/dev-console/integration-tests/features/e2e/add-flow-ci.feature delete mode 100644 frontend/packages/dev-console/integration-tests/features/e2e/enable-dev-perspective-ci.feature delete mode 100644 frontend/packages/dev-console/integration-tests/features/e2e/helm.feature delete mode 100644 frontend/packages/dev-console/integration-tests/features/e2e/knative-service-workload.feature delete mode 100644 frontend/packages/dev-console/integration-tests/features/getting-started/getting-started-to-dev-perspective.feature delete mode 100644 frontend/packages/dev-console/integration-tests/features/getting-started/getting-started-tour-dev-perspective.feature delete mode 100644 frontend/packages/dev-console/integration-tests/features/getting-started/sample-card-add-page.feature delete mode 100644 frontend/packages/dev-console/integration-tests/features/guided-tour/associate-pipeline-with-application.feature delete mode 100644 frontend/packages/dev-console/integration-tests/features/guided-tour/create-serverless-application.feature delete mode 100644 frontend/packages/dev-console/integration-tests/features/guided-tour/developer-hub-installation-with-helm-charts.feature delete mode 100644 frontend/packages/dev-console/integration-tests/features/guided-tour/getting-started-serverless.feature delete mode 100644 frontend/packages/dev-console/integration-tests/features/guided-tour/quick-starts/filter-quick-starts-catalog.feature delete mode 100644 frontend/packages/dev-console/integration-tests/features/guided-tour/quick-starts/quick-start-access-code-snippet.feature delete mode 100644 frontend/packages/dev-console/integration-tests/features/guided-tour/quick-starts/quick-start-devperspective.feature delete mode 100644 frontend/packages/dev-console/integration-tests/features/guided-tour/quick-starts/quick-starts-cluster-overview.feature delete mode 100644 frontend/packages/dev-console/integration-tests/features/guided-tour/quick-starts/quickstart-sidepanel-hints.feature delete mode 100644 frontend/packages/dev-console/integration-tests/features/healthChecks/add-health-checks-topology-sidebar.feature delete mode 100644 frontend/packages/dev-console/integration-tests/features/perspectives/configure-pinned-resources.feature delete mode 100644 frontend/packages/dev-console/integration-tests/features/project/project-access.feature delete mode 100644 frontend/packages/dev-console/integration-tests/features/service-mesh/service-mesh-console-links-admin.feature delete mode 100644 frontend/packages/dev-console/integration-tests/features/service-mesh/service-mesh-console-links-nonadmin.feature delete mode 100644 frontend/packages/dev-console/integration-tests/features/user-preferences/user-preferences-dev-perspective.feature delete mode 100644 frontend/packages/dev-console/integration-tests/features/virtulization/actions-on-vm.feature delete mode 100644 frontend/packages/dev-console/integration-tests/features/virtulization/create-vm-from-template.feature delete mode 100644 frontend/packages/dev-console/integration-tests/features/virtulization/virtual-machines-page.feature delete mode 100644 frontend/packages/dev-console/integration-tests/features/virtulization/virtual-machines-template.feature delete mode 100644 frontend/packages/dev-console/integration-tests/features/vulnerability/project-vulnerability.feature delete mode 100644 frontend/packages/dev-console/integration-tests/package.json delete mode 100644 frontend/packages/dev-console/integration-tests/reporter-config.json delete mode 100644 frontend/packages/dev-console/integration-tests/support/commands/app.ts delete mode 100644 frontend/packages/dev-console/integration-tests/support/commands/hooks.ts delete mode 100644 frontend/packages/dev-console/integration-tests/support/commands/index.ts delete mode 100644 frontend/packages/dev-console/integration-tests/support/constants/add.ts delete mode 100644 frontend/packages/dev-console/integration-tests/support/constants/global.ts delete mode 100644 frontend/packages/dev-console/integration-tests/support/constants/helm.ts delete mode 100644 frontend/packages/dev-console/integration-tests/support/constants/index.ts delete mode 100644 frontend/packages/dev-console/integration-tests/support/constants/monitoring.ts delete mode 100644 frontend/packages/dev-console/integration-tests/support/constants/pageTitle.ts delete mode 100644 frontend/packages/dev-console/integration-tests/support/constants/staticText/global-text.ts delete mode 100644 frontend/packages/dev-console/integration-tests/support/constants/staticText/index.ts delete mode 100644 frontend/packages/dev-console/integration-tests/support/constants/topology.ts delete mode 100644 frontend/packages/dev-console/integration-tests/support/pageObjects/add-flow-po.ts delete mode 100644 frontend/packages/dev-console/integration-tests/support/pageObjects/addHealthChecks-po.ts delete mode 100644 frontend/packages/dev-console/integration-tests/support/pageObjects/build-po.ts delete mode 100644 frontend/packages/dev-console/integration-tests/support/pageObjects/buildConfig-po.ts delete mode 100644 frontend/packages/dev-console/integration-tests/support/pageObjects/customization.ts delete mode 100644 frontend/packages/dev-console/integration-tests/support/pageObjects/gettingStarted-po.ts delete mode 100644 frontend/packages/dev-console/integration-tests/support/pageObjects/global-po.ts delete mode 100644 frontend/packages/dev-console/integration-tests/support/pageObjects/helm-po.ts delete mode 100644 frontend/packages/dev-console/integration-tests/support/pageObjects/index.ts delete mode 100644 frontend/packages/dev-console/integration-tests/support/pageObjects/monitoring-po.ts delete mode 100644 frontend/packages/dev-console/integration-tests/support/pageObjects/operators-po.ts delete mode 100644 frontend/packages/dev-console/integration-tests/support/pageObjects/quickStarts-po.ts delete mode 100644 frontend/packages/dev-console/integration-tests/support/pageObjects/userPreference-po.ts delete mode 100644 frontend/packages/dev-console/integration-tests/support/pageObjects/vulnerability-po.ts delete mode 100644 frontend/packages/dev-console/integration-tests/support/pages/add-flow/add-page.ts delete mode 100644 frontend/packages/dev-console/integration-tests/support/pages/add-flow/add-quick-search.ts delete mode 100644 frontend/packages/dev-console/integration-tests/support/pages/add-flow/catalog-page.ts delete mode 100644 frontend/packages/dev-console/integration-tests/support/pages/add-flow/channel-page.ts delete mode 100644 frontend/packages/dev-console/integration-tests/support/pages/add-flow/container-image-page.ts delete mode 100644 frontend/packages/dev-console/integration-tests/support/pages/add-flow/dev-file-page.ts delete mode 100644 frontend/packages/dev-console/integration-tests/support/pages/add-flow/dockerfile-page.ts delete mode 100644 frontend/packages/dev-console/integration-tests/support/pages/add-flow/event-sink-page.ts delete mode 100644 frontend/packages/dev-console/integration-tests/support/pages/add-flow/event-source-page.ts delete mode 100644 frontend/packages/dev-console/integration-tests/support/pages/add-flow/events-page.ts delete mode 100644 frontend/packages/dev-console/integration-tests/support/pages/add-flow/git-page.ts delete mode 100644 frontend/packages/dev-console/integration-tests/support/pages/add-flow/helm-chart-repository.ts delete mode 100644 frontend/packages/dev-console/integration-tests/support/pages/add-flow/index.ts delete mode 100644 frontend/packages/dev-console/integration-tests/support/pages/add-flow/samples-page.ts delete mode 100644 frontend/packages/dev-console/integration-tests/support/pages/add-flow/upload-jar-file-page.ts delete mode 100644 frontend/packages/dev-console/integration-tests/support/pages/add-flow/yaml-page.ts delete mode 100644 frontend/packages/dev-console/integration-tests/support/pages/addHealthChecks-page.ts delete mode 100644 frontend/packages/dev-console/integration-tests/support/pages/app.ts delete mode 100644 frontend/packages/dev-console/integration-tests/support/pages/crw/authorizeAccess.ts delete mode 100644 frontend/packages/dev-console/integration-tests/support/pages/crw/keycloak.ts delete mode 100644 frontend/packages/dev-console/integration-tests/support/pages/devworspace/devworkspacePage.ts delete mode 100644 frontend/packages/dev-console/integration-tests/support/pages/functions/checkDeveloperPerspective.ts delete mode 100644 frontend/packages/dev-console/integration-tests/support/pages/functions/checkOperatorHub.ts delete mode 100644 frontend/packages/dev-console/integration-tests/support/pages/functions/checkOperatorStatus.ts delete mode 100644 frontend/packages/dev-console/integration-tests/support/pages/functions/createBroker.ts delete mode 100644 frontend/packages/dev-console/integration-tests/support/pages/functions/createChannel.ts delete mode 100644 frontend/packages/dev-console/integration-tests/support/pages/functions/createEventSink.ts delete mode 100644 frontend/packages/dev-console/integration-tests/support/pages/functions/createGitWorkload.ts delete mode 100644 frontend/packages/dev-console/integration-tests/support/pages/functions/createHelmChartFromAddPage.ts delete mode 100644 frontend/packages/dev-console/integration-tests/support/pages/functions/createHelmRelease.ts delete mode 100644 frontend/packages/dev-console/integration-tests/support/pages/functions/createOperatorBacked.ts delete mode 100644 frontend/packages/dev-console/integration-tests/support/pages/functions/index.ts delete mode 100644 frontend/packages/dev-console/integration-tests/support/pages/functions/installCRW.ts delete mode 100644 frontend/packages/dev-console/integration-tests/support/pages/functions/installOperatorOnCluster.ts delete mode 100644 frontend/packages/dev-console/integration-tests/support/pages/functions/installOperatorOnClusterUsingCLI.ts delete mode 100644 frontend/packages/dev-console/integration-tests/support/pages/functions/knativeSubscriptions.ts delete mode 100644 frontend/packages/dev-console/integration-tests/support/pages/functions/shipwrightSubscriptions.ts delete mode 100644 frontend/packages/dev-console/integration-tests/support/pages/importYaml.ts delete mode 100644 frontend/packages/dev-console/integration-tests/support/pages/index.ts delete mode 100644 frontend/packages/dev-console/integration-tests/support/pages/modal.ts delete mode 100644 frontend/packages/dev-console/integration-tests/support/pages/monitoring/index.ts delete mode 100644 frontend/packages/dev-console/integration-tests/support/pages/monitoring/monitoring-page.ts delete mode 100644 frontend/packages/dev-console/integration-tests/support/pages/operators-page.ts delete mode 100644 frontend/packages/dev-console/integration-tests/support/pages/quickStartsPage.ts delete mode 100644 frontend/packages/dev-console/integration-tests/support/step-definitions/addFlow/create-from-catalog.ts delete mode 100644 frontend/packages/dev-console/integration-tests/support/step-definitions/addFlow/create-from-container-image.ts delete mode 100644 frontend/packages/dev-console/integration-tests/support/step-definitions/addFlow/create-from-databse.ts delete mode 100644 frontend/packages/dev-console/integration-tests/support/step-definitions/addFlow/create-from-devfile.ts delete mode 100644 frontend/packages/dev-console/integration-tests/support/step-definitions/addFlow/create-from-docker-file.ts delete mode 100644 frontend/packages/dev-console/integration-tests/support/step-definitions/addFlow/create-from-git.ts delete mode 100644 frontend/packages/dev-console/integration-tests/support/step-definitions/addFlow/create-from-gitea.ts delete mode 100644 frontend/packages/dev-console/integration-tests/support/step-definitions/addFlow/create-from-operator-backed.ts delete mode 100644 frontend/packages/dev-console/integration-tests/support/step-definitions/addFlow/create-from-sample.ts delete mode 100644 frontend/packages/dev-console/integration-tests/support/step-definitions/addFlow/create-from-sidebar.ts delete mode 100644 frontend/packages/dev-console/integration-tests/support/step-definitions/addFlow/create-from-yaml.ts delete mode 100644 frontend/packages/dev-console/integration-tests/support/step-definitions/addFlow/export-application.ts delete mode 100644 frontend/packages/dev-console/integration-tests/support/step-definitions/addFlow/helm-chart-repositories.ts delete mode 100644 frontend/packages/dev-console/integration-tests/support/step-definitions/addFlow/page-details.ts delete mode 100644 frontend/packages/dev-console/integration-tests/support/step-definitions/addFlow/quick-search-add.ts delete mode 100644 frontend/packages/dev-console/integration-tests/support/step-definitions/addFlow/resource-quota-warning.ts delete mode 100644 frontend/packages/dev-console/integration-tests/support/step-definitions/addFlow/sharing.ts delete mode 100644 frontend/packages/dev-console/integration-tests/support/step-definitions/addFlow/software-catalog-details.ts delete mode 100644 frontend/packages/dev-console/integration-tests/support/step-definitions/addFlow/upload-JAR-file.ts delete mode 100644 frontend/packages/dev-console/integration-tests/support/step-definitions/build-config/edit-build-config.ts delete mode 100644 frontend/packages/dev-console/integration-tests/support/step-definitions/common/addFlow.ts delete mode 100644 frontend/packages/dev-console/integration-tests/support/step-definitions/common/common.ts delete mode 100644 frontend/packages/dev-console/integration-tests/support/step-definitions/common/masthead.ts delete mode 100644 frontend/packages/dev-console/integration-tests/support/step-definitions/common/monitoring.ts delete mode 100644 frontend/packages/dev-console/integration-tests/support/step-definitions/common/operatorParam.ts delete mode 100644 frontend/packages/dev-console/integration-tests/support/step-definitions/common/operators.ts delete mode 100644 frontend/packages/dev-console/integration-tests/support/step-definitions/common/project-creation.ts delete mode 100644 frontend/packages/dev-console/integration-tests/support/step-definitions/common/topology.ts delete mode 100644 frontend/packages/dev-console/integration-tests/support/step-definitions/consoleConfiguration/pinned-resources.ts delete mode 100644 frontend/packages/dev-console/integration-tests/support/step-definitions/crw/crw-basic.ts delete mode 100644 frontend/packages/dev-console/integration-tests/support/step-definitions/getting-started/getting-started-tour-dev-perspective.ts delete mode 100644 frontend/packages/dev-console/integration-tests/support/step-definitions/getting-started/sample-card-add-page.ts delete mode 100644 frontend/packages/dev-console/integration-tests/support/step-definitions/guided-tours/developer-hub-installation-with-helm-charts.ts delete mode 100644 frontend/packages/dev-console/integration-tests/support/step-definitions/guided-tours/getting-started-serverless.ts delete mode 100644 frontend/packages/dev-console/integration-tests/support/step-definitions/health-checks/add-health-checks-topology-sidebar.ts delete mode 100644 frontend/packages/dev-console/integration-tests/support/step-definitions/monitoring/topology-sidebar-actions.ts delete mode 100644 frontend/packages/dev-console/integration-tests/support/step-definitions/quck-starts/filter-quick-starts-catalog.ts delete mode 100644 frontend/packages/dev-console/integration-tests/support/step-definitions/quck-starts/quick-start-access-code-snippet.ts delete mode 100644 frontend/packages/dev-console/integration-tests/support/step-definitions/quck-starts/quick-start-devperspective.ts delete mode 100644 frontend/packages/dev-console/integration-tests/support/step-definitions/quck-starts/quick-starts-cluster-overview.ts delete mode 100644 frontend/packages/dev-console/integration-tests/support/step-definitions/topology/create-workloads.ts delete mode 100644 frontend/packages/dev-console/integration-tests/support/step-definitions/userPreferences/user-preferences-dev-perspective.ts delete mode 100644 frontend/packages/dev-console/integration-tests/support/step-definitions/vulnerability/project-vulnerability.ts delete mode 100644 frontend/packages/dev-console/integration-tests/testData/add-flow/git-dc.yaml delete mode 100644 frontend/packages/dev-console/integration-tests/testData/add-flow/git-page.json delete mode 100644 frontend/packages/dev-console/integration-tests/testData/add-flow/gitea-setup.yaml delete mode 100644 frontend/packages/dev-console/integration-tests/testData/git-import-flow.data.ts delete mode 100644 frontend/packages/dev-console/integration-tests/testData/git-import/cakephp-ex/contents.json delete mode 100644 frontend/packages/dev-console/integration-tests/testData/git-import/cakephp-ex/repo.json delete mode 100644 frontend/packages/dev-console/integration-tests/testData/git-import/dancer-ex/contents.json delete mode 100644 frontend/packages/dev-console/integration-tests/testData/git-import/dancer-ex/repo.json delete mode 100644 frontend/packages/dev-console/integration-tests/testData/git-import/devfile-sample/contents.json delete mode 100644 frontend/packages/dev-console/integration-tests/testData/git-import/devfile-sample/devFileResources.json delete mode 100644 frontend/packages/dev-console/integration-tests/testData/git-import/devfile-sample/package.json delete mode 100644 frontend/packages/dev-console/integration-tests/testData/git-import/devfile-sample/repo.json delete mode 100644 frontend/packages/dev-console/integration-tests/testData/git-import/django-ex/contents.json delete mode 100644 frontend/packages/dev-console/integration-tests/testData/git-import/django-ex/repo.json delete mode 100644 frontend/packages/dev-console/integration-tests/testData/git-import/flask-dockerfile-example/contents.json delete mode 100644 frontend/packages/dev-console/integration-tests/testData/git-import/flask-dockerfile-example/repo.json delete mode 100644 frontend/packages/dev-console/integration-tests/testData/git-import/golang-ex/contents.json delete mode 100644 frontend/packages/dev-console/integration-tests/testData/git-import/golang-ex/repo.json delete mode 100644 frontend/packages/dev-console/integration-tests/testData/git-import/hello-func-node-env/contents.json delete mode 100644 frontend/packages/dev-console/integration-tests/testData/git-import/hello-func-node-env/func.json delete mode 100644 frontend/packages/dev-console/integration-tests/testData/git-import/hello-func-node-env/package.json delete mode 100644 frontend/packages/dev-console/integration-tests/testData/git-import/hello-func-node-env/repo.json delete mode 100644 frontend/packages/dev-console/integration-tests/testData/git-import/hello-func-node/contents.json delete mode 100644 frontend/packages/dev-console/integration-tests/testData/git-import/hello-func-node/func.json delete mode 100644 frontend/packages/dev-console/integration-tests/testData/git-import/hello-func-node/package.json delete mode 100644 frontend/packages/dev-console/integration-tests/testData/git-import/hello-func-node/repo.json delete mode 100644 frontend/packages/dev-console/integration-tests/testData/git-import/hello-func-quarkus/contents.json delete mode 100644 frontend/packages/dev-console/integration-tests/testData/git-import/hello-func-quarkus/func.json delete mode 100644 frontend/packages/dev-console/integration-tests/testData/git-import/hello-func-quarkus/repo.json delete mode 100644 frontend/packages/dev-console/integration-tests/testData/git-import/kn-func-typescript-cloudevents/contents.json delete mode 100644 frontend/packages/dev-console/integration-tests/testData/git-import/kn-func-typescript-cloudevents/func.json delete mode 100644 frontend/packages/dev-console/integration-tests/testData/git-import/kn-func-typescript-cloudevents/package.json delete mode 100644 frontend/packages/dev-console/integration-tests/testData/git-import/kn-func-typescript-cloudevents/repo.json delete mode 100644 frontend/packages/dev-console/integration-tests/testData/git-import/kn-func-typescript-http/contents.json delete mode 100644 frontend/packages/dev-console/integration-tests/testData/git-import/kn-func-typescript-http/func.json delete mode 100644 frontend/packages/dev-console/integration-tests/testData/git-import/kn-func-typescript-http/package.json delete mode 100644 frontend/packages/dev-console/integration-tests/testData/git-import/kn-func-typescript-http/repo.json delete mode 100644 frontend/packages/dev-console/integration-tests/testData/git-import/nodejs-ex/contents.json delete mode 100644 frontend/packages/dev-console/integration-tests/testData/git-import/nodejs-ex/package.json delete mode 100644 frontend/packages/dev-console/integration-tests/testData/git-import/nodejs-ex/repo.json delete mode 100644 frontend/packages/dev-console/integration-tests/testData/git-import/repos.ts delete mode 100644 frontend/packages/dev-console/integration-tests/testData/git-import/ruby-ex/contents.json delete mode 100644 frontend/packages/dev-console/integration-tests/testData/git-import/ruby-ex/repo.json delete mode 100644 frontend/packages/dev-console/integration-tests/testData/git-import/s2i-dotnetcore-ex/contents.json delete mode 100644 frontend/packages/dev-console/integration-tests/testData/git-import/s2i-dotnetcore-ex/repo.json delete mode 100644 frontend/packages/dev-console/integration-tests/testData/git-import/serverless-func-repo/contents.json delete mode 100644 frontend/packages/dev-console/integration-tests/testData/git-import/serverless-func-repo/func.json delete mode 100644 frontend/packages/dev-console/integration-tests/testData/git-import/serverless-func-repo/package.json delete mode 100644 frontend/packages/dev-console/integration-tests/testData/git-import/serverless-func-repo/repo.json delete mode 100644 frontend/packages/dev-console/integration-tests/testData/git-import/spring-boot/contents.json delete mode 100644 frontend/packages/dev-console/integration-tests/testData/git-import/spring-boot/repo.json delete mode 100755 frontend/packages/dev-console/integration-tests/testData/krew-install.sh delete mode 100644 frontend/packages/dev-console/integration-tests/testData/pipelinesOperatorSubscription.yaml delete mode 100644 frontend/packages/dev-console/integration-tests/testData/quick-start/copy-execute-demo.yaml delete mode 100644 frontend/packages/dev-console/integration-tests/testData/resource-quota/resource-quota.yaml delete mode 100644 frontend/packages/dev-console/integration-tests/testData/vulnerability/create-quarkus-deployment.yaml delete mode 100644 frontend/packages/dev-console/integration-tests/testData/yamls/BuildConfig/buildconfig-with-strategy-docker-source-dockerfile.yaml delete mode 100644 frontend/packages/dev-console/integration-tests/testData/yamls/BuildConfig/buildconfig-with-strategy-docker-source-git.yaml delete mode 100644 frontend/packages/dev-console/integration-tests/testData/yamls/BuildConfig/buildconfig-with-strategy-source-source-binary.yaml delete mode 100644 frontend/packages/dev-console/integration-tests/testData/yamls/create-cronjob.yaml delete mode 100644 frontend/packages/dev-console/integration-tests/testData/yamls/create-job.yaml delete mode 100644 frontend/packages/dev-console/integration-tests/testData/yamls/create-pod.yaml delete mode 100644 frontend/packages/dev-console/integration-tests/testData/yamls/create-statefulsets.yaml delete mode 100644 frontend/packages/dev-console/integration-tests/testData/yamls/monitoring/cluster-monitoring-config.yaml delete mode 100644 frontend/packages/dev-console/integration-tests/testData/yamls/monitoring/prometheous-example.yaml delete mode 100644 frontend/packages/dev-console/integration-tests/testData/yamls/monitoring/workload-monitoring-config.yaml delete mode 100644 frontend/packages/dev-console/integration-tests/testData/yamls/operator-installtion/createHyperConverged.yaml delete mode 100644 frontend/packages/dev-console/integration-tests/testData/yamls/operator-installtion/installVirtualizationOperator.yaml delete mode 100644 frontend/packages/dev-console/integration-tests/testData/yamls/web-terminal/dev-ws-custom-idling-config.yaml delete mode 100644 frontend/packages/dev-console/integration-tests/testData/yamls/web-terminal/web-terminal.yaml delete mode 100644 frontend/packages/dev-console/integration-tests/tsconfig.json delete mode 100644 frontend/packages/helm-plugin/integration-tests/README.md delete mode 100644 frontend/packages/helm-plugin/integration-tests/cypress.config.js delete mode 100644 frontend/packages/helm-plugin/integration-tests/features/BestPractices.md delete mode 100644 frontend/packages/helm-plugin/integration-tests/features/helm-release.feature delete mode 100644 frontend/packages/helm-plugin/integration-tests/features/helm/actions-on-helm-release-after-upgrade.feature delete mode 100644 frontend/packages/helm-plugin/integration-tests/features/helm/actions-on-helm-release.feature delete mode 100644 frontend/packages/helm-plugin/integration-tests/features/helm/helm-compatibility.feature delete mode 100644 frontend/packages/helm-plugin/integration-tests/features/helm/helm-feature-flag.feature delete mode 100644 frontend/packages/helm-plugin/integration-tests/features/helm/helm-installation-view.feature delete mode 100644 frontend/packages/helm-plugin/integration-tests/features/helm/helm-navigation.feature delete mode 100644 frontend/packages/helm-plugin/integration-tests/features/helm/helm-page-tabs.feature delete mode 100644 frontend/packages/helm-plugin/integration-tests/features/helm/install-helm-chart.feature delete mode 100644 frontend/packages/helm-plugin/integration-tests/features/helm/install-url-chart.feature delete mode 100644 frontend/packages/helm-plugin/integration-tests/features/helm/topology-helm-release.feature delete mode 100644 frontend/packages/helm-plugin/integration-tests/package.json delete mode 100644 frontend/packages/helm-plugin/integration-tests/reporter-config.json delete mode 100644 frontend/packages/helm-plugin/integration-tests/support/commands/hooks.ts delete mode 100644 frontend/packages/helm-plugin/integration-tests/support/commands/index.ts delete mode 100644 frontend/packages/helm-plugin/integration-tests/support/constants/index.ts delete mode 100644 frontend/packages/helm-plugin/integration-tests/support/constants/navigation.ts delete mode 100644 frontend/packages/helm-plugin/integration-tests/support/constants/static-text/helm-text.ts delete mode 100644 frontend/packages/helm-plugin/integration-tests/support/pages/helm/helm-details-page.ts delete mode 100644 frontend/packages/helm-plugin/integration-tests/support/pages/helm/helm-page.ts delete mode 100644 frontend/packages/helm-plugin/integration-tests/support/pages/helm/index.ts delete mode 100644 frontend/packages/helm-plugin/integration-tests/support/pages/helm/rollBack-helm-release-page.ts delete mode 100644 frontend/packages/helm-plugin/integration-tests/support/pages/helm/upgrade-helm-release-page.ts delete mode 100644 frontend/packages/helm-plugin/integration-tests/support/pages/helm/url-chart-install-page.ts delete mode 100644 frontend/packages/helm-plugin/integration-tests/support/pages/index.ts delete mode 100644 frontend/packages/helm-plugin/integration-tests/support/step-definitions/common/common.ts delete mode 100644 frontend/packages/helm-plugin/integration-tests/support/step-definitions/helm/actions-on-helm-release-after-upgrade.ts delete mode 100644 frontend/packages/helm-plugin/integration-tests/support/step-definitions/helm/helm-compatibility.ts delete mode 100644 frontend/packages/helm-plugin/integration-tests/support/step-definitions/helm/helm-installation-view.ts delete mode 100644 frontend/packages/helm-plugin/integration-tests/support/step-definitions/helm/helm-navigation.ts delete mode 100644 frontend/packages/helm-plugin/integration-tests/support/step-definitions/helm/helm-release.ts delete mode 100644 frontend/packages/helm-plugin/integration-tests/support/step-definitions/helm/helm.ts delete mode 100644 frontend/packages/helm-plugin/integration-tests/support/step-definitions/helm/install-url-chart.ts delete mode 100644 frontend/packages/helm-plugin/integration-tests/test-data/namespaced-helm-chart-repository.yaml delete mode 100644 frontend/packages/helm-plugin/integration-tests/test-data/namespaced-helm-crd.yaml delete mode 100644 frontend/packages/helm-plugin/integration-tests/test-data/red-hat-helm-charts.yaml delete mode 100644 frontend/packages/helm-plugin/integration-tests/tsconfig.json delete mode 100644 frontend/packages/integration-tests/OWNERS delete mode 100644 frontend/packages/integration-tests/README.md delete mode 100644 frontend/packages/integration-tests/cypress-common-config.js delete mode 100644 frontend/packages/integration-tests/cypress.config.js delete mode 100644 frontend/packages/integration-tests/fixtures/asciisecret.txt delete mode 100644 frontend/packages/integration-tests/fixtures/binarysecret.bin delete mode 100644 frontend/packages/integration-tests/fixtures/example.json delete mode 100644 frontend/packages/integration-tests/fixtures/unicodesecret.utf8 delete mode 100644 frontend/packages/integration-tests/mocks/snapshot.ts delete mode 100644 frontend/packages/integration-tests/mocks/storage-class.ts delete mode 100644 frontend/packages/integration-tests/mocks/volume-attributes-class.ts delete mode 100644 frontend/packages/integration-tests/package.json delete mode 100644 frontend/packages/integration-tests/reporter-config.json delete mode 100644 frontend/packages/integration-tests/support/README.md delete mode 100644 frontend/packages/integration-tests/support/a11y.ts delete mode 100644 frontend/packages/integration-tests/support/admin.ts delete mode 100644 frontend/packages/integration-tests/support/i18n.ts delete mode 100644 frontend/packages/integration-tests/support/index.ts delete mode 100644 frontend/packages/integration-tests/support/login.ts delete mode 100644 frontend/packages/integration-tests/support/nav.ts delete mode 100644 frontend/packages/integration-tests/support/project.ts delete mode 100644 frontend/packages/integration-tests/support/resources.ts delete mode 100644 frontend/packages/integration-tests/support/selectors.ts delete mode 100644 frontend/packages/integration-tests/support/stub-machine-config-pool-watch-ws.ts delete mode 100644 frontend/packages/integration-tests/tests/app/admission-webhook-warning-notifications.cy.ts delete mode 100644 frontend/packages/integration-tests/tests/app/auth-multiuser-login.cy.ts delete mode 100644 frontend/packages/integration-tests/tests/app/debug-pod.cy.ts delete mode 100644 frontend/packages/integration-tests/tests/app/deployments.cy.ts delete mode 100644 frontend/packages/integration-tests/tests/app/machine-config.cy.ts delete mode 100644 frontend/packages/integration-tests/tests/app/start-job-from-cronjob.cy.ts delete mode 100644 frontend/packages/integration-tests/tests/crud/secrets/add-to-workload.cy.ts delete mode 100644 frontend/packages/integration-tests/tests/crud/secrets/image-pull.cy.ts delete mode 100644 frontend/packages/integration-tests/tests/crud/secrets/key-value.cy.ts delete mode 100644 frontend/packages/integration-tests/tests/crud/secrets/source.cy.ts delete mode 100644 frontend/packages/integration-tests/tests/crud/secrets/webhook.cy.ts delete mode 100644 frontend/packages/integration-tests/tests/storage/clone.cy.ts delete mode 100644 frontend/packages/integration-tests/tests/storage/create-storage-class.cy.ts delete mode 100644 frontend/packages/integration-tests/tests/storage/snapshot.cy.ts delete mode 100644 frontend/packages/integration-tests/tests/storage/volume-attributes-class.cy.ts delete mode 100644 frontend/packages/integration-tests/tsconfig.json delete mode 100644 frontend/packages/integration-tests/views/common.ts delete mode 100644 frontend/packages/integration-tests/views/details-page.ts delete mode 100644 frontend/packages/integration-tests/views/environment.ts delete mode 100644 frontend/packages/integration-tests/views/form.ts delete mode 100644 frontend/packages/integration-tests/views/labels.ts delete mode 100644 frontend/packages/integration-tests/views/list-page.ts delete mode 100644 frontend/packages/integration-tests/views/masthead.ts delete mode 100644 frontend/packages/integration-tests/views/modal.ts delete mode 100644 frontend/packages/integration-tests/views/nav.ts delete mode 100644 frontend/packages/integration-tests/views/resource-sidebar.ts delete mode 100644 frontend/packages/integration-tests/views/secret.ts delete mode 100644 frontend/packages/integration-tests/views/storage/create-storage-class.ts delete mode 100644 frontend/packages/integration-tests/views/storage/snapshot.ts delete mode 100644 frontend/packages/integration-tests/views/warning-modal.ts delete mode 100644 frontend/packages/integration-tests/views/yaml-editor.ts delete mode 100644 frontend/packages/knative-plugin/integration-tests/README.md delete mode 100644 frontend/packages/knative-plugin/integration-tests/cypress.config.js delete mode 100644 frontend/packages/knative-plugin/integration-tests/features/BestPractices.md delete mode 100644 frontend/packages/knative-plugin/integration-tests/features/admin-perspective/eventing-page-admin.feature delete mode 100644 frontend/packages/knative-plugin/integration-tests/features/admin-perspective/filters-serving-eventing-admin.feature delete mode 100644 frontend/packages/knative-plugin/integration-tests/features/admin-perspective/serverless-admin-empty-state.feature delete mode 100644 frontend/packages/knative-plugin/integration-tests/features/admin-perspective/serving-page-admin.feature delete mode 100644 frontend/packages/knative-plugin/integration-tests/features/e2e/knative-ci.feature delete mode 100644 frontend/packages/knative-plugin/integration-tests/features/eventing/actions-on-event-sources.feature delete mode 100644 frontend/packages/knative-plugin/integration-tests/features/eventing/create-event-sink.feature delete mode 100644 frontend/packages/knative-plugin/integration-tests/features/eventing/create-event-sources.feature delete mode 100644 frontend/packages/knative-plugin/integration-tests/features/eventing/event-sources-installation-view.feature delete mode 100644 frontend/packages/knative-plugin/integration-tests/features/eventing/event-sources-sink-to-uri.feature delete mode 100644 frontend/packages/knative-plugin/integration-tests/features/eventing/eventing-broker-actions.feature delete mode 100644 frontend/packages/knative-plugin/integration-tests/features/eventing/eventing-broker-trigger.feature delete mode 100644 frontend/packages/knative-plugin/integration-tests/features/eventing/eventing-camelk.feature delete mode 100644 frontend/packages/knative-plugin/integration-tests/features/eventing/eventing-channel-subscription.feature delete mode 100644 frontend/packages/knative-plugin/integration-tests/features/eventing/eventing-channel.feature delete mode 100644 frontend/packages/knative-plugin/integration-tests/features/eventing/eventing-create-sink-broker.feature delete mode 100644 frontend/packages/knative-plugin/integration-tests/features/eventing/eventing-events-subscription.feature delete mode 100644 frontend/packages/knative-plugin/integration-tests/features/eventing/kafka-event-sink.feature delete mode 100644 frontend/packages/knative-plugin/integration-tests/features/eventing/kafka-event-source-actions.feature delete mode 100644 frontend/packages/knative-plugin/integration-tests/features/eventing/kafka-event-source.feature delete mode 100644 frontend/packages/knative-plugin/integration-tests/features/eventing/kafka-source-connection-to-kafka-connection-instance.feature delete mode 100644 frontend/packages/knative-plugin/integration-tests/features/eventing/managed-services-kafka-connection.feature delete mode 100644 frontend/packages/knative-plugin/integration-tests/features/functions/functions-navigation.feature delete mode 100644 frontend/packages/knative-plugin/integration-tests/features/serverless/actions-on-knative-revision.feature delete mode 100644 frontend/packages/knative-plugin/integration-tests/features/serverless/actions-on-knative-service.feature delete mode 100644 frontend/packages/knative-plugin/integration-tests/features/serverless/cards-display-on-serverless-operator-installation.feature delete mode 100644 frontend/packages/knative-plugin/integration-tests/features/serverless/create-knative-service-from-deployment-or-deployment-config.feature delete mode 100644 frontend/packages/knative-plugin/integration-tests/features/serverless/create-knative-workload.feature delete mode 100644 frontend/packages/knative-plugin/integration-tests/features/serverless/domain-mapping.feature delete mode 100644 frontend/packages/knative-plugin/integration-tests/features/serverless/serverless-function.feature delete mode 100644 frontend/packages/knative-plugin/integration-tests/features/serverless/side-bar-of-knative-revision-and-service.feature delete mode 100644 frontend/packages/knative-plugin/integration-tests/package.json delete mode 100644 frontend/packages/knative-plugin/integration-tests/reporter-config.json delete mode 100644 frontend/packages/knative-plugin/integration-tests/support/commands/hooks.ts delete mode 100644 frontend/packages/knative-plugin/integration-tests/support/commands/index.ts delete mode 100644 frontend/packages/knative-plugin/integration-tests/support/pageObjects/functions-po.ts delete mode 100644 frontend/packages/knative-plugin/integration-tests/support/pageObjects/global-po.ts delete mode 100644 frontend/packages/knative-plugin/integration-tests/support/pageObjects/index.ts delete mode 100644 frontend/packages/knative-plugin/integration-tests/support/pages/admin-perspective/eventing-page.ts delete mode 100644 frontend/packages/knative-plugin/integration-tests/support/pages/dev-perspective/common.ts delete mode 100644 frontend/packages/knative-plugin/integration-tests/support/pages/dev-perspective/eventing-page.ts delete mode 100644 frontend/packages/knative-plugin/integration-tests/support/pages/dev-perspective/test-serverless-function-page.ts delete mode 100644 frontend/packages/knative-plugin/integration-tests/support/pages/functions/functions-page.ts delete mode 100644 frontend/packages/knative-plugin/integration-tests/support/pages/index.ts delete mode 100644 frontend/packages/knative-plugin/integration-tests/support/step-definitions/admin-perspective/eventing-page-admin.ts delete mode 100644 frontend/packages/knative-plugin/integration-tests/support/step-definitions/admin-perspective/filters-serving-eventing-admin.ts delete mode 100644 frontend/packages/knative-plugin/integration-tests/support/step-definitions/admin-perspective/serverless-admin-empty-state.ts delete mode 100644 frontend/packages/knative-plugin/integration-tests/support/step-definitions/admin-perspective/serving-page-admin.ts delete mode 100644 frontend/packages/knative-plugin/integration-tests/support/step-definitions/common/addFlow.ts delete mode 100644 frontend/packages/knative-plugin/integration-tests/support/step-definitions/common/common.ts delete mode 100644 frontend/packages/knative-plugin/integration-tests/support/step-definitions/common/functions/topology-admin-perspective.ts delete mode 100644 frontend/packages/knative-plugin/integration-tests/support/step-definitions/common/operators.ts delete mode 100644 frontend/packages/knative-plugin/integration-tests/support/step-definitions/common/topology.ts delete mode 100644 frontend/packages/knative-plugin/integration-tests/support/step-definitions/eventing/actions-on-event-sources.ts delete mode 100644 frontend/packages/knative-plugin/integration-tests/support/step-definitions/eventing/create-event-sink.ts delete mode 100644 frontend/packages/knative-plugin/integration-tests/support/step-definitions/eventing/create-event-sources.ts delete mode 100644 frontend/packages/knative-plugin/integration-tests/support/step-definitions/eventing/event-sources-installation-view.ts delete mode 100644 frontend/packages/knative-plugin/integration-tests/support/step-definitions/eventing/event-sources-sink-to-uri.ts delete mode 100644 frontend/packages/knative-plugin/integration-tests/support/step-definitions/eventing/eventing-broker-actions.ts delete mode 100644 frontend/packages/knative-plugin/integration-tests/support/step-definitions/eventing/eventing-broker-trigger.ts delete mode 100644 frontend/packages/knative-plugin/integration-tests/support/step-definitions/eventing/eventing-camelk.ts delete mode 100644 frontend/packages/knative-plugin/integration-tests/support/step-definitions/eventing/eventing-channel-subscription.ts delete mode 100644 frontend/packages/knative-plugin/integration-tests/support/step-definitions/eventing/eventing-channel.ts delete mode 100644 frontend/packages/knative-plugin/integration-tests/support/step-definitions/eventing/eventing-create-sink-broker.ts delete mode 100644 frontend/packages/knative-plugin/integration-tests/support/step-definitions/eventing/eventing-events-subscription.ts delete mode 100644 frontend/packages/knative-plugin/integration-tests/support/step-definitions/eventing/kafka-event-sink.ts delete mode 100644 frontend/packages/knative-plugin/integration-tests/support/step-definitions/eventing/kafka-event-source.ts delete mode 100644 frontend/packages/knative-plugin/integration-tests/support/step-definitions/eventing/kafka-souce-connection.ts delete mode 100644 frontend/packages/knative-plugin/integration-tests/support/step-definitions/functions/functions-navigation.ts delete mode 100644 frontend/packages/knative-plugin/integration-tests/support/step-definitions/serverless/actions-on-knative-revision.ts delete mode 100644 frontend/packages/knative-plugin/integration-tests/support/step-definitions/serverless/actions-on-knative-service.ts delete mode 100644 frontend/packages/knative-plugin/integration-tests/support/step-definitions/serverless/cards-display-on-serverless-operator-installation.ts delete mode 100644 frontend/packages/knative-plugin/integration-tests/support/step-definitions/serverless/create-apache-camel.ts delete mode 100644 frontend/packages/knative-plugin/integration-tests/support/step-definitions/serverless/create-knative-service-from-deployment-or-deployment-config.ts delete mode 100644 frontend/packages/knative-plugin/integration-tests/support/step-definitions/serverless/create-knative-workload.ts delete mode 100644 frontend/packages/knative-plugin/integration-tests/support/step-definitions/serverless/create-serverless-function.ts delete mode 100644 frontend/packages/knative-plugin/integration-tests/support/step-definitions/serverless/domain-mapping.ts delete mode 100644 frontend/packages/knative-plugin/integration-tests/support/step-definitions/serverless/serverless-function.ts delete mode 100644 frontend/packages/knative-plugin/integration-tests/support/step-definitions/serverless/side-bar-of-knative-revision-and-service.ts delete mode 100644 frontend/packages/knative-plugin/integration-tests/support/step-definitions/serverless/test-serverless-function.ts delete mode 100644 frontend/packages/knative-plugin/integration-tests/support/testData/createKafkaConnection.yaml delete mode 100644 frontend/packages/knative-plugin/integration-tests/support/testData/createPingSource.yaml delete mode 100644 frontend/packages/knative-plugin/integration-tests/support/testData/createSecret.yaml delete mode 100644 frontend/packages/knative-plugin/integration-tests/support/testData/installation-yamls/createBootStrap-CR.yaml delete mode 100644 frontend/packages/knative-plugin/integration-tests/support/testData/installation-yamls/createBroker.yaml delete mode 100644 frontend/packages/knative-plugin/integration-tests/support/testData/installation-yamls/createKnativeEventing-CR.yaml delete mode 100644 frontend/packages/knative-plugin/integration-tests/support/testData/installation-yamls/createKnativeKafka-CR.yaml delete mode 100644 frontend/packages/knative-plugin/integration-tests/support/testData/installation-yamls/createKnativeService.yaml delete mode 100644 frontend/packages/knative-plugin/integration-tests/support/testData/installation-yamls/createKnativeServing-CR.yaml delete mode 100644 frontend/packages/knative-plugin/integration-tests/support/testData/installation-yamls/installServerlessOperator.yaml delete mode 100644 frontend/packages/knative-plugin/integration-tests/support/testData/serverless-function-node-pipeline.yaml delete mode 100644 frontend/packages/knative-plugin/integration-tests/support/testData/serverless-functions-samples.yaml delete mode 100644 frontend/packages/knative-plugin/integration-tests/testData/knative-eventing.yaml delete mode 100644 frontend/packages/knative-plugin/integration-tests/testData/knative-kafka.yaml delete mode 100644 frontend/packages/knative-plugin/integration-tests/testData/knative-serving.yaml delete mode 100644 frontend/packages/knative-plugin/integration-tests/testData/redhatCamelkOperatorSubscription.yaml delete mode 100644 frontend/packages/knative-plugin/integration-tests/testData/serverlessOperatorSubscription.yaml delete mode 100644 frontend/packages/knative-plugin/integration-tests/testData/test-serverless-fn/request-body-cloudevent.json delete mode 100644 frontend/packages/knative-plugin/integration-tests/testData/test-serverless-fn/request-body-http.json delete mode 100644 frontend/packages/knative-plugin/integration-tests/testData/test-serverless-fn/response-body-cloudevent.json delete mode 100644 frontend/packages/knative-plugin/integration-tests/testData/test-serverless-fn/response-body-http.json delete mode 100644 frontend/packages/knative-plugin/integration-tests/tsconfig.json delete mode 100644 frontend/packages/knative-plugin/integration-tests/views/serverless-service.yaml delete mode 100644 frontend/packages/operator-lifecycle-manager/integration-tests/cypress.config.js delete mode 100644 frontend/packages/operator-lifecycle-manager/integration-tests/mocks/index.tsx delete mode 100644 frontend/packages/operator-lifecycle-manager/integration-tests/package.json delete mode 100644 frontend/packages/operator-lifecycle-manager/integration-tests/reporter-config.json delete mode 100644 frontend/packages/operator-lifecycle-manager/integration-tests/tests/catalog-source-details.cy.ts delete mode 100644 frontend/packages/operator-lifecycle-manager/integration-tests/tests/deprecated-operator-warnings.cy.ts delete mode 100644 frontend/packages/operator-lifecycle-manager/integration-tests/tests/descriptors.cy.ts delete mode 100644 frontend/packages/operator-lifecycle-manager/integration-tests/tests/edit-default-sources.cy.ts delete mode 100644 frontend/packages/operator-lifecycle-manager/integration-tests/tests/operator-hub.cy.ts delete mode 100644 frontend/packages/operator-lifecycle-manager/integration-tests/tests/operator-install-global.cy.ts delete mode 100644 frontend/packages/operator-lifecycle-manager/integration-tests/tests/operator-install-single-namespace.cy.ts delete mode 100644 frontend/packages/operator-lifecycle-manager/integration-tests/tests/operator-uninstall.cy.ts delete mode 100644 frontend/packages/operator-lifecycle-manager/integration-tests/tests/packageserver-tabs.cy.ts delete mode 100644 frontend/packages/operator-lifecycle-manager/integration-tests/tsconfig.json delete mode 100644 frontend/packages/operator-lifecycle-manager/integration-tests/views/operator.view.ts delete mode 100644 frontend/packages/topology/integration-tests/support/page-objects/chart-area-po.ts delete mode 100644 frontend/packages/topology/integration-tests/support/page-objects/export-applications-po.ts delete mode 100644 frontend/packages/topology/integration-tests/support/page-objects/hpa-po.ts delete mode 100644 frontend/packages/topology/integration-tests/support/page-objects/topology-add-options-po.ts delete mode 100644 frontend/packages/topology/integration-tests/support/page-objects/topology-po.ts delete mode 100644 frontend/packages/topology/integration-tests/support/pages/export-application/export-applications.ts delete mode 100644 frontend/packages/topology/integration-tests/support/pages/functions/add-secret.ts delete mode 100644 frontend/packages/topology/integration-tests/support/pages/functions/chart-functions.ts delete mode 100644 frontend/packages/topology/integration-tests/support/pages/topology/index.ts delete mode 100644 frontend/packages/topology/integration-tests/support/pages/topology/topology-actions-page.ts delete mode 100644 frontend/packages/topology/integration-tests/support/pages/topology/topology-edit-deployment.ts delete mode 100644 frontend/packages/topology/integration-tests/support/pages/topology/topology-helper-page.ts delete mode 100644 frontend/packages/topology/integration-tests/support/pages/topology/topology-page.ts delete mode 100644 frontend/packages/topology/integration-tests/support/pages/topology/topology-side-pane-page.ts diff --git a/.gitignore b/.gitignore index 42b73536ed5..cc490bca335 100644 --- a/.gitignore +++ b/.gitignore @@ -13,7 +13,6 @@ install-state.gz !/vendor/** !.vscode/settings.json .DS_Store -cypress-a11y-report.json /bin /gopath /Godeps/_workspace/src/github.com/openshift/console @@ -31,7 +30,6 @@ cypress-a11y-report.json /frontend/e2e/.test-config.json /frontend/test-results/ /frontend/playwright-report/ -/frontend/gui_test_screenshots /frontend/package-lock.json /frontend/po-files /dynamic-demo-plugin/**/node_modules diff --git a/AGENTS.md b/AGENTS.md index 985ed20bd5c..9dc0aef6f81 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -8,7 +8,7 @@ Before generating or modifying code, always consult the relevant file(s) to ensu - **Monorepo:** `frontend/` (React + TypeScript, yarn workspaces), `pkg/` - Go backend code, `cmd/` - Go CLI commands - **Key packages:** `@console/dynamic-plugin-sdk` (public API), `@console/shared` (utils), `@console/internal` (`public` folder - core UI/k8s) -- **Testing:** Jest (unit), Cypress (E2E), Go tests (backend). Read [TESTING.md](TESTING.md) for patterns and best practices. Use the `gen-rtl-test` skill for React Testing Library test generation. +- **Testing:** Jest (unit), Playwright (E2E), Go tests (backend). Read [TESTING.md](TESTING.md) for patterns and best practices. Use the `gen-rtl-test` skill for React Testing Library test generation. ## Static plugins @@ -131,6 +131,6 @@ These files are the single source of truth for architecture, coding standards, a - [Extension Types Reference](frontend/packages/console-dynamic-plugin-sdk/docs/console-extensions.md) - complete extension type definitions, naming conventions (`console.*`), and deprecation notices. - [Console API Documentation](frontend/packages/console-dynamic-plugin-sdk/docs/api.md) - React components, hooks, utilities, and TypeScript types exported by the SDK. -## Playwright migration +## Playwright E2E tests -We are migrating Cypress e2e tests to Playwright. Use `/migrate-cypress` to convert test files and `/debug-test` to fix failing tests. Shared migration context (translation tables, structural rules, checklist) is in `.claude/migration-context.md`. +E2E tests use Playwright. Tests live under `frontend/e2e/tests/` and are configured via `frontend/playwright.config.ts`. Use `/debug-test` to fix failing tests. diff --git a/Dockerfile b/Dockerfile index f8327776c72..59ae21811e0 100644 --- a/Dockerfile +++ b/Dockerfile @@ -15,8 +15,7 @@ FROM registry.ci.openshift.org/ocp/builder:rhel-9-base-nodejs-openshift-5.0 AS n ADD . . USER 0 -ENV PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=1 \ - CYPRESS_INSTALL_BINARY=0 +ENV PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=1 RUN container-entrypoint ./build-frontend.sh diff --git a/Dockerfile.builder b/Dockerfile.builder index 08c4560ae04..d6a66ccd860 100644 --- a/Dockerfile.builder +++ b/Dockerfile.builder @@ -24,9 +24,7 @@ RUN chmod 777 -R ${HOME} RUN apt-get update \ && apt-get install --no-install-recommends -y -q \ - curl wget git unzip bzip2 jq expect \ - libgtk2.0-0 libgtk-3-0 libgbm-dev libnotify-dev libgconf-2-4 libnss3 libxss1 libasound2 libxtst6 xauth xvfb - # ^^ additional Cypress dependencies: https://docs.cypress.io/guides/guides/continuous-integration.html#Dependencies + curl wget git unzip bzip2 jq expect RUN curl -LO https://storage.googleapis.com/kubernetes-release/release/v1.27.1/bin/linux/$(go env GOARCH)/kubectl && \ chmod +x ./kubectl && \ diff --git a/INTERNATIONALIZATION.md b/INTERNATIONALIZATION.md index a1934697766..d0fa9625ccf 100644 --- a/INTERNATIONALIZATION.md +++ b/INTERNATIONALIZATION.md @@ -76,7 +76,7 @@ t('key' + id) ``` * The optional i18nKey property on the [react-i18next Trans component](https://react.i18next.com/latest/trans-component) should only be used as a last resort. There is a known (rare) issue with the parser, where it will sometimes incorrectly generate a key that contains HTML tags. If this is the case, you will see a missingKey error in the developer tools of your browser or in our end to end tests. In this instance, the i18nKey prop should be used and made the same as the text being internationalized. HTML tags like `` can be used directly in the i18nKey prop. -* Write tests for pseudolocalized code in Cypress +* Write tests for pseudolocalized code in Playwright #### Adding internationalization to a new package Whenever a new package is added, you will need to make a few changes so it is picked up by our existing internationalization tools. @@ -114,7 +114,7 @@ These scripts can all be found in `./frontend/i18n-scripts`. For more information, please review the [README](./frontend/i18n-scripts/README.md). #### Testing -We test that internationalization is working for various pages and components using the [i18next-pseudo](https://github.com/MattBoatman/i18next-pseudo) JavaScript library, which returns translated strings in "pseudolocalization" format. Our Cypress custom commands [cy.isPseudoLocalized()](https://github.com/openshift/console/blob/9c930b7b411f5e88f2f890639159e09bdadb78dc/frontend/packages/integration-tests-cypress/support/i18n.ts#L45) and [cy.testI18n()](https://github.com/openshift/console/blob/9c930b7b411f5e88f2f890639159e09bdadb78dc/frontend/packages/integration-tests-cypress/support/i18n.ts#L13) append query params to URLs to invoke "pseudolocalization" and are used in various test suites such as [pseudolocalization.cy.ts](https://github.com/openshift/console/blob/175a6a274204bbe44def1963daf572e4463c36f9/frontend/packages/integration-tests-cypress/tests/i18n/pseudolocalization.cy.ts#L27) to verify strings in the masthead, dashboard, navigation menu, list views, and detail pages are translated. +We test that internationalization is working for various pages and components using the [i18next-pseudo](https://github.com/MattBoatman/i18next-pseudo) JavaScript library, which returns translated strings in "pseudolocalization" format. Playwright E2E tests under `frontend/e2e/tests/console/i18n/` append query params to URLs to invoke "pseudolocalization" and verify strings in the masthead, dashboard, navigation menu, list views, and detail pages are translated. #### Supported Languages representation Supported languages are represented using the ISO 639-1 Code defined in `frontend/packages/console-app/src/components/user-preferences/language/const.ts` with the exception of Chinese. While locale directories for Chinese still follow the ISO 639-1 Code format, the region code is also included to distinguish the supported simplified Chinese from other variants. diff --git a/README.md b/README.md index 4997bf93be4..06e4e3dba14 100644 --- a/README.md +++ b/README.md @@ -258,67 +258,32 @@ Run frontend tests: ### Integration Tests -Cypress integration tests are implemented in [Cypress.io](https://www.cypress.io/). +E2E integration tests are implemented using [Playwright](https://playwright.dev/). Tests live under `frontend/e2e/tests/` and are configured via [frontend/playwright.config.ts](frontend/playwright.config.ts). -To install Cypress: +**Important:** Set `BRIDGE_KUBEADMIN_PASSWORD` and `BRIDGE_BASE_ADDRESS` environment variables in your shell when testing against a live cluster. -``` -cd frontend -yarn run cypress install -``` - -Launch Cypress test runner: +#### Running Playwright tests locally ``` cd frontend oc login ... -yarn run test-cypress-console -``` - -This will launch the Cypress Test Runner UI in the `console` package, where you can run one or all Cypress tests. - -**Important:** when testing with authentication, set `BRIDGE_KUBEADMIN_PASSWORD` environment variable in your shell. - -#### Execute Cypress in different packages - -An alternate way to execute cypress tests is via [frontend/integration-tests/test-cypress.sh](frontend/integration-tests/test-cypress.sh) which takes a `-p ` parameter to allow execution in different packages. It also can run Cypress tests in the Test Runner UI or in `-- headless` mode: - -``` -console/frontend > ./integration-tests/test-cypress.sh - -Runs Cypress tests in Test Runner or headless mode -Usage: test-cypress [-p] [-s] [-h true] - '-p ' may be 'console, 'olm' or 'devconsole' - '-s ' is a file mask for spec test files, such as 'tests/monitoring/*'. Used only in headless mode when '-p' is specified. - '-h true' runs Cypress in headless mode. When omitted, launches Cypress Test Runner -Examples: - ./integration-tests/test-cypress.sh // displays this help text - ./integration-tests/test-cypress.sh -p console // opens Cypress Test Runner for console tests - ./integration-tests/test-cypress.sh -p olm // opens Cypress Test Runner for OLM tests - ./integration-tests/test-cypress.sh -h true // runs all packages in headless mode - ./integration-tests/test-cypress.sh -p olm -h true // runs OLM tests in headless mode - ./integration-tests/test-cypress.sh -p console -s 'tests/crud/*' -h true // runs console CRUD tests in headless mode +export BRIDGE_BASE_ADDRESS="$(oc get consoles.config.openshift.io cluster -o jsonpath='{.status.consoleURL}')" +export BRIDGE_KUBEADMIN_PASSWORD= +yarn test-playwright # run all tests +yarn test-playwright --project=smoke # run smoke tests only +yarn test-playwright --project=console # run console tests only +yarn test-playwright --headed # run with browser visible +yarn test-playwright --debug # run in debug mode +yarn test-playwright --ui # run with Playwright UI ``` -When running in headless mode, Cypress will test using its integrated Electron browser, but if you want to use Chrome or Firefox instead, set `BRIDGE_E2E_BROWSER_NAME` environment variable in your shell with the value `chrome` or `firefox`. - -[**_More information on Console's Cypress usage_**](frontend/packages/integration-tests/README.md) - -[**_More information on DevConsole's Cypress usage_**](frontend/packages/dev-console/integration-tests/README.md) - #### How the Integration Tests Run in CI The end-to-end tests run against pull requests using [ci-operator](https://github.com/openshift/ci-operator/). -The tests are defined in [this manifest](https://github.com/openshift/release/blob/main/ci-operator/jobs/openshift/console/openshift-console-main-presubmits.yaml) -in the [openshift/release](https://github.com/openshift/release) repo and were generated with [ci-operator-prowgen](https://github.com/openshift/ci-operator-prowgen). - -CI runs the [test-prow-e2e.sh](test-prow-e2e.sh) script, which runs [frontend/integration-tests/test-cypress.sh](frontend/integration-tests/test-cypress.sh). - -`test-cypress.sh` runs all Cypress tests, in all 'packages' (console, olm, and devconsole), in `-- headless` mode via: - -`test-cypress.sh -h true` +The tests are defined in the [ci-operator config](https://github.com/openshift/release/blob/main/ci-operator/config/openshift/console/openshift-console-main.yaml) +in the [openshift/release](https://github.com/openshift/release) repo. -For more information on `test-cypress.sh` usage please see [Execute Cypress in different packages](#execute-cypress-in-different-packages) +CI runs the [test-prow-playwright-e2e.sh](test-prow-playwright-e2e.sh) script, which runs [frontend/integration-tests/test-playwright-e2e.sh](frontend/integration-tests/test-playwright-e2e.sh). ### Internationalization diff --git a/TESTING.md b/TESTING.md index 0c2280ee68b..704e7881a94 100644 --- a/TESTING.md +++ b/TESTING.md @@ -9,15 +9,16 @@ Focuses on testing individual React components, hooks, and utilities in isolatio - Libraries: `@testing-library/react`, `@testing-library/jest-dom` ### Integration tests -- Tool: Cypress -- Specialized test suites for components: +- Tool: Playwright +- Specialized test suites (projects) for: - Core Console - OLM (Operator Lifecycle Manager) - Dev Console - - Shipwright - - Web Terminal - - Telemetry + - Helm - Knative + - Topology + - Web Terminal + - Smoke - Helm - Topology - Supports headless and interactive modes @@ -154,23 +155,4 @@ Prerequisites: `oc login` to a cluster, set `BRIDGE_KUBEADMIN_PASSWORD` and `WEB - `yarn test-playwright-admin` — run only admin persona tests - `yarn test-playwright-developer` — run only developer persona tests -## End-to-End Testing with Cypress (legacy) - -Integration/E2E tests validate full user workflows against a real/simulated OpenShift cluster using Cypress + Cucumber (Gherkin BDD). - -- **Focus Areas**: Core Console, OLM, Dev Console, Shipwright, Web Terminal, Telemetry, Knative, Helm, Topology. -- **Key Characteristics**: Gherkin scenarios (.feature files) + step definitions; supports headless/interactive modes; integrates axe-core for a11y. - -- **Structure**: Use Gherkin for scenarios (Given/When/Then) in .feature files; implement steps in JS/TS. -- **Selectors**: Prefer `data-test` attributes (e.g., `cy.get('[data-test="create-deployment"]')`) over brittle CSS/ARIA. -- **Async Handling**: Use `cy.wait` sparingly; prefer `cy.intercept` for API mocks + assertions. -- **Mocking**: MSW for API responses; mock external services (e.g., K8s API) to avoid cluster dependency. - -### Running E2E Tests (Setup & Commands) - -For full prerequisites (cluster login, Cypress install), see [README.md#integration-tests](README.md#integration-tests). - -See `package.json` scripts for a list of available commands to run E2E tests in different modes. -- `yarn test-cypress-` to open an interactive window for a specific Cypress test suite (e.g., `yarn test-cypress-olm`, `yarn test-cypress-devconsole`). **AI agents may struggle with interactive mode**. -- `yarn test-cypress--headless` to run the same suite in headless mode (e.g., `yarn test-cypress-olm-headless`) -- `yarn test-cypress--nightly` runs an extended suite of tests in headless mode, intended for CI/nightly runs (e.g., `yarn test-cypress-olm-nightly`) +See [README.md#integration-tests](README.md#integration-tests) for full prerequisites and running instructions. diff --git a/frontend/package.json b/frontend/package.json index f314e0ae546..25d7a015db9 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -7,9 +7,7 @@ "private": true, "workspaces": [ "packages/*", - "packages/*/integration-tests", - "public", - "integration-tests" + "public" ], "scripts": { "postinstall": "yarn ts-node ./scripts/check-patternfly-modules.ts && yarn prepare-husky", @@ -21,22 +19,8 @@ "coverage": "jest --coverage .", "eslint": "node ./node_modules/.bin/eslint --max-warnings 0 --color", "lint": "NODE_OPTIONS=--max-old-space-size=4096 yarn eslint .", - "gherkin-lint": "./node_modules/.bin/gherkin-lint -c ./packages/dev-console/integration-tests/.gherkin-lintrc ./packages/*/integration-tests/features", "test": "LANG=en_US.UTF-8 jest", "debug-test": "node --inspect-brk node_modules/.bin/jest --runInBand", - "test-cypress-console": "cd packages/integration-tests && yarn run test-cypress", - "test-cypress-console-headless": "cd packages/integration-tests && yarn run test-cypress-headless", - "test-cypress-olm": "cd packages/operator-lifecycle-manager/integration-tests && yarn run test-cypress", - "test-cypress-olm-headless": "cd packages/operator-lifecycle-manager/integration-tests && yarn run test-cypress-headless", - "test-cypress-dev-console": "cd packages/dev-console/integration-tests && yarn run test-cypress", - "test-cypress-dev-console-headless": "cd packages/dev-console/integration-tests && yarn run test-cypress-headless", - "test-cypress-dev-console-nightly": "cd packages/dev-console/integration-tests && yarn run test-cypress-nightly", - "test-cypress-knative": "cd packages/knative-plugin/integration-tests && yarn run test-cypress", - "test-cypress-knative-headless": "cd packages/knative-plugin/integration-tests && yarn run test-cypress-headless", - "test-cypress-knative-nightly": "cd packages/knative-plugin/integration-tests && yarn run test-cypress-headless-all", - "test-cypress-helm": "cd packages/helm-plugin/integration-tests && yarn run test-cypress", - "test-cypress-helm-headless": "cd packages/helm-plugin/integration-tests && yarn run test-cypress-headless", - "test-cypress-helm-nightly": "cd packages/helm-plugin/integration-tests && yarn run test-cypress-headless-all", "test-playwright": "playwright test", "test-playwright-headed": "playwright test --headed", "test-playwright-debug": "playwright test --debug", @@ -44,10 +28,6 @@ "test-playwright-admin": "playwright test --project=smoke --project=console --project=dev-console --project=helm --project=knative --project=olm --project=topology --project=webterminal", "test-playwright-developer": "playwright test --project=dev-console-developer --project=topology-developer --project=smoke-developer", "test-puppeteer-csp": "yarn ts-node ./test-puppeteer-csp.ts", - "cypress-merge": "mochawesome-merge ./gui_test_screenshots/cypress_report*.json > ./gui_test_screenshots/cypress.json", - "cypress-generate": "marge -o ./gui_test_screenshots/ -f cypress-report -t 'OpenShift Console Cypress Test Results' -p 'OpenShift Cypress Test Results' --showPassed false --assetsDir ./gui_test_screenshots/cypress/assets ./gui_test_screenshots/cypress.json", - "cypress-a11y-report": "echo '\nA11y Test Results:' && mv packages/integration-tests/cypress-a11y-report.json ./gui_test_screenshots/ && node -e \"console.table(JSON.parse(require('fs').readFileSync(process.argv[1])));\" ./gui_test_screenshots/cypress-a11y-report.json", - "cypress-postreport": "yarn cypress-merge && yarn cypress-generate", "analyze": "ANALYZE_BUNDLE=true NODE_ENV=production NODE_OPTIONS=--max-old-space-size=8192 yarn ts-node ./node_modules/.bin/rspack --mode=production", "knip": "knip --config scripts/knip.ts", "prettier-all": "prettier --write '**/*.{js,jsx,ts,tsx,json}'", @@ -96,7 +76,6 @@ "file-saver": "^2.0.5", "formik": "^2.1.5", "fuzzysearch": "^1.0.3", - "gherkin-lint": "^4.2.4", "git-url-parse": "^11.4.0", "i18next": "^25.8.18", "i18next-browser-languagedetector": "^8.2.1", @@ -143,7 +122,6 @@ "devDependencies": { "@axe-core/playwright": "^4.11.3", "@babel/core": "^7.29.7", - "@cypress/webpack-preprocessor": "^7.0.2", "@kubernetes/client-node": "^1.4.0", "@playwright/test": "^1.59.1", "@pmmmwh/react-refresh-webpack-plugin": "^0.6.2", @@ -174,11 +152,6 @@ "chalk": "2.4.x", "comment-json": "4.x", "css-loader": "^5.2.7", - "cypress": "^15.13.0", - "cypress-axe": "^1.7.0", - "cypress-cucumber-preprocessor": "^4.3.1", - "cypress-jest-adapter": "^0.1.1", - "cypress-multi-reporters": "^2.0.5", "dotenv": "^17.4.2", "esbuild-loader": "^4.4.2", "find-up": "4.x", @@ -195,10 +168,6 @@ "knip": "^6.29.0", "lint-staged": "^10.2.2", "minimist": "^1.2.8", - "mocha-junit-reporter": "^1.23.3", - "mochawesome": "^6.1.1", - "mochawesome-merge": "^4.1.0", - "mochawesome-report-generator": "^5.1.0", "monaco-editor-webpack-plugin": "^7.1.1", "node-fetch": "^2.3.0", "node-polyfill-webpack-plugin": "~4.0.0", @@ -230,10 +199,5 @@ "lint-staged": { "*.{js,jsx,ts,tsx,json}": "eslint --color --fix" }, - "dependenciesMeta": { - "cypress": { - "built": true - } - }, "packageManager": "yarn@4.14.1" } diff --git a/frontend/packages/console-shared/src/utils/test-errors.ts b/frontend/packages/console-shared/src/utils/test-errors.ts index d81265069c4..361cff1248c 100644 --- a/frontend/packages/console-shared/src/utils/test-errors.ts +++ b/frontend/packages/console-shared/src/utils/test-errors.ts @@ -1,7 +1,5 @@ /** - * Add new error message to {@link window.windowError} for Cypress test purposes. - * - * This is a functional alternative to manually updating the `windowError` value. + * Add new error message to {@link window.windowError} for E2E test purposes. */ export const addTestError = (message: string) => { if (message) { diff --git a/frontend/packages/container-security/integration-tests/bad-pods.ts b/frontend/packages/container-security/integration-tests/bad-pods.ts deleted file mode 100644 index 5d88a29c4ca..00000000000 --- a/frontend/packages/container-security/integration-tests/bad-pods.ts +++ /dev/null @@ -1,86 +0,0 @@ -import type { Priority } from '../src/const'; -import { vulnPriority } from '../src/const'; -import type { ImageManifestVuln } from '../src/types'; - -export const fakeVulnFor = (priority: Priority): ImageManifestVuln => { - return { - apiVersion: 'secscan.quay.redhat.com/v1alpha1', - kind: 'ImageManifestVuln', - metadata: { - creationTimestamp: '2019-12-23T18:30:33Z', - generation: 76, - labels: { - 'default/3scale-operator-7864b9bb5d-frhnt': 'true', - }, - name: `sha256.e94c22ba519b1e0ae035e1786a7d2eb9425d62ff60be8ba2dc6b86234540bcb${ - vulnPriority.get(priority).index - }`, - namespace: 'default', - resourceVersion: '3082821', - uid: `74b640b4-0503-4fbe-9354-1939630e082${vulnPriority.get(priority).index}`, - }, - spec: { - features: [ - { - name: 'libcurl', - namespaceName: 'centos:7', - version: '7.29.0-51.el7', - versionformat: 'rpm', - vulnerabilities: [ - { - description: - 'The curl packages provide the libcurl library and the curl utility for downloading files from servers using various protocols, including HTTP, FTP, and LDAP. Security Fix(es): * curl: NTLM password overflow via integer overflow (CVE-2018-14618) For more details about the security issue(s), including the impact, a CVSS score, acknowledgments, and other related information, refer to the CVE page(s) listed in the References section. Bug Fix(es): * baseurl with file:// hangs and then timeout in yum repo (BZ#1709474) * curl crashes on http links with rate-limit (BZ#1711914)', - fixedby: '0:7.29.0-51.el7_6.3', - link: 'https://access.redhat.com/errata/RHSA-2019:1880', - name: 'RHSA-2019:1880', - namespaceName: 'centos:7', - severity: vulnPriority.get(priority).title, - }, - ], - }, - { - name: 'libssh2', - namespaceName: 'centos:7', - version: '1.4.3-12.el7_6.2', - versionformat: 'rpm', - vulnerabilities: [ - { - description: - 'The libssh2 packages provide a library that implements the SSH2 protocol. Security Fix(es): * libssh2: Out-of-bounds memory comparison with specially crafted message channel request (CVE-2019-3862) For more details about the security issue(s), including the impact, a CVSS score, acknowledgments, and other related information, refer to the CVE page(s) listed in the References section.', - fixedby: '0:1.4.3-12.el7_6.3', - link: 'https://access.redhat.com/errata/RHSA-2019:1884', - name: 'RHSA-2019:1884', - namespaceName: 'centos:7', - severity: 'Low', - }, - { - description: - 'The libssh2 packages provide a library that implements the SSH2 protocol. The following packages have been upgraded to a later upstream version: libssh2 (1.8.0). (BZ#1592784) Security Fix(es): * libssh2: Zero-byte allocation with a specially crafted SFTP packed leading to an out-of-bounds read (CVE-2019-3858) * libssh2: Out-of-bounds reads with specially crafted SSH packets (CVE-2019-3861) For more details about the security issue(s), including the impact, a CVSS score, acknowledgments, and other related information, refer to the CVE page(s) listed in the References section. Additional Changes: For detailed information on changes in this release, see the Red Hat Enterprise Linux 7.7 Release Notes linked from the References section.', - fixedby: '0:1.8.0-3.el7', - link: 'https://access.redhat.com/errata/RHSA-2019:2136', - name: 'RHSA-2019:2136', - namespaceName: 'centos:7', - severity: 'Medium', - }, - ], - }, - ], - image: 'quay.io/alecmerdler/bad-pod', - manifest: 'sha256:e94c22ba519b1e0ae035e1786a7d2eb9425d62ff60be8ba2dc6b86234540bcbf', - namespaceName: 'centos:7', - }, - status: { - affectedPods: { - 'default/3scale-operator-7864b9bb5d-frhnt': [ - 'cri-o://fa5adc149410ef015919abd1b7b0f747d1cc8958f76e4d6ce79538d701018abc', - ], - }, - fixableCount: 0, - highCount: 0, - highestSeverity: vulnPriority.get(priority).title, - lastUpdate: '2019-12-27 22:00:48.328470155 +0000 UTC', - lowCount: 1, - mediumCount: 1, - }, - }; -}; diff --git a/frontend/packages/dev-console/integration-tests/.gherkin-lintrc b/frontend/packages/dev-console/integration-tests/.gherkin-lintrc deleted file mode 100644 index 36ee1d17851..00000000000 --- a/frontend/packages/dev-console/integration-tests/.gherkin-lintrc +++ /dev/null @@ -1,82 +0,0 @@ -{ - "no-files-without-scenarios" : "on", - "no-unnamed-features": "on", - "no-unnamed-scenarios": "on", - "no-dupe-scenario-names": ["on", "in-feature"], - "no-dupe-feature-names": "on", - "no-partially-commented-tag-lines": "on", - "indentation" : ["off", {"Feature": 0, "Background": 4, "Scenario": 4, "Step": 8, "Examples": 8, "example": 12, "given": 8, "when": 8, "then": 8, "and": 8, "but": 8, "feature tag": 0, "scenario tag": 4}], - "no-trailing-spaces": "on", - "new-line-at-eof": ["on", "yes"], - "no-multiple-empty-lines": "off", - "no-empty-file": "on", - "no-scenario-outlines-without-examples": "on", - "name-length": "off", - "allowed-tags": ["on", - {"tags": - [ - "@pre-condition", - "@un-verified", - "@broken-test", - "@knative-admin", - "@service-mesh", - "@crw", - "@cnv", - "@knative-camelk", - "@getting-started", - "@health-checks", - "@e2e", - "@to-do", - "@manual", - "@regression", - "@smoke", - "@add-flow", - "@topology", - "@knative", - "@knative-camelK", - "@knative-eventing", - "@knative-kafka", - "@knative-serverless", - "@guided-tour", - "@helm", - "@monitoring", - "@pipelines", - "@virtualization", - "@web-terminal", - "@vulnerability", - "@kafka", - "@project-access", - "@dev-console", - "@build-config", - "@common", - "@config-maps", - "@customize", - "@customize-catalogs", - "@customize-telemetry", - "@customize-web-terminal", - "@deployment", - "@perspective", - "@pod-list", - "@route-dev", - "@search-page", - "@shipwright", - "@user-preference" - ], - "patterns": - [ - "^@ODC-", - "^@OCPBUGS-" - ] - }], - "no-restricted-tags": ["on", {"tags": ["@watch", "@wip", "@debug"]}], - "use-and": "off", - "no-duplicate-tags": "on", - "no-superfluous-tags": "on", - "no-homogenous-tags": "off", - "one-space-between-tags": "on", - "no-unused-variables": "on", - "no-empty-background": "on", - "scenario-size": ["off", { "steps-length": {"Background": 8, "Scenario": 20}}], - "max-scenarios-per-file": ["off", {"maxScenarios": 20, "countOutlineExamples": true}], - "file-name": ["on", {"style": "kebab-case"}] -} diff --git a/frontend/packages/dev-console/integration-tests/.github/PULL_REQUEST_TEMPLATE/qe-automation-pr.md b/frontend/packages/dev-console/integration-tests/.github/PULL_REQUEST_TEMPLATE/qe-automation-pr.md deleted file mode 100644 index 8aca269e239..00000000000 --- a/frontend/packages/dev-console/integration-tests/.github/PULL_REQUEST_TEMPLATE/qe-automation-pr.md +++ /dev/null @@ -1,56 +0,0 @@ -**Description:** - - - -**Jira Id:** - - - - -**Pre-conditions/setup:** - - - -**Checks for approving Epic scenarios Automation PR:** - - - -- [ ] Execute the @to-do tagged gherkin scripts manually -- [ ] Convert the @to-do gherkin scripts to cypress automation scripts -- [ ] Once scripts are automated, replace tag @to-do with @epic-number -- [ ] Execute the scripts in Remote cluster - -**Refactoring criteria for approving Automation PR:** - - - -- [ ] update the test cases count in [Automation status confluence Report](https://docs.jboss.org/display/ODC/Automation+Status+Report) - -**Execution Commands:** -Example: - -``` - export NO_HEADLESS=true && export CHROME_VERSION=$(/usr/bin/google-chrome-stable --version) - BRIDGE_KUBEADMIN_PASSWORD=YH3jN-PRFT2-Q429c-5KQDr - BRIDGE_BASE_ADDRESS=https://console-openshift-console.apps.dev-svc-4.8-042801.devcluster.openshift.com - export BRIDGE_KUBEADMIN_PASSWORD - export BRIDGE_BASE_ADDRESS - oc login -u kubeadmin -p $BRIDGE_KUBEADMIN_PASSWORD - oc apply -f ./frontend/packages/console-shared/src/test-data/htpasswd-secret.yaml - oc patch oauths cluster --patch "$(cat ./frontend/packages/console-shared/src/test-data/patch-htpasswd.yaml)" --type=merge - - ./integration-tests/test-cypress.sh -p dev-console -``` - -**Screen shots**: - - - -**Browser conformance**: - - - -- [ ] Chrome -- [ ] Firefox -- [ ] Safari -- [ ] Edge diff --git a/frontend/packages/dev-console/integration-tests/README.md b/frontend/packages/dev-console/integration-tests/README.md deleted file mode 100644 index 949e9ce832e..00000000000 --- a/frontend/packages/dev-console/integration-tests/README.md +++ /dev/null @@ -1,242 +0,0 @@ -# Getting Started - -- [Cypress Cucumber Hand book](https://docs.google.com/document/d/1hL_k5r6CVxbY5va6RPPCJfndQjLwSdt6SUKj-kWLqig/edit#) - -## Setup - -### Include Extensions - -- "alexkrechik.cucumberautocomplete", -- "dylanmoerland.cypress-cucumber-steps" -- "streetsidesoftware.code-spell-checker" - -Add below content in settings.json under .vscode folder - -```json -{ - "cucumberautocomplete.steps": [ - "./frontend/packages/*/integration-tests/support/step-definitions/*/*.ts", - ], - "cucumberautocomplete.strictGherkinCompletion": true, - "editor.quickSuggestions": true, - "editor.defaultFormatter": "esbenp.prettier-vscode", - "[javascript]": { - "editor.defaultFormatter": "esbenp.prettier-vscode" - } -} -``` - -## Directory Structure - -Folder structure of cypress cucumber framework - -``` -frontend/packages/dev-console/integration-tests/ -├── features -| ├── addFlow <--- Add flow gherkin scenarios -| | └──create-from-git.feature -| ├── topology <--- Topology gherkin scenarios -| | └──chart-area-visual.feature -| ├── knative <--- Knative gherkin scenarios -| | └──create-event-sources.feature -| ├── helm <--- Helm gherkin scenarios -| | └──helm-navigation.feature -| ├── BestPractices.md <--- Gherkin script standards -├── plugins <--- Plugins provide a way to support and extend the behavior of cypress -| | └── index.ts -├── support <--- cypress cucumber support configurations -| ├── commands <--- add commands to Cypress 'cy.' global, other support configurations -| | └── index.ts -| | └── app.ts <--- hooks are added in this file -| ├── constants <--- enums required for dev-console scripts -| | | └──static-text -| | | └── add-fow-text.ts <--- enums required for dev-console scripts -│ | └── add.ts -| | └── global.ts -| ├── pageObjects <--- Object Repository [Going forward will publish it as npm module] -│ | ├── add-flow-po.ts <--- Add flow related page objects -| | └── helm-po.ts <--- Helm related page objects -| ├── pages <--- page functions -│ | ├── add-flow <--- Add flow related helper objects and page functions -| | | └──add-page.ts -| | └── app.ts <--- Re-usable helper objects and page functions -| ├── step-definitions <--- cucumber step implementations -│ | ├── addFlow <--- Re-usable dev-console step definitions -| | create-from-catalog.ts -| | └──project-creation.ts -│ | ├── common <--- Re-usable dev-console step definitions -| | └──common.ts -| | └──project-creation.ts -├── testData <--- Test data required for scripts -├── cypress.json <--- cypress configuration file -``` - -## This file consists of guide lines to create automation scripts - -## Designing Gherkin scripts [.feature] - -1. Design the gherkin scripts as per the [Best Practices](frontend/packages/dev-console/integration-tests/features/BestPractices.md) -2. Design Gherkin scripts in same repo, where intellisense is provided by installed plugins to select the existing steps -3. Execute `yarn run gherkin-lint` which scans the feature files as per the linter [configuration file](frontend/.gherkin-lintrc) -4. Always comment the existing steps if it is related to older versions - -### Designing Step Definition files [.ts] - -#### Generate Step Definition files - -1. Navigate to the "login.feature" file -2. Select the command "Generate Steps from feature file" (By pressing "Ctrl+Shift+P" keys, commands will appear in vs code), -3. "login" folder is generated with "login.ts" step definition file -4. Add the comments wherever required - -#### Guidelines to design Step Definition files - -1. Only validations should be present -2. Don't use test data directly - It needs to be passed via data files (will use .ts files for now ) -3. Avoid hard coded sleep statements like `cy.wait()` - -### pages - -1. Use arrow functions -2. Implement the logics -3. Don't use hard coded values like `waitTime` - -### page objects - -1. Page objects should be id, css selectors etc.. [No XPath] - - - Each section should have one object as shown below (It helps to reduce the import list in scenarios) - -```ts -export const devFilePO = { - form: '[data-test-id="import-devfile-form"]', - formFields: { - validatedMessage: '#form-input-git-url-field-helper', - advancedGitOptions: { - gitReference: '#form-input-git-ref-field', - contextDir: 'form-input-git-dir-field', - sourceSecret: '', - }, - }, -}; -``` - -### TestData files - -1. All test data should be maintained in frontend/testData -2. file should end with "-data.ts" -3. Comment the scenario file name, If data is relevant to specific scenario - -## Review Process - -### Feature files Review - -- Epic related feature files needs to reviewed in 2 phases - -1. Review by Dev team for standardization & Functional check [Peer Review] -2. Review by Dev team [Preferably Feature owner] - -- To update the feature files not related to epics - -1. Review by team for standardization & Functional check [Peer Review] - -### Code Review Process - -- Github adds a reviewer automatically for the PR - -1. Review by Dev team for standardization [Peer Review] -2. Review by Dev team [Optional] - -### What needs to be reviewed as part of Code Review - -#### Step Definitions - -1. If step definition is already available as part of other gherkin scripts, It should be moved to the appropriate file under step-definitions -> common folder -2. No duplicates -3. No console.log statements -4. If functionality is not implemented, It should contain a comment like "// TODO: implement step" -5. Avoid locators - -#### Pages - -1. function names should be appropriate -2. No Duplicate function names -3. Add the appropriate comments, wherever applicable -4. Number of lines in Function should be less than 10 -5. Number of lines in page should be less than 100 -6. Avoid page objects as much as possible [To reduce duplication] -7. Code Readability -8. file name should end with -page.ts - -#### Page Objects - -1. Maintain Hierarchy -2. Variable names should be meaningful -3. file name should end with `-po.ts` - -#### Constants - -1. Drop down text, tiles etc.. related text maintained in appropriate file -2. It should start with caps - -- Under Static text folder - -1. error messages, warning or successful text are maintained -2. use camel case for naming -3. file name should end with `-text.ts` - -## Scripts Execution - -### Pre-Condition to run on localhost - -1. Build the environment in your local as per the README.md present in console -2. To execute the scripts, always update config file [Cypress.json file](frontend/packages/dev-console/integration-tests/cypress.json) as per the requirement - -### Execute cypress scripts from cypress Dashboard - -If you need to execute "regression" tagged scripts follow below process - -1. Update the TAGS under env section in config file [Cypress.json file](frontend/packages/dev-console/integration-tests/cypress.json) as - "env": { - "TAGS": "@regression and not @manual" - }, -2. In command prompt, navigate to frontend folder and execute the command "yarn test-cypress-devconsole" -3. Select the browser present on top right corner of the dashboard [Note: it displays all installed browsers in your local machine] - -#### Single file execution - -Select the appropriate feature file and regression scripts get executed - -#### Multiple files execution - -Select the Run button present on top right corner - -### Execute cypress scripts from CLI - -If you need to execute "smoke" tagged scripts present in single feature file then follow below process - -1. Update the TAGS under env section in config file [Cypress.json file](frontend/packages/dev-console/integration-tests/cypress.json) as - "env": { - "TAGS": "@smoke and not @manual" - }, -2. In command prompt, navigate to frontend folder and execute the command "yarn test-cypress-devconsole-headless" -3. All the regression scenarios get executed [Note: currently implementation is not done] - -#### Reporting - -1. [Reports](frontend/gui_test_screenshots) are generated -2. In command prompt, navigate to frontend folder and execute the command `yarn run cypress-merge` -3. Then execute command `yarn run cypress-generate` -4. cypress-report.html file is generated - -## Generic Guidelines - -1. Don't use static sleep statements (browser.sleep) -2. Comments should be included wherever required -3. Don't include console.log statements while raising PR -4. .gherkin-lintrc configuration file present in frontend folder is used to set Gherkin standards -5. Execute the "yarn run gherkin-lint" command for every PR - -## References - [Cypress Cucumber Handbook](https://docs.google.com/document/d/1hL_k5r6CVxbY5va6RPPCJfndQjLwSdt6SUKj-kWLqig/edit#) - [Cypress Cucumber Implementation](https://docs.google.com/presentation/d/1GyF3WWDnmNVsEn_zIPO3ZyLjSjV3B5RVEdlauiZonP8/edit#slide=id.p1) diff --git a/frontend/packages/dev-console/integration-tests/cypress.config.js b/frontend/packages/dev-console/integration-tests/cypress.config.js deleted file mode 100644 index 7943e8af0a6..00000000000 --- a/frontend/packages/dev-console/integration-tests/cypress.config.js +++ /dev/null @@ -1,14 +0,0 @@ -const { defineConfig } = require('@console/cypress-integration-tests/cypress-common-config'); - -module.exports = defineConfig({ - fixturesFolder: 'testData', - env: { - TAGS: - '(@pre-condition or @smoke or @regression) and not (@manual or @to-do or @un-verified or @broken-test)', - NAMESPACE: 'aut-pipelines', - }, - e2e: { - specPattern: 'features/**/*.{feature,features}', - supportFile: 'support/commands/index.ts', - }, -}); diff --git a/frontend/packages/dev-console/integration-tests/features/.github/PULL_REQUEST_TEMPLATE/qe-pr.md b/frontend/packages/dev-console/integration-tests/features/.github/PULL_REQUEST_TEMPLATE/qe-pr.md deleted file mode 100644 index 8e55ce98752..00000000000 --- a/frontend/packages/dev-console/integration-tests/features/.github/PULL_REQUEST_TEMPLATE/qe-pr.md +++ /dev/null @@ -1,23 +0,0 @@ -**Jira Id:** - - - -**Acceptance Criteria:** - - -**Pre-conditions for Epic validation:** - - -**Checks required for approving Epic gherkin scripts PR:** - -- [ ] Add @epic-number to the scenarios or feature file [e.g: @odc-xxx] -- [ ] Add @to-do for automation possible scenarios -- [ ] Add @regression or @smoke based on the importance of the scenario -- [ ] Update the test scenarios count in [Automation status confluence Report](https://docs.jboss.org/display/ODC/Automation+Status+Report) -- [ ] Check for the linter issues by executing `yarn run gherkin-lint` on frontend folder [Skip epic number tags related linter issues] - -**Refactoring Gherkin scripts criteria for approving PR:** - -- [ ] Check the linter issues by executing `yarn run gherkin-lint` on frontend folder [Skip epic number tags related linter issues] -- [ ] Update the test cases count in [Automation status confluence Report](https://docs.jboss.org/display/ODC/Automation+Status+Report) -- [ ] Add @un-verified tag which are not verified by ODC QE diff --git a/frontend/packages/dev-console/integration-tests/features/BestPractices.md b/frontend/packages/dev-console/integration-tests/features/BestPractices.md deleted file mode 100644 index 6a8ba6975b5..00000000000 --- a/frontend/packages/dev-console/integration-tests/features/BestPractices.md +++ /dev/null @@ -1,73 +0,0 @@ -# Gherkin Scenarios designing Best Practices - -Scenario Titles should follow below rules - a. One line statement - b, Use conjunction words like and, but, if at all required, but always make sure each scenario focused on one behavior - c. Avoid disjunction words like because, so, since etc.. - d. Avoid assertion language like verify, assert, should etc.. - -BDD scenarios should follow below rules - 1. Gherkin Golden Rule - Declarative sentences - ``` - - Scenario: Add shoes to the shopping cart - Given the shoe store home page is displayed - When the shopper searches for "red pumps" - And the shopper adds the first result to the cart - Then the cart has one pair of "red pumps" - ``` - - 2. Cardinal Rule of BDD - One to one rule - a. Collaboration: More focus and less confusion - b. Automation: Each test failure points to a unique problem - c. Efficiency: Less complex work makes for faster cycle times - d. Traceability: 1 behavior → 1 example → 1 scenario → 1 test → 1 result - e. Accountability: Teams cannot hide or avoid behaviors - - 3. Unique Example Rule - Use effective examples - ``` - Scenario Outline: Simple product search - Given the shoe store home page is displayed - When the search phrase "" is entered - Then results for "" are shown - - Examples: Shoes - | phrase | - | red pumps | - | sneakers | - ``` - - 4. Good Grammar rule - Language matters - a. Given [Context] - should use past or present-perfect tense, because they represent an initial state that must already be established - b. When [Action] - should use present tense, because they represent actions actively performed as part of the behavior. - c. Then [Outcome] - should use present or future tense, because they represent what should happen after the behavior actions. - -## BDD Style Guidelines - - 1. Focus on customer needs - 2. Limit one feature per feature file. This makes it easy to find features. - 3. Limit the number of scenarios per feature. Nobody wants a thousand-line feature file. A good measure is a dozen scenarios per feature. - 4. Limit the number of steps per scenario to less than ten. - 5. Limit the character length of each step. Common limits are 80-120 characters. - 6. Use proper spelling. - 7. Use proper grammar. - 8. Capitalize Gherkin keywords. - 9. Capitalize the first word in titles. - 10. Do not capitalize words in the step phrases unless they are proper nouns. - 11. Do not use punctuation (specifically periods and commas) at the end of step phrases. - 12. Use single spaces between words. - 13. Indent the content beneath every section header. - 14. Separate features and scenarios by two blank lines. - 15. Separate examples tables by 1 blank line. - 16. Do not separate steps within a scenario by blank lines. - 17. Space table delimiter pipes (“|”) evenly. - 18. Adopt a standard set of tag names. Avoid duplicates. - 19. Write all tag names in lowercase, and use hyphens (“-“) to separate words. - 20. Limit the length of tag names. - 21. All parameter names should wrap with "<>" - 22. label names, page names and popup header names should wrap with "" - - -## Reusable steps - - Given user is at the Import from Git form diff --git a/frontend/packages/dev-console/integration-tests/features/addFlow/add-page.feature b/frontend/packages/dev-console/integration-tests/features/addFlow/add-page.feature deleted file mode 100644 index cfee9c38b41..00000000000 --- a/frontend/packages/dev-console/integration-tests/features/addFlow/add-page.feature +++ /dev/null @@ -1,91 +0,0 @@ -@add-flow @dev-console -Feature: Add page on Developer Console - As a user, I should be able select a way to create an Application, component or service from one of the options provided on Add page - - - Background: - Given user is at developer perspective - And user has created or selected namespace "aut-verify-add-page" - And user is at Add page - - - @regression - Scenario: Getting started resources on Developer perspective: A-11-TC01 - Then user will see Getting started resources - And user will see Create Application using Samples - And user will see Build with guided documentation - And user will see Explore new developer features - - - @regression - Scenario: Options to create an Application, Component or Service: A-11-TC02 - Then user will see "Software Catalog" card - And user will see "Git Repository" card - And user will see "Container images" option - And user will see "Samples" option - And user will see "From Local Machine" card - - - @regression - Scenario: Software Catalog option to create an Application, Component or Service: A-11-TC03 - Then user will see "All services" option - And user will see "Database" option - And user will see "Operator Backed" option - And user will see "Helm Chart" option - - - @regression - Scenario: Git Repository option to create an Application, Component or Service: A-11-TC04 - Then user will see "Import from Git" option - - - @regression - Scenario: From Local Machine option to create an Application, Component or Service: A-11-TC05 - Then user will see "Import YAML" option - And user will see "Upload JAR file" option - - - @smoke - Scenario: Hide Getting Started Resources from View: A-11-TC06 - Given user has Getting Started Resources shown in Add page - When user clicks on Show getting started resources link - Then user will not see Getting started resources card - - - @smoke - Scenario: Show Getting Started Resources from View: A-11-TC07 - Given user has hidden Getting Started Resources from View - When user clicks on Show getting started resources link - Then user will see Getting started resources card - - - @smoke @manual - Scenario: Close Show Getting Started Resources link: A-11-TC08 - When user selects Hide from view option from kebab menu - And user clicks on close Show getting started resources link - Then user will not see Show getting started resources link - - - @regression - Scenario: Details Toggle on: A-11-TC09 - Given add page Details toggle shows "Details off" - When user clicks Details toggle - Then user will see Detail toggle label "Details on" - And user will see description of each option on each card - - - @regression - Scenario: Details Toggle off: A-11-TC10 - Given add page Details toggle shows "Details on" - When user clicks Details toggle - Then user will see Detail toggle label "Details off" - And user will not see description of option on cards - # reset details toggle (it is saved in the user settings) - And user clicks Details toggle - - - @regression @manual - Scenario: Getting Started Resources card when all Quick Starts have been completed: A-11-TC11 - Given user has completed all Quick Starts - Then user will not see Build with guided documentation at Developer perspective on getting started resources card - And user will not see Build with guided documentation at Administrator perspective on getting started resources card diff --git a/frontend/packages/dev-console/integration-tests/features/addFlow/catalog-all-namespaces.feature b/frontend/packages/dev-console/integration-tests/features/addFlow/catalog-all-namespaces.feature deleted file mode 100644 index eeb7c0b0171..00000000000 --- a/frontend/packages/dev-console/integration-tests/features/addFlow/catalog-all-namespaces.feature +++ /dev/null @@ -1,21 +0,0 @@ -@add-flow @dev-console -Feature: Software Catalog with All Namespaces in Dev Perspective - As a developer, when I visit the catalog with all namespaces selected, I should see the project selection page instead of the catalog - - Background: - Given user is at developer perspective - - @regression - Scenario: Software Catalog forces project selection when all namespaces URL is accessed: A-12-TC01 - When user navigates to catalog all namespaces page - Then user will see "Software Catalog" page heading - And user will see "Select a Project to view the software catalog" help text - And user will not see catalog tiles or items - - @regression - Scenario: Software Catalog shows catalog items when specific project is selected: A-12-TC02 - Given user has created or selected namespace "aut-catalog-namespaces" - And user is at Software Catalog page - Then user will see "Software Catalog" page heading - And user will see catalog tiles or items - And user will not see "Select a Project to view the software catalog" help text diff --git a/frontend/packages/dev-console/integration-tests/features/addFlow/create-from-catalog.feature b/frontend/packages/dev-console/integration-tests/features/addFlow/create-from-catalog.feature deleted file mode 100644 index 185a339bdf4..00000000000 --- a/frontend/packages/dev-console/integration-tests/features/addFlow/create-from-catalog.feature +++ /dev/null @@ -1,43 +0,0 @@ -@add-flow @dev-console -Feature: Create Application from Catalog file - As a user, I want to create the application, component or service from Add Flow Catalog file - - Background: - Given user is at developer perspective - And user has created or selected namespace "aut-addflow-catalog" - And user is at Add page - - - @regression - Scenario: Create the workload using Builder Image: A-01-TC01 - Given user is at Software Catalog page - When user selects "Builder Image" option from Type section - And user searches and selects Builder Image card "Node.js" from catalog page - And user clicks Create Application button on side bar - And user enters Git Repo url in s2i builder image page as "https://github.com/sclorg/nodejs-ex.git" - And user selects resource type as "Deployment" - And user enters Application name as "builder-app" - And user enters workload name as "builder" - And user clicks create button - Then user will be redirected to Topology page - And user is able to see workload "builder" in topology page - - - @smoke - Scenario Outline: Deploy Application using Catalog Template "": A-01-TC02 - Given user is at Software Catalog page - And user is at Templates page - When user selects Template category "" - And user searches and selects Template card "" from catalog page - And user clicks Instantiate Template button on side bar - And user clicks create button on Instantiate Template page - Then user will be redirected to Topology page - And user is able to see workload "" in topology page - - Examples: - | template_category | card_name | workload_name | - | CI/CD | Jenkins | jenkins | - | Databases | MariaDB | mariadb | - | Languages | Node.js + PostgreSQL (Ephemeral) | nodejs-postgresql-example | - | Middleware | Apache HTTP Server | httpd-example | - | Other | Nginx HTTP server and a reverse proxy | nginx-example | diff --git a/frontend/packages/dev-console/integration-tests/features/addFlow/create-from-container-image.feature b/frontend/packages/dev-console/integration-tests/features/addFlow/create-from-container-image.feature deleted file mode 100644 index dbb0900c40b..00000000000 --- a/frontend/packages/dev-console/integration-tests/features/addFlow/create-from-container-image.feature +++ /dev/null @@ -1,80 +0,0 @@ -@add-flow @dev-console -Feature: Create Application from Container image file - As a user, I want to create the application, component or service from Add Flow Container image - - Background: - Given user is at developer perspective - And user has created or selected namespace "aut-addflow-containerimage" - And user is at Add page - - - @regression - Scenario: Deploy image page details on entering external registry image name: A-02-TC01 - Given user is at Deploy Image page - When user enters Image name from external registry as "openshift/hello-openshift" - Then user can see the image name gets Validated - And Application name displays as "hello-openshift-app" - And Name displays as "hello-openshift" - And advanced option Create a route to the application is selected - - - @regression - Scenario Outline: Deploy image with Runtime icon from external registry: A-02-TC02 - Given user is at Deploy Image page - When user enters Image name from external registry as "" - And user selects the "" from Runtime Icon dropdown - And user selects the application "sample-app" from Application dropdown - And user enters Name as "" - And user selects resource type as "deployment" - And user clicks Create button on Add page - Then user will be redirected to Topology page - And user will see the deployed image "" with "" icon - - Examples: - | image | image_name | runtime_icon | name | - | secure | openshift/hello-openshift | fedora | hello-secure | - # | insecure | | ansible | hello-insecure | - - - @smoke - Scenario Outline: Deploy image with Runtime icon from internal registry: A-02-TC03 - Given user is at Deploy Image page - When user selects Image stream tag from internal registry - And user selects Project as "openshift" from internal registry - And user selects Image Stream as "" from internal registry - And user selects tag as "latest" from internal registry - And user selects the "" from Runtime Icon dropdown - And user selects the application "sample-app" from Application dropdown - And user enters Name as "" - And user selects resource type as "deployment" - And user clicks Create button on Add page - Then user will be redirected to Topology page - And user will see the deployed image "" with "" icon - - Examples: - | image_stream | runtime_icon | name | - | golang | fedora | hello-internal | - - - @regression - Scenario: Perform cancel operation on Container image form: A-02-TC04 - Given user is at Deploy Image page - When user selects Image stream tag from internal registry - And user selects Project as "openshift" from internal registry - And user selects Image Stream as "golang" from internal registry - And user selects tag as "latest" from internal registry - And user clicks Cancel button on Deploy Image page - Then user will be redirected to Add page - - - @regression - Scenario: Edit Runtime Icon while Editing Image: A-02-TC05 - Given user has deployed container Image "openshift/hello-openshift" from external registry - And user is at Topology page - And topology page has a deployed image "hello-openshift" with Runtime Icon "fedora" - When user right clicks on the node "hello-openshift" to open context menu - And user selects Edit imagename "hello-openshift" option - And user updates the Runtime icon to "ansible" - And user clicks on Save button - Then user will be redirected to Topology page - And user will see the deployment image "hello-openshift" icon updated to "ansible" Icon diff --git a/frontend/packages/dev-console/integration-tests/features/addFlow/create-from-database.feature b/frontend/packages/dev-console/integration-tests/features/addFlow/create-from-database.feature deleted file mode 100644 index 1618c7ddc46..00000000000 --- a/frontend/packages/dev-console/integration-tests/features/addFlow/create-from-database.feature +++ /dev/null @@ -1,18 +0,0 @@ -@add-flow @dev-console -Feature: Create Application from Database - As a user, I want to create the application, component or service from Database using Add Flow - - Background: - Given user is at developer perspective - And user has created or selected namespace "aut-addflow-database" - - - @smoke - Scenario: Create the Database from Add page: A-03-TC01 - Given user is at Add page - When user clicks Database card - And user selects "MariaDB" database on Software Catalog - And user clicks Instantiate Template button on side bar - And user clicks create button on Instantiate Template page - Then user will be redirected to Topology page - And user is able to see workload "mariadb" in topology page diff --git a/frontend/packages/dev-console/integration-tests/features/addFlow/create-from-devfile.feature b/frontend/packages/dev-console/integration-tests/features/addFlow/create-from-devfile.feature deleted file mode 100644 index 8e9ee933c0e..00000000000 --- a/frontend/packages/dev-console/integration-tests/features/addFlow/create-from-devfile.feature +++ /dev/null @@ -1,74 +0,0 @@ -@add-flow @dev-console -Feature: Create Application from Devfile - As a user, I want to deploy an application from git repo with devfile - - - Background: - Given user is at developer perspective - And user has created or selected namespace "aut-addflow-devfile" - And user is at Add page - - - @regression - Scenario: Deploy git workload with devfile from topology page: A-04-TC01 - Given user is at the Topology page - When user right clicks on topology empty graph - And user selects "Import from Git" option from Add to Project context menu - And user enters Git Repo URL as "https://github.com/nodeshift-starters/devfile-sample" in Import from Git form - And user enters workload name as "node-bulletin-board-1" - And user clicks Create button on Add page - Then user will be redirected to Topology page - And user is able to see workload "node-bulletin-board-1" in topology page - - - @regression - Scenario: Create the workload from dev file: A-04-TC02 - Given user is at Import from Git form - When user enters Git Repo URL as "https://github.com/nodeshift-starters/devfile-sample" - And user enters workload name as "node-example" - And user clicks Create button on Add page - Then user will be redirected to Topology page - And user is able to see workload "node-example" in topology page - And user will see sidebar in topology page with title "node-example" - - - @regression @broken-test - Scenario: No service is shown in the node sidebar if it is not defined in the devfile : A-04-TC03 - Given user has created workload "node-example" with resource type "Deployment" - And user is at Topology page - When user clicks on workload "node-example" - Then user can see sidebar opens with Resources tab selected by default - And user can see under Services section "No Services found for this resource." - - - @regression @broken-test - Scenario: No route is shown in the node sidebar if it is not defined in the devfile : A-04-TC04 - Given user has created workload "node-example" with resource type "Deployment" - And user is at Topology page - When user clicks on workload "node-example" - Then user can see sidebar opens with Resources tab selected by default - And user can see under Routes section "No Routes found for this resource." - - - - - # Below scenario to be removed after the tests are are updated - # @smoke - # Scenario: Create the sample workload from dev file: A-04-TC03 - # Given user is at Import from Git page - # When user selects Try sample link - # And user clicks Create button on Devfile page - # Then user will be redirected to Topology page - # And user is able to see workload "devfile-sample" in topology page - - - @regression @to-do - Scenario: Create the Devfiles workload from Software Catalog: A-04-TC05 - Given user is at Software Catalog page - When user clicks on Devfiles type - And user clicks on Basic Python card - And user clicks on Create Application on the side drawer - And user enters Application name as "devfile-sample-python-basic-git-app" in DevFile page - And user enters Name as "devfile-sample-python-basic-git1" - And user clicks on Create - Then user is able to see workload "devfile-sample-python-basic-git1" in topology page diff --git a/frontend/packages/dev-console/integration-tests/features/addFlow/create-from-docker-file.feature b/frontend/packages/dev-console/integration-tests/features/addFlow/create-from-docker-file.feature deleted file mode 100644 index aaf3022b369..00000000000 --- a/frontend/packages/dev-console/integration-tests/features/addFlow/create-from-docker-file.feature +++ /dev/null @@ -1,58 +0,0 @@ -@add-flow @dev-console -Feature: Create Application from Docker file - As a user, I want to create the application, component or service from Add Flow Docker file - - Background: - Given user is at developer perspective - And user has created or selected namespace "aut-addflow-docker" - And user is at Add page - - - @regression - Scenario: Dockerfile details after entering git repo url: A-05-TC01 - Given user is on Import from Git form - When user enters Git Repo URL as "https://github.com/rohitkrai03/flask-dockerfile-example" - Then git url "https://github.com/rohitkrai03/flask-dockerfile-example" gets Validated - And application name displays as "flask-dockerfile-example-app" - And name field auto populates with value "flask-dockerfile-example" in Import from Git form - - - # @smoke - # Marking this scenario as @manual, because due to git-rate limit issue, below scenarios are failing - # TODO: Use Cypress HTTP mocking to solve the github rate limiting issue. See - https://docs.cypress.io/guides/guides/network-requests - @regression @manual - Scenario Outline: Create a workload from Docker file with "" as resource type: A-05-TC02 - Given user is on Import from Git form - When user enters Git Repo URL as "https://github.com/rohitkrai03/flask-dockerfile-example" - And user enters Name as "" in Docker file page - And user selects "" in Resource type section - And user clicks Create button on Add page - Then user will be redirected to Topology page - And user is able to see workload "" in topology page - And user will see sidebar in topology page with title "" - - Examples: - | resource_type | name | - | Deployment | dockerfile | - | Deployment Config | dockerfile-1 | - - - @regression - Scenario: Performing cancel operation on Dockerfile form should redirected the user to Add page: A-05-TC03 - Given user is on Import from Git form - When user enters Git Repo URL as "https://github.com/rohitkrai03/flask-dockerfile-example" - And user selects "Deployment" in Resource type section - And user clicks Cancel button on Add page - Then user will be redirected to Add page - - - @regression @ODC-7614 - Scenario: Create workload from Dockerfile and verify the Exposed Port in the Target Port section: A-05-TC04 - Given user is on Import from Git form - When user enters Git Repo URL as "https://github.com/rohitkrai03/flask-dockerfile-example" - And user enters Name as "dockerfile-5000" in Docker file page - And user selects "Deployment" in Resource type section - And user selects "5000" in Target Port section - And user clicks Create button on Add page - Then user will be redirected to Topology page - And user is able to see workload "dockerfile-5000" in topology page diff --git a/frontend/packages/dev-console/integration-tests/features/addFlow/create-from-git.feature b/frontend/packages/dev-console/integration-tests/features/addFlow/create-from-git.feature deleted file mode 100644 index 502107e6919..00000000000 --- a/frontend/packages/dev-console/integration-tests/features/addFlow/create-from-git.feature +++ /dev/null @@ -1,286 +0,0 @@ -@add-flow @dev-console -Feature: Create Application from git form - As a user, I want to create the application, component or service from Add options - - Background: - Given user is at developer perspective - And user has created or selected namespace "aut-addflow-git" - And user is at Add page - - - # @smoke - # Marking this scenario as @manual, because due to git-rate limit issue, below scenarios are failing - # TODO: Use Cypress HTTP mocking to solve the github rate limiting issue. See - https://docs.cypress.io/guides/guides/network-requests - @regression @manual @ODC-6266 - Scenario Outline: Add new git workload with new application for resource type "": A-06-TC01 - Given user is at Import from Git form - When user enters Git Repo URL as "https://github.com/sclorg/dancer-ex.git" - And user enters Application name as "dancer-ex-git-app" - And user enters Name as "" - And user selects resource type as "" - And user clicks Create button on Add page - Then user will be redirected to Topology page - And user can see toast notification saying "" created successfully - And user is able to see workload "" in topology page - - Examples: - | name | resource_type | - | import-git | Deployment | - | import-git-1 | DeploymentConfig | - - - @regression @ODC-6266 - Scenario: Add new git workload to the existing application: A-06-TC02 - Given user has created workload "exist-git" with resource type "Deployment" - And user is at Add page - And user is at Import from Git form - When user enters Git Repo URL as "https://github.com/sclorg/dancer-ex.git" - And user enters Application name as "nodejs-ex-git-app" - And user enters Name as "dancer-ex-git-2" - And user selects resource type as "Deployment Config" - And user clicks Create button on Add page - Then user will be redirected to Topology page - And user can see toast notification saying "DeploymentConfig" created successfully - And user can see the created workload "dancer-ex-git-2" is linked to existing application "nodejs-ex-git-app" - - - @regression - Scenario: Cancel the git workload creation: A-06-TC03 - Given user is at Import from Git form - When user enters Git Repo URL as "https://github.com/sclorg/dancer-ex.git" - And user clicks Cancel button on Add page - Then user will be redirected to Add page - - - @regression - Scenario: Create workload without application route: A-06-TC04 - Given user is at Import from Git form - When user enters Git Repo URL as "https://github.com/sclorg/dancer-ex.git" - And user enters Application name as "app-no-route" - And user enters Name as "name-no-route" - And user unselects the advanced option Create a route to the application - And user clicks Create button on Add page - Then user will be redirected to Topology page - And user will see sidebar in topology page with title "name-no-route" - And public url is not created for node "name-no-route" in the workload sidebar - - - @regression @ODC-6266 - Scenario: Create a git workload with advanced option "Routing": A-06-TC05 - Given user is at Import from Git form - When user enters Git Repo URL as "https://github.com/sclorg/dancer-ex.git" - And user enters name as "git-route" in General section - And user clicks "Show advanced Routing options" link in Advanced Options section - And user enters "route=testRoute1" in Additional Route labels section - And user enters Hostname as "home" - And user enters Path as "/home" - And user selects default Target Port - And user clicks Create button on Add page - Then user can see the toast notification containg the route value "home" - And user will be redirected to Topology page - And user will see sidebar in topology page with title "git-route" - And the route of application "git-route" contains "home" in the Routes section of the workload sidebar - And user is able to see label "route=testRoute1" in Route details page for deployment "git-route" - - - @regression - Scenario: Create the workload by unselecting options in "Build" section:: A-06-TC06 - Given user is at Import from Git form - When user enters Git Repo URL as "https://github.com/sclorg/dancer-ex.git" - And user enters name as "git-build" in General section - And user clicks "Show advanced Build option" link in Advanced Options section - And user unselects Configure a webhook build trigger checkbox in build configuration section - And user unselects Automatically build a new image when the builder image changes checkbox in build configuration section - And user unselects Launch the first build when the build configuration is created checkbox in build configuration section - And user enters Name as "home" in Environment Variables section - And user enters Value as "value" in Environment Variables section - And user clicks Create button on Add page - Then user will be redirected to Topology page - And user will see sidebar in topology page with title "git-build" - And build does not get started for "git-build" - - - @regression - Scenario: Create a git workload with advanced option "Deployment": A-06-TC07 - Given user is at Import from Git form - When user enters Git Repo URL as "https://github.com/sclorg/dancer-ex.git" - And user enters Name as "git-deploy" in General section - And user clicks "Show advanced Deployment option" link in Advanced Options section - And user verify the Auto deploy when new image is available checkbox is selected - And user enters Name as "home" in Environment Variables Runtime only section - And user enters Value as "value" in Environment Variables Runtime only section - And user clicks Create button on Add page - Then user will be redirected to Topology page - And user will see sidebar in topology page with title "git-deploy" - - - @regression - Scenario: Create a git workload with advanced option "Resource Limits": A-06-TC08 - Given user is at Import from Git form - When user enters Git Repo URL as "https://github.com/sclorg/dancer-ex.git" - And user enters Name as "git-resource" in General section - And user clicks "Resource limits" link in Advanced Options section - And user enters CPU Request as "10" in CPU section - And user enters CPU Limits as "12" in CPU section - And user enters Memory Request as "200" in Memory section - And user enters Memory Limit as "300" in Memory section - And user clicks Create button on Add page - Then user will be redirected to Topology page - And user will see sidebar in topology page with title "git-resource" - -# Marked below test as broken due to issue https://issues.redhat.com/browse/OCPBUGS-30205 - @regression @broken-test - Scenario: Create a git workload with advanced option "Scaling": A-06-TC09 - Given user is at Import from Git form - When user enters Git Repo URL as "https://github.com/sclorg/dancer-ex.git" - And user enters Name as "git-scaling" in General section - And user clicks "Scaling" link in Advanced Options section - And user enters number of replicas as "5" in Replicas section - And user clicks Create button on Add page - Then user will be redirected to Topology page - - - @regression - Scenario: Create a git workload with advanced option "Labels": A-06-TC10 - Given user is at Import from Git form - When user enters Git Repo URL as "https://github.com/sclorg/dancer-ex.git" - And user enters Name as "git-labels" in General section - And user clicks "Labels" link in Advanced Options section - And user enters label as "app=frontend" - And user clicks Create button on Add page - Then user will be redirected to Topology page - And verify the label "app=frontend" in side bar of application node "git-labels" - And user will see sidebar in topology page with title "git-labels" - - - @regression - Scenario: Create a git workload with advanced option "Health Checks": A-06-TC11 - Given user is at Import from Git form - When user enters Git Repo URL as "https://github.com/sclorg/dancer-ex.git" - And user enters Name as "git-healthchecks" in General section - And user clicks "Health checks" link in Advanced Options section - And user fills the Readiness Probe details - And user fills the Liveness Probe details - And user fills the Startup Probe details - And user clicks Create button on Add page - Then user will be redirected to Topology page - And user will see sidebar in topology page with title "git-healthchecks" - - - # Marking this scenario as @manual, because due to git-rate limit issue, below scenarios are failing - @regression @manual - Scenario Outline: Builder image detected for git url "": A-06-TC12 - Given user is at Import from Git form - When user enters Git Repo URL as "" - Then git url "" gets Validated - And builder image is detected - And Application name displays as "" - And Name displays as "" - - Examples: - | git_url | app_name | name | - | https://github.com/sclorg/dancer-ex.git | dancer-ex-git-app | dancer-ex-git | - | https://github.com/sclorg/cakephp-ex.git | cakephp-ex-git-app | cakephp-ex-git | - | https://github.com/sclorg/golang-ex.git | golang-ex-git-app | golang-ex-git | - | https://github.com/sclorg/ruby-ex.git | ruby-ex-git-app | ruby-ex-git | - | https://github.com/sclorg/django-ex.git | django-ex-git-app | django-ex-git | - | https://github.com/spring-projects/spring-boot | spring-bottom-app | openshift-quickstarts | - | https://github.com/sclorg/nodejs-ex.git | nodejs-ex-git-app | nodejs-ex-git | - - - @regression @manual - Scenario Outline: Dotnet Builder image detection for git url "": A-06-TC13 - Given user is at Import from Git form - When user enters Git Repo URL as "" - And warning message "Unable to detect import strategy" displays - And user clicks on "Show advanced Git options" link - And user clears Context dir field - And user enters Context dir as "" - Then git url "" gets Validated - And user is able to see "Builder Image(s) selected" message - - Examples: - | git_url | dir_name | - | https://github.com/redhat-developer/s2i-dotnetcore-ex.git | /app | - - - @regression @manual - Scenario Outline: "Unable to detect the builder image" warning message displays for server related git urls: A-06-TC14 - Given user is at Import from Git form - When user enters Git Repo URL as "" - And user clicks on "Edit Import Strategy" - Then git url "" gets Validated - And user is able to see warning message "Unable to detect Import strategy" - - Examples: - | git_url | - | https://github.com/sclorg/httpd-ex.git | - | https://github.com/sclorg/nginx-ex.git | - - - @regression @broken-test - Scenario: Provide custom build environments for nodejs git import: A-06-TC15 - Given user is at Import from Git form - When user enters Git Repo URL as "https://github.com/sclorg/nodejs-ex" - And user enters run command for "NPM_RUN" as "build1" - And user enters Name as "nodejs-env" - And user clicks Create button on Add page - Then user will be redirected to Topology page - And user is able to navigate to Build "nodejs-env-1" for deployment "nodejs-env" - And see environment variable "NPM_RUN" with value "build1" in Environment tab of details page - - - @regression @broken-test - Scenario: Update custom build environment in nodejs application edit page: A-06-TC16 - Given user is at Topology page - When user edits the application "nodejs-env" - And user enters run command for "NPM_RUN" as "build2" - And user clicks Create button on Add page - And user clicks on workload "nodejs-env" - And user starts a new build - And user navigates to Topology page - Then user is able to navigate to Build "nodejs-env-2" for deployment "nodejs-env" - And see environment variable "NPM_RUN" with value "build2" in Environment tab of details page - - - @regression @ODC-6303 @broken-test - Scenario: Checking Secure Route option in import form: A-06-TC17 - Given user is at Import from Git form - When user enters Git Repo URL as "https://github.com/sclorg/nodejs-ex.git" - And user enters name as "nodejs-route" in General section - And user clicks "Show advanced Routing options" link in Advanced Options section - Then user is able to see Secure Route checkbox is checked - And user is able to see Edge value is selected in "TLS termination" - And user is able to see Redirect value is selected in "Insecure traffic" - - - @regression @OCPBUGS-14067 - Scenario: Disable devfile import strategy for git type - other: A-06-TC18 - Given user is at Import from Git form - When user enters Git Repo URL as "https://mysupersecretgit.example.com/org/repo" - Then devfile import strategy is disabled - - - @regression @OCPBUGS-14067 - Scenario: When devfile path is not detected: A-06-TC19 - Given user is at Import from Git form - When user enters Git Repo URL as "https://github.com/nodeshift-starters/devfile-sample" - And user clicks on Edit import strategy - And user enters Devfile Path as "devfile1" - Then user see message "Devfile not detected" - - - @regression @ODC-7613 - Scenario: Create a git workload when Git Type is not auto-detected: A-06-TC20 - Given user is at Import from Git form - When user enters Git Repo URL as "https://open-bitbucket.nrao.edu/projects/PIPE/repos/pipeline/browse" - And user selects Git Type as "Bitbucket" - And user clicks on Edit import strategy - And user selects Import Strategy as Builder Image - And user selects "python" builder image - And user enters Application name as "bitbucket-app" - And user enters Name as "bitbucket" - And user selects "Deployment" in Resource type section - And user clicks Create button on Add page - Then user will be redirected to Topology page - And user is able to see workload "bitbucket" in topology page diff --git a/frontend/packages/dev-console/integration-tests/features/addFlow/create-from-yaml.feature b/frontend/packages/dev-console/integration-tests/features/addFlow/create-from-yaml.feature deleted file mode 100644 index 5c899ed2478..00000000000 --- a/frontend/packages/dev-console/integration-tests/features/addFlow/create-from-yaml.feature +++ /dev/null @@ -1,24 +0,0 @@ -@add-flow @dev-console -Feature: Create Application from YAML file - As a user, I want to create the application, component or service from Yaml file using Add Flow - - Background: - Given user is at developer perspective - And user is at Add page - And user has created or selected namespace "aut-addflow-yaml" - - - @smoke - Scenario: Create a workload from YAML file: A-07-TC01 - Given user is at Import YAML page - When user enters the "testData/add-flow/git-dc.yaml" file data to YAML Editor - And user clicks create button on YAML page - And user navigates to Topology page - Then user is able to see workload "shell-app" in topology page - - - @regression - Scenario: Perform cancel operation on YAML file: A-07-TC02 - Given user is at Import YAML page - When user clicks on cancel button - Then user will be redirected to Add page diff --git a/frontend/packages/dev-console/integration-tests/features/addFlow/create-operator-backed.feature b/frontend/packages/dev-console/integration-tests/features/addFlow/create-operator-backed.feature deleted file mode 100644 index dc5e9c2a35f..00000000000 --- a/frontend/packages/dev-console/integration-tests/features/addFlow/create-operator-backed.feature +++ /dev/null @@ -1,46 +0,0 @@ -@add-flow @dev-console -Feature: Create workload from Operator Backed file - As a user, I want to create the application, component or service from Software Catalog Operator backed file - - Background: - Given user is at developer perspective - And user is at Add page - - -# Below scenario needs to be executed only once. Second time it throws error. So not recommended to execute in automation suite - @regression @manual - Scenario: Create the Knative Kafka workload from Operator Backed: A-08-TC01 - Given user has installed OpenShift Serverless Operator - And user has not created kafka instance in "knative-eventing" namespace - And user has created or selected namespace "knative-eventing" - And user is at OperatorBacked page - When user selects knative Kafka card - And user clicks Create button in side bar - And user enters name as "knative-kafka" in Create KnativeKafka page - And user clicks create button in Create KnativeKafka page - Then user will be redirected to Topology page - And user is able to see "knative-kafka" instance for serverless operator - - - @smoke @manual - Scenario: Perform cancel operation: A-08-TC02 - Given user has installed OpenShift Serverless Operator - And user has created or selected namespace "knative-eventing" - And user is at OperatorBacked page - When user selects knative Serving card - And user clicks Create button in side bar - And user clicks cancel button in Create knative Serving page - Then user will be redirected to Operator Backed page from knative Serving page - - - @regression @manual - Scenario: Create the Jaeger workload from Operator Backed: A-08-TC03 - Given user has installed Jaeger operator - And user has created or selected namespace "aut-jaeger" - And user is at OperatorBacked page - When user selects Jaeger card - And user clicks Create button in side bar - And user enters name as "jaeger-all-in-one-inmemory1" in Create Jaeger page - And user clicks create button in Create Jaeger page - Then user will be redirected to Topology page - And user is able to see "jaeger-all-in-one-inmemory1" in Topology page diff --git a/frontend/packages/dev-console/integration-tests/features/addFlow/export-application.feature b/frontend/packages/dev-console/integration-tests/features/addFlow/export-application.feature deleted file mode 100644 index e782e5f1a93..00000000000 --- a/frontend/packages/dev-console/integration-tests/features/addFlow/export-application.feature +++ /dev/null @@ -1,32 +0,0 @@ -@add-flow @dev-console @ODC-6684 -Feature: Export of application from the Add page - As a user, I have an unmanaged application which I want to export. I'd like to be able to later add that code to git or some shared location so that I can share with others, or import into a new cluster or same cluster but different project, or be able to apply updates to an existing application. - - - - Background: - Given user has installed Gitops primer Operator - And user is at developer perspective - And user has created or selected namespace "aut-add-export-application" - - - - @regression - Scenario: Export application option on the Add page: A-14-TC01 - Given user has created "nodejs-ex-git-1" workload in "nodejs-ex-git-app" application - When user navigates to Add page - And user clicks on Export Application option - And user clicks on Ok button on Export Application modal to start the export - Then user can see a toast message saying "Export of resources in aut-export-application has started." - And user can see a toast message saying "All the resources are exported successfully from aut-export-application. Click below to download it." with download option and close button - And user navigates to Topology page - And user can see primer deployment created in topology - - - @regression - Scenario: Export Application modal when export application is in progress: A-14-TC02 - Given user is at Add page - When user clicks on Export Application option - And user clicks on Ok button on Export Application modal to start the export - And user clicks on Export Application option again - Then user can see "View logs" link, "Cancel Export", "Restart Export", and "Ok" button diff --git a/frontend/packages/dev-console/integration-tests/features/addFlow/helm-chart-repositories.feature b/frontend/packages/dev-console/integration-tests/features/addFlow/helm-chart-repositories.feature deleted file mode 100644 index 2b184bc2561..00000000000 --- a/frontend/packages/dev-console/integration-tests/features/addFlow/helm-chart-repositories.feature +++ /dev/null @@ -1,64 +0,0 @@ -@add-flow @dev-console @ODC-6452 -Feature: Helm Chart Repositories - As a user, I want to install project helm repository - - - Background: - Given user is at developer perspective - And user has created or selected namespace "aut-add-helm" - - - - @smoke @manual - Scenario: Helm Chart repositories card on the Add Page: A-12-TC01 - Given user is at Add page - Then user can see Helm Chart repositories card on the Add page - - - @regression - Scenario: Form-yaml switcher in Helm Chart Repository create form: A-12-TC02 - Given user is at Add page - When user selects Helm Chart repositories card from Add page - And user switches to YAML - Then user can see YAML view - - - @regression - Scenario: Configure custom Helm Chart repository.: A-12-TC03 - Given user is at Add page - When user selects Helm Chart card on the Add page - And user clicks "try to configure their own custom Helm Chart repository" link in Helm Charts catalog description - Then user can see "Create Helm Chart Repository" form - - # Marking this scenario as @broken-test, because scenario is failing due to change of UI in catalog page - @regression @broken-test - Scenario: Add namespaced helm chart repository using a form: A-12-TC04 - Given user is at Create Helm Chart Repository page - When user selects Form view - And user enters Chart repository name as "helm-test1" - And user enters Description as "test" - And user enters URL as "https://raw.githubusercontent.com/IBM/charts/master/repo/community/index.yaml" - And user clicks on Create button - Then user can see "helm-test1" for resource "helm-test1" and type "projecthelmchartrepository" under Chart Repositories in Helm Charts catalog page - - # Marking this scenario as @broken-test, because scenario is failing due to change of UI in catalog page - @regression @ODC-6685 @broken-test - Scenario: Add namespaced helm chart repository with a display name: A-12-TC05 - Given user is at Create Helm Chart Repository page - When user enters Chart repository name as "helm-test1" - And user enters Display name as "My Helm Charts" - And user enters Description as "test" - And user enters URL as "https://raw.githubusercontent.com/IBM/charts/master/repo/community/index.yaml" - And user clicks on Create button - Then user can see "My Helm Charts" for resource "helm-test1" and type "projecthelmchartrepository" under Chart Repositories in Helm Charts catalog page - - # Marking this scenario as @broken-test, because scenario is failing due to change of UI in catalog page - @regression @broken-test - Scenario: Add cluster-scoped helm chart repository using a form: A-12-TC06 - Given user is at Create Helm Chart Repository page - When user selects cluster-scoped scope type - And user enters Chart repository name as "helm-test2" - And user enters Description as "test" - And user enters URL as "https://raw.githubusercontent.com/Azure-Samples/helm-charts/master/docs/index.yaml" - And user clicks on Create button - Then user can see "helm-test2" for resource "helm-test2" and type "helmchartrepository" under Chart Repositories in Helm Charts catalog page diff --git a/frontend/packages/dev-console/integration-tests/features/addFlow/in-cluster-gitea.feature b/frontend/packages/dev-console/integration-tests/features/addFlow/in-cluster-gitea.feature deleted file mode 100644 index 072853d76e6..00000000000 --- a/frontend/packages/dev-console/integration-tests/features/addFlow/in-cluster-gitea.feature +++ /dev/null @@ -1,42 +0,0 @@ -@add-flow @dev-console -Feature: Create Application from git form with repositories from In cluster Gitea Server - As a user, I want to create the application from git form with repositories from In cluster Gitea Server - - Background: - Given user has installed Gitea Server with pre-loaded repositories - And user is at developer perspective - And user has created or selected namespace "aut-addflow-gitea" - And user is at Add page - - @regression @ODC-7581 - Scenario Outline: Add new gitea workload with new application for resource type "": A-06-TC01 - Given user is at Import from Git form - When user enters Gitea Repo Name as "nodejs" - And user enters Application name as "nodejs-git-app" - And user enters Name as "" - And user selects resource type as "" - And user clicks Create button on Add page - Then user can see toast notification saying "" created successfully - And user will be redirected to Topology page - And user is able to see workload "" in topology page - And user deletes the Gitea Server - - Examples: - | name | resource_type | - | import-git | Deployment | - - - @regression @ODC-7581 - Scenario Outline: Create a workload from Docker file with "" as resource type: A-05-TC02 - Given user is at Import from Git form - When user enters Gitea Repo Name as "dockerfile-node" - And user enters Name as "" in Docker file page - And user selects "" in Resource type section - And user clicks Create button on Add page - Then user will be redirected to Topology page - And user is able to see workload "" in topology page - And user deletes the Gitea Server - - Examples: - | resource_type | name | - | Deployment | dockerfile | diff --git a/frontend/packages/dev-console/integration-tests/features/addFlow/quick-search-add.feature b/frontend/packages/dev-console/integration-tests/features/addFlow/quick-search-add.feature deleted file mode 100644 index 2f424f1b733..00000000000 --- a/frontend/packages/dev-console/integration-tests/features/addFlow/quick-search-add.feature +++ /dev/null @@ -1,67 +0,0 @@ -@add-flow @dev-console @ODC-6303 -Feature: Provide quick search in Add page - As a user, I should be able to have a quick way to search for items to add to my application/project in the Add page - - Background: - Given user is at Add page - And user has created or selected namespace "aut-add" - - - @smoke - Scenario: Add to project button in Add page: A-11-TC01 - When user clicks Add to project button - Then user can see Add to project search bar - - - @regression - Scenario: Add django application from quick search in Add page: A-11-TC02 - When user clicks Add to project button - And user enters "django" in Add to project search bar - And user selects "Django + PostgreSQL" option of "Templates" - And user clicks on "Instantiate Template" - And user clicks on create with default values in Instantiate Template form - And user can see "Postgresql" and "django" workload in topology view - - - @regression - Scenario: View all results option for django in Add page: A-11-TC03 - When user clicks Add to project button - And user enters "django" in Add to project search bar - And user clicks on View all software catalog items link - Then user will see Catalog with "django" text filter - - - @regression - Scenario: No results for the search: A-11-TC04 - When user clicks Add to project button - And user enters "abcdef" in Add to project search bar - And user will see "No results" - - - @regression - Scenario: Quick Add of Quick Starts: A-11-TC05 - When user clicks Add to project button - And user enters "monitor" in Add to project search bar - And user selects "Monitor your sample application" option of "Quick Starts" - And user clicks on "Start" - Then "Monitor your sample application" quick start displays in the Add page - - - @regression - Scenario: Quick Add of Devfile: A-11-TC06 - When user clicks Add to project button - And user enters "node" in Add to project search bar - And user selects "Basic Node.js" option of "Devfiles" - And user clicks on "Create Application" - And user clicks on Create button in the Import from Git page - Then user is taken to the Topology page with "devfile-sample-git" workload created - - - @regression @ODC-6467 - Scenario: Bindable resource in Quick Add: A-11-TC07 - Given user has installed Service Binding operator - And user has installed Crunchy Postgres for Kubernetes operator - And user is at Add page - When user clicks Add to project button - And user enters "crunchy" in Add to project search bar - Then user will see "Bindable" label associated with "Postgres Cluster" diff --git a/frontend/packages/dev-console/integration-tests/features/addFlow/resource-quota-warning.feature b/frontend/packages/dev-console/integration-tests/features/addFlow/resource-quota-warning.feature deleted file mode 100644 index ae867d77002..00000000000 --- a/frontend/packages/dev-console/integration-tests/features/addFlow/resource-quota-warning.feature +++ /dev/null @@ -1,25 +0,0 @@ -@add-flow @dev-console @ODC-6771 -Feature: Update user in Add page if Quotas has been reached in a namespace - If any resource reached resource quota limit, a warning alert will be displayed for the user in Add page. - - Background: - Given user is at developer perspective - And user has created or selected namespace "aut-add-resource-quota" - - - @regression - Scenario: single resource reached quota: A-15-TC01 - Given user has created workload with resource type deployment - When user creates resource quota 'resourcequota1' by entering 'testData/resource-quota/resource-quota.yaml' file data - And user navigates to Add page - And user clicks on link to view resource quota details - Then user is redirected to resource quota details page - - - @regression - Scenario: multiple resources reached quota: A-15-TC02 - Given user has created workload with resource type deployment - And user has created two resource quotas using 'testData/resource-quota/resource-quota.yaml' file - When user navigates to Add page - And user clicks on link to view resource quota details - Then user is redirected to resource quota list page diff --git a/frontend/packages/dev-console/integration-tests/features/addFlow/sharing.feature b/frontend/packages/dev-console/integration-tests/features/addFlow/sharing.feature deleted file mode 100644 index 12ef3ccbf2b..00000000000 --- a/frontend/packages/dev-console/integration-tests/features/addFlow/sharing.feature +++ /dev/null @@ -1,15 +0,0 @@ -@add-flow @dev-console @ODC-6452 -Feature: Project Access page - As a user, I want to access project access page through Add page - - - Background: - Given user is at developer perspective - And user has created or selected namespace "aut-add-project-access" - - - @regression - Scenario: Project Access page through Add page: A-13-TC01 - Given user is at Add page - When user clicks on Sharing card in Add page - Then user can see "Project access" page diff --git a/frontend/packages/dev-console/integration-tests/features/addFlow/software-catalog-details.feature b/frontend/packages/dev-console/integration-tests/features/addFlow/software-catalog-details.feature deleted file mode 100644 index 650bf87b4eb..00000000000 --- a/frontend/packages/dev-console/integration-tests/features/addFlow/software-catalog-details.feature +++ /dev/null @@ -1,99 +0,0 @@ -@add-flow @dev-console -Feature: Software Catalog Page - As a user, I should be able to use Software Catalog page to deploy application - - - Background: - Given user is at admin perspective - And user is at Software Catalog page in admin page - And user has created or selected namespace "aut-catalog-pagedetails" - - - @regression - Scenario: Software Catalog page - Default view: A-09-TC01 - Then user will see All Items already selected - And user will see CICD, Databases, Languages, Middleware, Other categories - And user will see 'BuilderImage', 'Devfile', 'HelmChart', 'Template' types - And user will see Filter by Keyword field - And user will see A-Z, Z-A sort by dropdown - - - @regression - Scenario Outline: Filter the cards with type: A-09-TC02 - When user selects "" option from Type section - Then user is able to see cards related to "" - - Examples: - | type | - | Helm Charts | - | Builder Image | - | Template | - - - @smoke - Scenario: Helm Charts on default Software Catalog: A-09-TC06 - When user clicks on Helm Charts type - Then user will see the cards of Helm Charts - And user will see Filter by Keyword field - And user will see A-Z, Z-A sort by dropdown - - - @smoke @manual - Scenario: Helm Charts Repositories on Software Catalog: A-09-TC07 - Given user has added multiple helm charts repositories - When user clicks on Helm Charts type - Then user will see the list of Chart Repositories - And user will see the cards of Helm Charts - And user will see Filter by Keyword field - And user will see A-Z, Z-A sort by dropdown - - - @smoke @manual - Scenario: Software Catalog Customization - Add empty Categories: A-09-TC08 - Given user is at Search page - When user clicks on Resources dropdown - And user searches for Console - And user clicks on Console checkbox with "operator.openshift.io/v1" - And user clicks on cluster link - And user navigates to YAML tab - And user removes everything from spec.customization.developerCatalog.categories - And user enters "[]" in front of spec.customization.developerCatalog.categories - And user clicks on Save button - And user clicks on Reload button - And user navigates to Software Catalog page - Then user will not see Categories - - - @smoke @manual - Scenario: Software Catalog - Categories under Schema tab: A-09-TC09 - Given user is at cluster YAML tab - When user clicks on View sidebar - And user clicks on View Details under spec on the sidebar - And user clicks on View Details under customization on the sidebar - And user clicks on View Details under developerCatalog on the sidebar - And user clicks on View Details under categories on the sidebar - Then user will see categories which are shown in the software catalog - - - @smoke @manual - Scenario: Software Catalog Customization - Edit Categories: A-09-TC10 - Given user is at cluster YAML tab - And user has removed all the categories from Software Catalog page - And user has entered "[]" in front of spec.customization.developerCatalog.categories - When user clicks on View sidebar - And user clicks on Snippets on the sidebar - And user removes "[]" in front of spec.customization.developerCatalog.categories - And user clicks on Insert Snippet link on the sidebar - And user removes Languages Category - And user clicks on Save button - And user clicks on Reload button - Then user will see all the categories except Languages added under spec.customization.developerCatalog.categories - And user will see all the categories except Languages on Software Catalog page - - - @regression @manual - Scenario: Devfiles on Software Catalog: A-09-TC011 - When user clicks on Devfiles type - Then user will see the cards of Devfiles - And user will see Filter by Keyword field - And user will see A-Z, Z-A sort by dropdown diff --git a/frontend/packages/dev-console/integration-tests/features/addFlow/upload-jar-file.feature b/frontend/packages/dev-console/integration-tests/features/addFlow/upload-jar-file.feature deleted file mode 100644 index 712eb039325..00000000000 --- a/frontend/packages/dev-console/integration-tests/features/addFlow/upload-jar-file.feature +++ /dev/null @@ -1,158 +0,0 @@ -@add-flow @dev-console -Feature: Upload JAR file - As a user, I want to upload a JAR file from using Upload JAR file card from Add page - - Background: - Given user is at developer perspective - And user is at Add page - And user has created or selected namespace "aut-upload-jar-file" - - - @smoke - Scenario: Upload Jar file page details: A-10-TC01 - Given user is at Add page - When user clicks on the Upload JAR file card - Then user is able to see Upload jar file, Optional java commands, Run time Icon and Builder Image version fields displayed in JAR section - And Application Name, Name fields displayed in General section - And Advanced options sections are displayed - And Create button is in disabled state - - - @regression @to-do - Scenario Outline: Upload JAR file from Add options: A-10-TC02 - Given user is at Add page - When user clicks on the Upload JAR file card - And user clicks on Browse in JAR file section - And user selects file to upload - And user selects appropriate Build image version - And user gives Application name as "sample-upload-app" and workload Name as "" - And user selects resource type as "" - And user clicks create button - Then user will be redirected to Topology page - And user will see sidebar in topology page with title "sample-upload-app" - And user can see a toast notification of JAR file uploading with link to build logs - And user can see "" "" in application "sample-upload-app" is created in topology - - Examples: - | name | resource_type | - | sample-yaml-upload-1 | Deployment | - | sample-yaml-upload-2 | Deployment Config | - - - @regression @to-do - Scenario Outline: Upload JAR file through drag and drop from Add options: A-10-TC03 - Given user is at Add page - When user clicks on the Upload JAR file card - And user drag and drop the file in JAR file section - And user selects appropriate Build image version - And user gives Application name as "sample-upload-app" and workload Name as "" - And user selects resource type as "" - And user clicks create button - Then user will be redirected to Topology page - And user will see sidebar in topology page with title "sample-upload-app" - And user can see a toast notification of JAR file uploading with link to build logs - And user can see "" "" in application "sample-upload-app" is created in topology - - Examples: - | name | resource_type | - | sample-yaml-upload-a | Deployment | - | sample-yaml-upload-b | Deployment Config | - - - @regression @to-do - Scenario: Upload JAR file with advanced option "Health Checks": A-10-TC04 - Given user is at Upload JAR file form - When user clicks on Browse in JAR file section - And user selects file to upload - And user gives Application name as "sample-upload-app" and workload Name as "sample-yaml-upload" - And user clicks "Health Checks" link in Advanced Options section - And user fills the Readiness Probe details - And user fills the Liveness Probe details - And user fills the Startup Probe details - And user clicks Create button on Add page - Then user will be redirected to Topology page - And user will see sidebar in topology page with title "sample-upload-app" - - - @regression @to-do - Scenario: Upload JAR file without application route: A-10-TC05 - Given user is at Upload JAR file form - When user clicks on Browse in JAR file section - And user selects file to upload - And user gives Application name as "sample-upload-app" and workload Name as "sample-yaml-upload" - And user unselects the advanced option Create a route to the application - And user clicks Create button on Add page - Then user will be redirected to Topology page - And user will see sidebar in topology page with title "sample-upload-app" - And public url is not created for node "sample-yaml-upload" in the workload sidebar - - - @regression @to-do - Scenario: Upload JAR file with advanced option "Routing": A-10-TC06 - Given user is at Upload JAR file form - When user clicks on Browse in JAR file section - And user selects file to upload - And user gives Application name as "sample-upload-app" and workload Name as "sample-yaml-upload" - And user clicks "Routing" link in Advanced Options section - And user enters Hostname as "home" - And user enters Path as "/home" - And user selects default Target Port - And user clicks Create button on Add page - Then user will be redirected to Topology page - And user will see sidebar in topology page with title "sample-upload-app" - And the route of application "sample-yaml-upload" contains "home" in the Routes section of the workload sidebar - - - @regression @to-do - Scenario: Upload JAR file with advanced option "Deployment": A-10-TC07 - Given user is at Upload JAR file form - When user clicks on Browse in JAR file section - And user selects file to upload - And user gives Application name as "sample-upload-app" and workload Name as "sample-yaml-upload" - And user clicks "Deployment" link in Advanced Options section - And user verify the Auto deploy when new image is available checkbox is selected - And user enters Name as "home" in Environment Variables Runtime only section - And user enters Value as "value" in Environment Variables Runtime only section - And user clicks Create button on Add page - Then user will be redirected to Topology page - And user will see sidebar in topology page with title "sample-upload-app" - - @regression @to-do - Scenario: Upload JAR file with advanced option "Resource Limits": A-10-TC08 - Given user is at Upload JAR file form - When user clicks on Browse in JAR file section - And user selects file to upload - And user gives Application name as "sample-upload-app" and workload Name as "sample-yaml-upload" - And user clicks "Resource Limits" link in Advanced Options section - And user enters CPU Request as "10" in CPU section - And user enters CPU Limits as "12" in CPU section - And user enters Memory Request as "200" in Memory section - And user enters Memory Limit as "300" in Memory section - And user clicks Create button on Add page - Then user will be redirected to Topology page - And user will see sidebar in topology page with title "sample-upload-app" - - @regression @to-do - Scenario: Upload JAR file with advanced option "Scaling": A-10-TC09 - Given user is at Upload JAR file form - When user clicks on Browse in JAR file section - And user selects file to upload - And user gives Application name as "sample-upload-app" and workload Name as "sample-yaml-upload" - And user clicks "Scaling" link in Advanced Options section - And user enters number of replicas as "5" in Replicas section - And user clicks Create button on Add page - Then user will be redirected to Topology page - And user will see sidebar in topology page with title "sample-upload-app" - - @regression @to-do - Scenario: Upload JAR file with advanced option "Labels": A-10-TC10 - Given user is at Upload JAR file form - When user clicks on Browse in JAR file section - And user selects file to upload - And user gives Application name as "sample-upload-app" and workload Name as "sample-yaml-upload" - And user clicks "Labels" link in Advanced Options section - And user enters label as "app=frontend" - And user clicks Create button on Add page - Then user will be redirected to Topology page - And user will see sidebar in topology page with title "sample-upload-app" - And verify the label "app=frontend" in side bar of application node "sample-yaml-upload" diff --git a/frontend/packages/dev-console/integration-tests/features/build-config/edit-build-config.feature b/frontend/packages/dev-console/integration-tests/features/build-config/edit-build-config.feature deleted file mode 100644 index c1837ffe5e3..00000000000 --- a/frontend/packages/dev-console/integration-tests/features/build-config/edit-build-config.feature +++ /dev/null @@ -1,113 +0,0 @@ -@build-config @dev-console -Feature: Form based edit for Build Configs - As a user, I can have form based edit for Build Configs to improve the user experience. - - Background: - Given user is at developer perspective - And user has created or selected namespace "aut-form-edit-build-config" - - - @smoke - Scenario: Edit Build Config page: EBC-01-TC01 - Given user has created a deployment workload "nodejs-ex-git1" - When user navigates to build tab - And user clicks on kebab menu for "nodejs-ex-git1" build config - And user clicks on Edit BuildConfig - Then user will see the Name field - And user will see the Git repository url field - And user will see the Image configuration section - And user will see the Environment Variables section - - - @regression - Scenario: Advanced options in Edit Build Config page: EBC-01-TC02 - Given user is at Edit Build Config page of deployment "nodejs-ex-git1" - When user clicks on Advanced option "Triggers" - And user clicks on Advanced option "Secrets" - And user clicks on Advanced option "Run Policy" - And user clicks on Advanced option "Hooks" - Then user will see section "Triggers" - And user will see section "Secrets" - And user will see section "Policy" - And user will see section "Hooks" - - - @regression @manual - Scenario: Switch from Form to YAML view for editing BuildConfig: EBC-01-TC03 - Given user is at Edit Build Config page of deployment "nodejs-ex-git1" - When user switches to YAML view - And user changes spec.output.to.name to "nodejs-ex-git:2.0" - And user switches to Form view - Then user will see tag in Push to value as "nodejs-ex-git:2.0" - - - @regression - Scenario Outline: Edit a buildconfig which uses strategy Source(S2I)) and Git as source: EBC-01-TC04 - Given user is at Edit Build Config page of deployment "nodejs-ex-git1" - When user changes Git Rpository URL to "" menu of build config - And user selects imagestream "" and tag "" in Build From section in Image Configuration - And user enters Name and Value as "" and "" respectively in Environment Variables - And user click Save button on Edit build Config page - Then user will see Git Repository as "" and Build from as ":" imagestream - - Examples: - | git_url | image_stream | tag | name | value | - | https://github.com/sclorg/django-ex.git | python | 3.8 | path | /home | - - - @regression - Scenario: Edit Advanced git options of buildconfig which uses strategy Docker and Git as source: EBC-01-TC05 - # user can use buildconfig-with-strategy-docker-source-git.yaml from testData/yamls/BuildConfig - Given user has applied the yaml "buildconfig-with-strategy-docker-source-git.yaml" - When user clicks on action menu of build config - And user selects the option Edit BuildConfig - And user clicks Show advanced Git options - And user changes value of Context Dir to "/beginner/static-site" - And user selects External container image option from Build from dropdown - And user enters image registry as "openshift/hello-openshift" - And user click Save button on Edit build Config page - Then user will see Context dir as "/beginner/static-site" - - - @regression - Scenario Outline: Edit a buildconfig which uses strategy Docker and Dockerfile as source: EBC-01-TC06 - # user can use buildconfig-with-strategy-docker-source-dockerfile.yaml from testData/yamls/BuildConfig - Given user has applied the yaml "buildconfig-with-strategy-docker-source-dockerfile.yaml" - When user clicks on action menu of build config - And user selects the option Edit BuildConfig - And user enters Name and Value as "" and "" respectively in Environment Variables - And user selects External container image option from Build from dropdown - And user enters image registry as "openshift/hello-openshift" - And user click Save button on Edit build Config page - And user goes to Environment tab - Then user will see Name as "" and and Value as "" in Environment Variables - - Examples: - | name | value | - | path | /home | - - @regression @manual - Scenario Outline: Edit a build which uses strategy Source and Binary as source: EBC-01-TC07 - # user can use buildconfig-with-strategy-source-source-binary.yaml from testData/yamls/BuildConfig - Given user has created a JAVA OpenJDK build named "fruits-app-1" - When user navigates to Search page - And user selects "Build" checkbox from Resource dropdown menu - And user selects the build named "frutis-app-1" - And user navigates to YAML tab - And user copies the value of metadata.ownerReferences.uid - And user clicks on action menu of build config - And user selects the option Delete Build - And user replaces the metadata.ownerReferences.uid key present in "buildconfig-with-strategy-source-source-binary.yaml" with copied uid - And user applies the yaml "buildconfig-with-strategy-source-source-binary.yaml" - And user navigates to Build page - And user selects build config named "fruits-app-1-1" - And user clicks on action menu of build config - And user selects the option Edit BuildConfig - And user enters Name and Value as "" and "" respectively in Environment Variables - And user clicks Save button on Edit build Config page - And user goes to Environment tab - Then user will see Name as "" and and Value as "" in Environment Variables - - Examples: - | name | value | - | path | /home | diff --git a/frontend/packages/dev-console/integration-tests/features/codeready-workspaces/crw-basic.feature b/frontend/packages/dev-console/integration-tests/features/codeready-workspaces/crw-basic.feature deleted file mode 100644 index 73929b21ea2..00000000000 --- a/frontend/packages/dev-console/integration-tests/features/codeready-workspaces/crw-basic.feature +++ /dev/null @@ -1,19 +0,0 @@ -@crw @dev-console @broken-test -Feature: Basic Codeready Workspaces usage - As a developer user, I should be able to easily access CRW from Openshift Web Console. - - Background: - Given Red Hat CodeReady Workspaces operator is installed on the cluster in "openshift-workspaces" namespace - And user has logged in as a basic user - And user is at developer perspective - - @smoke - Scenario: CRW is shown in Applications menu in Masthead - When user clicks on Application button in Masthead - Then "CodeReady Workspaces" entry is present in Application menu in Masthead - - @smoke - Scenario: CRW Dashboard is opened when user clicks on CRW in Applications menu in Masthead - When user clicks on Application button in Masthead - And user clicks on Codeready Workspaces in Application menu in Masthead - Then user is redirected to Codeready Workspaces Dashboard diff --git a/frontend/packages/dev-console/integration-tests/features/codeready-workspaces/open-app-in-crw.feature b/frontend/packages/dev-console/integration-tests/features/codeready-workspaces/open-app-in-crw.feature deleted file mode 100644 index a6c4208e2c4..00000000000 --- a/frontend/packages/dev-console/integration-tests/features/codeready-workspaces/open-app-in-crw.feature +++ /dev/null @@ -1,16 +0,0 @@ -@crw @dev-console @broken-test -Feature: Opening Codeready Workspaces from Topology view for existing app - As a developer user, I should be able to open Codeready Workspaces from Topology view - with my app's code imported automatically. - - @smoke - Scenario: "Open in CRW" decorator is present on the Node - Given Codeready Workspaces instance is installed on the cluster - And user has logged in as basic user - And user is at Topology page - And user has opened application "sdf" in topology page - When user sees CRW decorator is present on the application - And user click the CRW decorator on the application - Then user will be redirected to CRW - And new workspace will be started - And source code will be automatically imported in the workspace diff --git a/frontend/packages/dev-console/integration-tests/features/common/operators.feature b/frontend/packages/dev-console/integration-tests/features/common/operators.feature deleted file mode 100644 index 314d82f48a3..00000000000 --- a/frontend/packages/dev-console/integration-tests/features/common/operators.feature +++ /dev/null @@ -1,201 +0,0 @@ -@common @dev-console -Feature: Operators - As a user I want to install or uninstall the operators - - Background: - Given user is at administrator perspective - - - @regression @to-do - Scenario: OpenShift Pipeline operator subscription page : C-01-TC01 - Given user is at Operator Hub page with the header name "OperatorHub" - When user searches for "OpenShift Pipelines Operator" - And user clicks OpenShift Pipelines Operator card on Operator Hub page - And user clicks install button present on the right side bar - Then OpenShift Pipeline operator subscription page will be displayed - - - @smoke @to-do - Scenario: Install the Pipeline Operator from Operator Hub page : C-01-TC02 - Given user executed command "oc apply -f https://gist.githubusercontent.com/nikhil-thomas/f6069b00b0e3b0359ae1cbdb929a04d6/raw/7b19be0c52355d041bf3d6a883db06b578f15f0d/openshift-pipelines-early-release-catalog-source.yaml" - And user is at OpenShift Pipeline Operator subscription page - When user installs the pipeline operator with default values - Then user will see a modal with title "OpenShift Pipelines Operator" - And user will see a View Operator button - - - @smoke @to-do - Scenario: Install the Serverless Operator from Operator Hub page : C-01-TC03 - Given user is at OpenShift Serverless Operator subscription page - When user installs the OpenShift Serverless operator with default values - Then user will see a modal with title "OpenShift Serverless Operator" - And user will see a View Operator button - And user will see serverless option on left side navigation menu - - - @smoke @to-do - Scenario: Install the knative eventing operator : C-01-TC04 - Given user has installed OpenShift Serverless Operator - And user is on the knative-eventing namespace - When user navigates to installed operators page in Admin perspective - And user clicks knative eventing provided api pressent in knative serverless operator - And user clicks Create knative Eventing button present in knative Eventing tab - And user clicks create button - Then Event sources card display in Add page in dev perspective - - - @smoke @to-do - Scenario: Install the knative apache camel operator : C-01-TC05 - Given user has installed OpenShift Serverless and eventing operator - And user is at Operator Hub page with the header name "OperatorHub" - When user search and installs the knative Camel operator with default values - Then user will see a modal with title "knative Apache Camel Operator" - And user will see a View Operator button - - - @smoke @to-do - Scenario: Install the dynamic event operator : C-01-TC06 - Given user has installed OpenShift Serverless Operator - When user executes commands from cli as "kubectl apply -f https://github.com/knative/eventing-contrib/releases/download/v0.14.1/github.yaml" - And user navigates to Add page - And user clicks on "Event source" card - Then user will be redirected to Event Sources page - And GitHub Source is displayed in types section - - - @smoke @to-do - Scenario: Install the Che Operator from Operator Hub page : C-01-TC07 - Given user is at Eclipse che Operator subscription page - When user installs the Eclipse che operator with default values - Then user will see a modal with title "Eclipse Che" - And user will see a View Operator button - - - @smoke @to-do - Scenario: Install OpenShift Virtualization Operator: C-01-TC08 - Given user is at Operator Hub page with the header name "OperatorHub" - And user has selected namespace "openshift-cnv" - When user searches for "OpenShift Virtualization" - And user clicks on the OpenShift Virtualization Operator card - And user clicks install button present on the right side bar - And user installs the OpenShift Virtualization operator with default values - Then user will see a modal with title "OpenShift Virtualization" - And user will see a View Operator button - - - @smoke @to-do - Scenario: Create OpenShift Virtualization Deployment: C-01-TC09 - Given user has installed OpenShift Virtualization Operator - And user is at Installed Operator page - When user clicks on OpenShift Virtualization Operator - And user clicks on OpenShift Virtualization Deployment tab - And user clicks on the Create HyperConverged button - And user clicks on Create button - Then user will see a HyperConverged type created - - - @smoke @to-do - Scenario: Create HostPathProvisioner Deployment: C-01-TC10 - Given user has installed OpenShift Virtualization Operator - And user is at Installed Operator page - When user clicks on OpenShift Virtualization Operator - And user clicks on HostPathProvisioner Deployment tab - And user clicks on the Create HostPathProvisioner button - And user clicks on Create button - Then user will see a HostPathProvisioner type created - And user will see Virtualization item under Workloads - - - @smoke @to-do - Scenario: Quay container security operator: C-01-TC11 - Given user is at Operator Hub page with the header name "OperatorHub" - When user searches for "quay container security" - And user clicks on quay container security operator card on Operator Hub page - And user clicks install button present on the right sidebar - And user installs the quay container security operator with default values - Then user will see a quay container security installing modal - And user will see a View Operator button - - - Scenario: Uninstall the knative serverless operator from Operator Hub page: C-01-TC12 - Given user is at OpenShift Serverless Operator subscription page - - - @smoke @to-do - Scenario: Install Web Terminal operator from Operator Hub page: C-01-TC13 - Given user is at Operator Hub page with the header name "OperatorHub" - When user searches for "Web Terminal" - And user clicks on the Web Terminal Operator card - And user clicks install button present on the right side bar - And user installs the Web Terminal operator with default values - Then user will see a modal with title "Web Terminal" - And user will see a View Operator button - - - @smoke @to-do - Scenario: Install Red Hat Integration - Camel K Operator: C-01-TC14 - Given user has installed OpenShift Serverless Operator - And user is at Operator Hub page with the header name "OperatorHub" - When user searches and installs the Red Hat Integration - Camel K Operator with default values - Then user will see a modal with title "Red Hat Integration - Camel K" - And user will see a View Operator button - - - @smoke @to-do - Scenario: Create Integration Platform CR: C-01-TC15 - Given user has installed OpenShift Serverless Operator - And user has installed Red Hat Integration - Camel K Operator - And user has selected "aut-test-kamelets" namespace - And user is on Installed Operator page - When user clicks on Integration Platform link - And user clicks on Create IntegrationPlatform button - And user clicks on Create button - Then user will be redirected to Integration Platform tab with header "IntegrationPlatforms" - And user will see Integration Platform created with name example - - - @smoke @to-do - Scenario: Install Sealed Secrets Operator: C-01-TC16 - Given user has created namespace "cicd" - And user is at Operator Hub page with the header name "OperatorHub" - When user searches for "Sealed Secrets Operator" - And user clicks on the Sealed Secrets Operator card - And user clicks install button present on the right side bar - And user installs the Sealed Secrets Operator with default values - Then user will see a modal with title "Sealed Secrets Operator" - And user will see a View Operator button - - - @smoke @to-do - Scenario: Create SealedSecretController CR: C-01-TC17 - Given user has installed Sealed Secrets Operator - And user has selected "cicd" namespace - And user is on Installed Operator page - When user clicks on SealedSecretController link - And user clicks on Create SealedSecretController button - And user enters name "sealedsecretcontroller" - And user clicks on Create button - Then user will be redirected to Sealed Secrets Controller tab with header "SealedSecretControllers" - And user will see sealedsecretcontroller created with name sealedsecretcontroller - - - @smoke @to-do - Scenario: Install Argo CD Operator: C-01-TC18 - Given user has created namespace "argocd" - And user is at Operator Hub page with the header name "OperatorHub" - When user searches for "Argo CD" - And user clicks on the Argo CD card - And user clicks install button present on the right side bar - And user installs the Argo CD Operator with default values - Then user will see a modal with title "Argo CD Operator" - And user will see a View Operator button - - @smoke @to-do - Scenario: Red Hat Integration - AMQ Streams operator: C-01-TC20 - Given user is at Operator Hub page - When user searches for "Red Hat Integration - AMQ Streams" - And user clicks on Red Hat Integration - AMQ Streams operator card on Operator Hub page - And user clicks install button present on the right sidebar - And user installs the Red Hat Integration - AMQ Streams operator with default values - Then user will see a Red Hat Integration - AMQ Streams installing modal - And user will see a View Operator button diff --git a/frontend/packages/dev-console/integration-tests/features/e2e/add-flow-ci.feature b/frontend/packages/dev-console/integration-tests/features/e2e/add-flow-ci.feature deleted file mode 100644 index 8c0fcd82218..00000000000 --- a/frontend/packages/dev-console/integration-tests/features/e2e/add-flow-ci.feature +++ /dev/null @@ -1,169 +0,0 @@ -@add-flow @smoke -Feature: Create the different workloads from Add page - As a user, I should be able to create an Application, component or service from one of the options provided on Add page - - - Background: - Given user is at developer perspective - And user has created or selected namespace "ci-addflow" - And user is at Add page - - Scenario: Getting started resources on Developer perspective - Then user will see Create Application using Samples, Build with guided documentation and Explore new developer features under Getting started resources section - And user will see All services, Database, Operator Backed and Helm Chart options under Software Catalog section - And user will see Import from Git card under Git Repository section - And user will see "Container images" option - And user will see "Samples" option - And user will see Import YAML, Upload JAR file under From Local Machine section - - Scenario Outline: Deploy Application using Catalog Template "": A-01-TC02 - Given user is at Software Catalog page - And user is at Templates page - When user selects Template category "" - And user searches and selects Template card "" from catalog page - And user clicks Instantiate Template button on side bar - And user clicks create button on Instantiate Template page - Then user will be redirected to Topology page - And user is able to see workload "" in topology page - - Examples: - | template_category | card_name | workload_name | - | CI/CD | Jenkins | jenkins | - | Databases | MariaDB | mariadb | - | Languages | Node.js + PostgreSQL (Ephemeral) | nodejs-postgresql-example | - | Middleware | Apache HTTP Server | httpd-example | - | Other | Nginx HTTP server and a reverse proxy | nginx-example | - - Scenario Outline: Deploy image with Runtime icon from external registry: A-02-TC02 - Given user is at Deploy Image page - When user enters Image name from external registry as "" - And user selects the "" from Runtime Icon dropdown - And user selects the application "sample-app" from Application dropdown - And user enters Name as "" - And user selects resource type as "deployment" - And user clicks Create button on Add page - Then user will be redirected to Topology page - And user will see the deployed image "" with "" icon - - Examples: - | image | image_name | runtime_icon | name | - | secure | openshift/hello-openshift | fedora | hello-secure | - - Scenario Outline: Deploy image with Runtime icon from internal registry: A-02-TC03 - Given user is at Deploy Image page - When user selects Image stream tag from internal registry - And user selects Project as "openshift" from internal registry - And user selects Image Stream as "" from internal registry - And user selects tag as "latest" from internal registry - And user selects the "" from Runtime Icon dropdown - And user selects the application "sample-app" from Application dropdown - And user enters Name as "" - And user selects resource type as "deployment" - And user clicks Create button on Add page - Then user will be redirected to Topology page - And user will see the deployed image "" with "" icon - - Examples: - | image_stream | runtime_icon | name | - | golang | fedora | hello-internal | - - @regression @ODC-7803 - Scenario Outline: Deploy image with custom icon - Given user is at Deploy Image page - When user enters Image name from external registry as "" - And user selects a custom icon with URL "" - And user enters Name as "" - And user selects resource type as "deployment" - And user clicks Create button on Add page - Then user will be redirected to Topology page - And user will see the deployed image "" with "" icon - - Examples: - | image_name | custom_icon | name | - | ghcr.io/logonoff/fortune-cowsay-motd:latest | https://i.imgur.com/cxiObse.jpeg | fortune-cowsay-motd | - - Scenario: Edit Runtime Icon while Editing Image: A-02-TC05 - Given user has deployed container Image "openshift/hello-openshift" from external registry - And user is at Topology page - And topology page has a deployed image "hello-openshift" with Runtime Icon "fedora" - When user right clicks on the node "hello-openshift" to open context menu - And user selects Edit imagename "hello-openshift" option - And user updates the Runtime icon to "ansible" - And user clicks on Save button - Then user will be redirected to Topology page - And user will see the deployment image "hello-openshift" icon updated to "ansible" Icon - - Scenario: Create the Database from Add page: A-03-TC01 - When user clicks Database card - And user selects "MariaDB" database on Software Catalog - And user clicks Instantiate Template button on side bar - And user clicks create button on Instantiate Template page - Then user will be redirected to Topology page - And user is able to see workload "mariadb" in topology page - - @manual - Scenario: Deploy git workload with devfile from topology page: A-04-TC01 - Given user is at the Topology page - When user right clicks on topology empty graph - And user selects "Import from Git" option from Add to Project context menu - And user enters Git Repo URL as "https://github.com/nodeshift-starters/devfile-sample" in Import from Git form - And user enters workload name as "node-bulletin-board-1" - And user clicks Create button on Add page - Then user will be redirected to Topology page - And user is able to see workload "node-bulletin-board-1" in topology page - - Scenario Outline: Create a workload from Docker file with "" as resource type: A-05-TC02 - Given user is on Import from Git form - When user enters Git Repo URL as "https://github.com/rohitkrai03/flask-dockerfile-example" - And user enters Name as "" in Docker file page - And user selects "" in Resource type section - And user clicks Create button on Add page - Then user will be redirected to Topology page - And user is able to see workload "" in topology page - - Examples: - | resource_type | name | - | Deployment | dockerfile | - - Scenario: Create a workload from YAML file: A-07-TC01 - Given user is at Import YAML page - When user enters the "testData/add-flow/git-dc.yaml" file data to YAML Editor - And user clicks create button on YAML page - And user navigates to Topology page - Then user is able to see workload "shell-app" in topology page - - Scenario: Upload Jar file page details: A-10-TC01 - Given user is at Add page - When user clicks on the Upload JAR file card - Then user is able to see Upload jar file, Optional java commands, Run time Icon and Builder Image version fields displayed in JAR section - And Application Name, Name fields displayed in General section - And Advanced options sections are displayed - And Create button is in disabled state - - Scenario Outline: Create Sample Application from Add page: GS-03-TC05 - Given user is at Add page - When user clicks on the Samples card - And user selects "" sample from Samples - And user is able to see the form header name as "" - And user clicks on Create button for creating sample - Then user will be redirected to Topology page - And user is able to see workload "" in topology page list view - - Examples: - | card_name | form_header | workload_name | - | Httpd | Create Sample application | httpd-sample | - | Basic Go | Import from Git | go-basic | - - @regression - Scenario: Quick Starts page when no Quick Start has started: QS-03-TC02 - When user selects QuickStarts from the help menu icon on the masthead - Then user can see "Get started with a sample application", "Install Red Hat Developer Hub (RHDH) with a Helm Chart" and "Add health checks to your sample application" Quick Starts - And user can see time taken to complete the tour on the card - - - @regression - Scenario: Quick Starts page when Quick Start has completed: QS-03-TC03 - When user selects QuickStarts from the help menu icon on the masthead - And user has completed "Get started with a sample application" Quick Start - Then user can see time taken to complete the "Get started with a sample application" tour on the card - And user can see Complete label on "Get started with a sample application" card diff --git a/frontend/packages/dev-console/integration-tests/features/e2e/enable-dev-perspective-ci.feature b/frontend/packages/dev-console/integration-tests/features/e2e/enable-dev-perspective-ci.feature deleted file mode 100644 index 81b406148c8..00000000000 --- a/frontend/packages/dev-console/integration-tests/features/e2e/enable-dev-perspective-ci.feature +++ /dev/null @@ -1,19 +0,0 @@ -@add-flow @smoke -Feature: Enable dev perspective - As a user, I should be able to enable dev perspective from UI - - Background: - Given user has only admin perspective enabled - And user has logged in as admin user - - - Scenario: Enable dev perspective: P-01-TC04 - Given user is at admin perspective - And user is at Search page in Home section - And user searches "console" - And user clicks on cluster - And user clicks the "Customize" button in the page heading - And user selects "Enabled" in the Developer under perspective section of general customisation - Then user will see Saved alert - And user refreshes the page to see developer option - And user will see developer perspective in the perspective switcher diff --git a/frontend/packages/dev-console/integration-tests/features/e2e/helm.feature b/frontend/packages/dev-console/integration-tests/features/e2e/helm.feature deleted file mode 100644 index 7c88d1ac7b9..00000000000 --- a/frontend/packages/dev-console/integration-tests/features/e2e/helm.feature +++ /dev/null @@ -1,20 +0,0 @@ -@e2e -Feature: Helm Chart E2E - As a user, I should be able to perform end to end scenarios related to Helm Chart - - - Background: - Given user is at developer perspective - And user has selected namespace "aut-helm-e2e" - - - @to-do - Scenario: Helm Scenarios: EE-01-TC01 - Given user has created helm chart "Nodejs" from Add Page - When user navigates to Helm Page - And user navigates to Topology page - And user opens the Sidebar for Helm Chart "nodejs" - And user upgrades Helm Chart "nodejs" - And user uninstalls the Helm Chart "nodejs" - Then user will not see Helm Chart "nodejs" in Topology page - And user will not see Helm Chart in helm page diff --git a/frontend/packages/dev-console/integration-tests/features/e2e/knative-service-workload.feature b/frontend/packages/dev-console/integration-tests/features/e2e/knative-service-workload.feature deleted file mode 100644 index d3e0500605d..00000000000 --- a/frontend/packages/dev-console/integration-tests/features/e2e/knative-service-workload.feature +++ /dev/null @@ -1,34 +0,0 @@ -@e2e @smoke -Feature: OpenShift Serverless Operator E2E - As a user, I should be able to perform end to end scenarios related to OpenShift Serverless Operator - - - Background: - Given user has created or selected namespace "aut-serverless-e2e" - And user has installed OpenShift Serverless Operator - And user is at developer perspective - - - Scenario: Check environment variable initialisation in git form : EE-02-TC01 - Given user is at Add page - And user is at Import from Git form - When user enters Git Repo URL as "https://github.com/logonoff/oc-node-func-with-env" - And user enters Name as "node-knative" - And user clicks "Show advanced Build option" link in Advanced Options section - And user clicks "Show advanced Deployment option" link in Advanced Options section - Then the environment variable "MY_BUILD_KEY" has value "tests" in the advanced options of the Build section in the Import from Git page - And the environment variable "MY_API_KEY" has value "{{ env:API_KEY }}" in the advanced options of the Deployment section in the Import from Git page - - - @to-do - Scenario: Actions on Knative Service: EE-02-TC02 - Given user is at the Topology page - When user right clicks on the knative service "knative-demo" - And user removes knative service "knative-demo" from Application Grouping - And user sets Traffic Distribution - And user edits Health Checks - And user edits Labels - And user edits Annotations - And user edits Service - And user deletes Service - Then user will not see knative service "knative-demo" diff --git a/frontend/packages/dev-console/integration-tests/features/getting-started/getting-started-to-dev-perspective.feature b/frontend/packages/dev-console/integration-tests/features/getting-started/getting-started-to-dev-perspective.feature deleted file mode 100644 index bb810f5ca5d..00000000000 --- a/frontend/packages/dev-console/integration-tests/features/getting-started/getting-started-to-dev-perspective.feature +++ /dev/null @@ -1,12 +0,0 @@ -@getting-started @dev-console -Feature: Login to developer perspective - As a user I want to land on developer perspective when login to openshift console as a developer - - - @regression @to-do - Scenario: Developer perspective display on login to open shift application using developer credentials: GS-01-TC01 - Given user is at login page - When user enters the username as "username" - And password as "password" - And clicks login - Then user redirects to developer perspective diff --git a/frontend/packages/dev-console/integration-tests/features/getting-started/getting-started-tour-dev-perspective.feature b/frontend/packages/dev-console/integration-tests/features/getting-started/getting-started-tour-dev-perspective.feature deleted file mode 100644 index c6489cb6f49..00000000000 --- a/frontend/packages/dev-console/integration-tests/features/getting-started/getting-started-tour-dev-perspective.feature +++ /dev/null @@ -1,61 +0,0 @@ -# Guided tour is disabled in cypress due to endless flakes -@getting-started @dev-console @manual -Feature: Getting Started tour of developer perspective - As a user I want to take tour of developer perspective - - @regression - Scenario: Quick tour when user logs in for the first time: GS-02-TC01 - Given user is on login page for the first time - When user enters the credential - And user clicks on the login button - And user sees first screen as "Welcome to the Developer Perspective!" - And user clicks on "Get Started" - And user sees the next screen appears as "Perspective Switcher" - And user clicks on 'Next' button - And user sees the next screen appears as "Observe" - And user clicks on 'Next' button - And user sees the next screen appears as "Search" - And user clicks on 'Next' button - And user sees the next screen appears as "Help" - And user clicks on 'Next' button - And user sees the next screen appears as "User Preferences" - And user clicks on 'Next' button - And user sees the final screen appears as "You’re ready to go!" - And user clicks on "Okay, got it!" button - Then user is in the topology view in the developer perspective - - @regression - Scenario: Quick tour from help menu: GS-02-TC02 - Given user is at developer perspective - When user opens help menu on top right - And user clicks on the 'Guided tour' option - And user sees first screen as 'Welcome to the Developer Perspective!' - And user clicks on the 'Get started' button on the guided tour modal - And user sees the next screen appears as "Perspective Switcher" - And user clicks on the 'Next' button - And user sees the next screen appears as "Observe" - And user clicks on the 'Next' button - And user sees the next screen appears as "Search" - And user clicks on the 'Next' button - And user sees the next screen appears as "Help" - And user clicks on the 'Next' button - And user sees the next screen appears as "User Preferences" - And user clicks on the 'Next' button - And user sees the final screen appears as "You’re ready to go!" - And user clicks on the "Okay, got it!" button on the guided tour modal - Then user is in the topology view in the developer perspective - - @regression - Scenario: Stopping Quick tour in mid of the tour: GS-02-TC03 - Given user is in developer perspective - When user opens help menu on top right - And user clicks on the "Guided tour" option - And user sees first screen as "Welcome to the Developer Perspective!" - And user clicks on Get started button - And user sees the next screen appears as "Perspective Switcher" - And user sees the button labels as "Back" & "Next" and "Close" button on top-right corner - And user clicks on Close button - And user is in the Add page in developer perspective - And user opens help menu on top right - And user clicks on the "Guided tour" option - Then user is taken to the first screen again diff --git a/frontend/packages/dev-console/integration-tests/features/getting-started/sample-card-add-page.feature b/frontend/packages/dev-console/integration-tests/features/getting-started/sample-card-add-page.feature deleted file mode 100644 index fbe38b3a344..00000000000 --- a/frontend/packages/dev-console/integration-tests/features/getting-started/sample-card-add-page.feature +++ /dev/null @@ -1,64 +0,0 @@ -@getting-started @dev-console -Feature: Create Sample Application - As a user I want to create the Sample Application from +Add page - - Background: - Given user is at developer perspective - And user has created or selected namespace "aut-addflow-catalog" - - @regression - Scenario: Sample Card in Add flow: GS-03-TC01 - Given user is at Add page - When user clicks on the "View all samples" link - Then user is redirected to Samples Page - And user is able to see different sample applications - And sample applications are based on the builder images - - @regression @ODC-7128 - Scenario Outline: Create Sample Application from Add page: GS-03-TC05 - Given user is at Add page - When user clicks on the Samples card - And user selects "" sample from Samples - And user is able to see the form header name as "" - And user clicks on Create button - Then user will be redirected to Topology page - And user is able to see workload "" in topology page list view - - Examples: - | card_name | form_header | workload_name | - | Httpd | Create Sample application | httpd-sample | - | Basic Go | Import from Git | go-basic | - - @regression - Scenario: Review Sample Appliation form: GS-03-TC02 - Given user is at Add page - When user clicks on the "View all samples" link - And user is redirected to Samples Page - And user selects "Go" sample from Samples - And user is able to see the form header name as "Create Sample application" - Then form is filled with default values - And user will see the name section - And user will see builder image version dropdown - And user will see builder image below builder image version dropdown - And user will see git url is ineditable field - And user will see create and cancel button - - @regression - Scenario: Edit Sample Appliation form: GS-03-TC03 - Given user is in Add flow of dev perspective - When user clicks on the "View all samples" link - Then user is redirected to Samples Page - And user clicks on the "Go" card - And user is able to see the form header name as "Create Sample application" - And user assign a new name as "golang-sample-app1" in the name section - And user changes the builder image version from dropdown to "latest" - And user clicks on the Create button - And user is taken to topology with a "golang-sample-app1" deployment workload created inside sample application - - @regression - Scenario: Create Basic NodeJS Devfile Sample Appliation: GS-03-TC04 - Given user is at Samples page - When user clicks on the "Basic Node.js" card - And user assigns a name "node-js-basic-sample1" in the Name section of Import from Devfile form - And user clicks on the Create button - Then user is taken to Topology page with deployment workload "node-js-basic-sample1" created diff --git a/frontend/packages/dev-console/integration-tests/features/guided-tour/associate-pipeline-with-application.feature b/frontend/packages/dev-console/integration-tests/features/guided-tour/associate-pipeline-with-application.feature deleted file mode 100644 index 0f79888a6c7..00000000000 --- a/frontend/packages/dev-console/integration-tests/features/guided-tour/associate-pipeline-with-application.feature +++ /dev/null @@ -1,120 +0,0 @@ -@guided-tour @dev-console -Feature: Deploying an application with a pipeline tour - As a user, I want to take a guided tour to deploy an application with a pipeline feature - - Background: - Given user is in developer perspective - And user is at Add page - - - @regression @to-do - Scenario: Starting tour from the Add page: GT-01-TC01 - Given Build with guided documentation card is present in Add page - When user clicks on the "Deploying an application with a pipeline" link on the card to see the tour will start with link to three steps present as a sidepane with close button - And user clicks on the Start button to see "Importing an application and associate it with a pipeline" step to create an application - And user clicks on next - And user selects Yes on alert titled "Check your work" asking to verify that your application was successfully created - And user clicks on next to see "Explore your application" started to explore your application in topology - And user clicks on next - And user selects Yes on alert titled "Check your work" asking to verify that the application has been created an a pipeline was associated - And user clicks on next to see "Start and explore your pipeline run" step as You’ve just explored the topology of your application and seen it’s related resources. Now let’s start your pipeline - And user clicks on next - And user selects Yes on alert titled "Check your work" asking you should be brought to the Pipeline Run details page. To verify that your pipeline has started - And user clicks on next - Then user sees the message saying "You just created an application and associated a pipeline with it, and successfully explored the pipeline." - And user sees "Close", "Back" and "Restart" - And user sees Complete label marked on Deploying an application with a pipeline card when user clicks "close" button to close the sidepane - - - @regression @to-do - Scenario: Starting tour from the Quick Starts page: GT-01-TC02 - Given Build with guided documentation card is present in Add page - When user clicks on the "View all quick starts" link on the card - And user clicks on the "Deploying an application with a pipeline" link on the card to see the tour will start with link to three steps present as a sidepane with close button - And user clicks on the Start button to see "Importing an application and associate it with a pipeline" step to create an application - And user clicks on next - And user selects Yes on alert titled "Check your work" asking to verify that your application was successfully created - And user clicks on next to see "Explore your application" started to explore your application in topology - And user clicks on next - And user selects Yes on alert titled "Check your work" asking to verify that the application has been created an a pipeline was associated - And user clicks on next to see "Start and explore your pipeline run" step as You’ve just explored the topology of your application and seen it’s related resources. Now let’s start your pipeline - And user clicks on next - And user selects Yes on alert titled "Check your work" asking you should be brought to the Pipeline Run details page. To verify that your pipeline has started - And user clicks on next - Then user sees the message saying "You just created an application and associated a pipeline with it, and successfully explored the pipeline." - And user sees "Close", "Back" and "Restart" - And user sees Complete label marked on Deploying an application with a pipeline card when user clicks "close" button to close the sidepane - - - @regression @to-do - Scenario: Trying No option during the tour: GT-01-TC03 - Given user is at Quick Starts catalog page - When user clicks on the "Deploying an application with a pipeline" link on the card - And user clicks on the Start button to start "Importing an application and associate it with a pipeline" step - And user clicks on next - And user selects No option on alert appears "Check your work" asking to verify that the Serverless Operator was successfully installed - Then user sees that the alert is saying "This task isn't verified yet. Try the task again" - - - @regression @to-do - Scenario: Avoiding option during the tour: GT-01-TC04 - Given user is at Quick Starts catalog page - When user clicks on the Deploying an application with a pipeline card - And user clicks on the Start button to see "Importing an application and associate it with a pipeline" step started - And user clicks on next to see "Check your work" alert asking to verify that the Pipelines Operator was successfully installed - And user clicks on next to see next step "Explore your application" started - And user clicks on next to see "Check your work" alert asking to verify that the application has been created an a pipeline was associated - And user clicks on next - And user clicks on Close button - Then user sees Complete label marked on Deploying an application with a pipeline card - - - @regression @to-do - Scenario: Review the tour: GT-01-TC05 - Given Build with guided documentation card is present in Add page - When user clicks on the "View all quick starts" link on the card - And user clicks on the Deploying an application with a pipeline card - And user clicks on the Start button to see "Importing an application and associate it with a pipeline" step started - And user clicks on next to see "Check your work" alert asking to verify that the Pipelines Operator was successfully installed - And user clicks on next to see next step "Explore your application" started - And user clicks on next to see "Check your work" alert asking to verify that the application has been created an a pipeline was associated - And user clicks on next to see step "Exploring your pipeline runs" started - And user clicks on next to see "Check your work" alert asking you should be brought to the Pipeline Run details page. To verify that your pipeline has started - And user clicks on next - And user clicks back button to go back to previous "Check your work" alert - And user clicks on next - And user clicks "close" button to close the sidepane back to tour page - Then user sees Complete label marked on Deploying an application with a pipeline card - - - @regression @to-do - Scenario: Stopping and again resuming the tour: GT-01-TC06 - Given Build with guided documentation card is present in Add page - When user clicks on the "View all quick starts" card - And user clicks on the Deploying an application with a pipeline card - And user clicks on the Start button to see "Importing an application and associate it with a pipeline" step - And user clicks on next - And user selects Yes on alert titled "Check your work" - And user clicks the close button - And user clicks on Leave button on modal "Are you sure you want to leave the tour" - And user clicks on the Deploying an application with a pipeline card - Then user sees that the tour has started again with Yes selected for the alert titled "Check your work" in step 1 - - - @regression @to-do - Scenario: Navigating between steps in the tour: GT-01-TC07 - Given user is at Quick Starts catalog page - When user clicks on the "Deploying an application with a pipeline" card - And user clicks on third step "Exploring your pipeline run" from the link to three steps present in the card - And user clicks on next - And user selects Yes in alert titled "Check your work" asking you should be brought to the Pipeline Run details page. To verify that your pipeline has started - And user clicks on second step "Exploring your application" - And user clicks on next - And user selects Yes in alert titled "Check your work" asking to verify that the application has been created an a pipeline was associated - And user clicks on first step "Importing an application and associate it with a pipeline" step - And user clicks on next - And user selects Yes in alert titled "Check your work" asking to verify that your application was successfully created - And user clicks on next to see step "Exploring your application" with Check your work alert - And user clicks on next to see step "Exploring your pipeline run" with Check your work alert - And user clicks on next - Then user sees the message saying "You just created an application and associated a pipeline with it, and successfully explored the pipeline." diff --git a/frontend/packages/dev-console/integration-tests/features/guided-tour/create-serverless-application.feature b/frontend/packages/dev-console/integration-tests/features/guided-tour/create-serverless-application.feature deleted file mode 100644 index c5a86d19e3e..00000000000 --- a/frontend/packages/dev-console/integration-tests/features/guided-tour/create-serverless-application.feature +++ /dev/null @@ -1,154 +0,0 @@ -@guided-tour @dev-console -Feature: Creating a Serverless application tour - As a user, I want to take a guided tour of creating a serverless application feature - - Background: - Given user is at developer perspective - And user is at Add page - - - @regression @to-do - Scenario: Starting tour from the Add page: GT-02-TC01 - Given Build with guided documentation card is present in Add page - When user clicks on the "Exploring Serverless applications" link on the card to see the tour will start with link to three steps present as a sidepane with close button - And user clicks on the Start button to see "Creating a Serverless application" step started to create an Serverless application - And user clicks on next - And user selects Yes option on alert titled "Check your work" asking to verify that the Serverless Operator was successfully installed - And user clicks on next to see step "Demoing scalability" started to see your application scale - And user clicks on next - And user selects Yes option on alert titled "Check your work" asking to verify that your application scaled successfully - And user clicks on next to see step "Connecting an event source to your Knative Service" started to steps to connect an event source to your Knative Service - And user clicks on next - And user selects Yes option on alert titled "Check your work" asking to connect an event source to your Knative Service successfully - And user clicks on next to see step "Forcing a new revision & set traffic distribution" started to force a new revision & set traffic distribution - And user clicks on next - And user selects Yes option on alert titled "Check your work" asking to verify that you forced a new revision & set traffic distribution successfully - And user clicks on next to see step "Deleting your application" started to delete your application you just created - And user clicks on next - And user selects Yes option on alert titled "Check your work" asking to verify you deleted your application - And user clicks on next - Then user sees the message saying "You just learned how to use Serverless applications in your cluster" - And user sees Knative Cookbook link - And user sees "Close", "Back" and "Restart" - And user sees Complete label marked on Exploring Serverless applications card after clicking on "close" button to close the sidepane - - - @regression @to-do - Scenario: Starting tour from the Quick Starts page: GT-02-TC02 - Given Build with guided documentation card is present in Add page - When user clicks on the "View all quick starts" link on the card - And user clicks on the "Exploring Serverless applications" link on the card to see the tour will start with link to three steps present as a sidepane with close button - And user clicks on the Start button to see "Creating a Serverless application" step started to create an Serverless application - And user clicks on next - And user selects Yes option on alert titled "Check your work" asking to verify that the Serverless Operator was successfully installed - And user clicks on next to see step "Demoing scalability" started to see your application scale - And user clicks on next - And user selects Yes option on alert titled "Check your work" asking to verify that your application scaled successfully - And user clicks on next to see step "Connecting an event source to your Knative Service" started to steps to connect an event source to your Knative Service - And user clicks on next - And user selects Yes option on alert titled "Check your work" asking to connect an event source to your Knative Service successfully - And user clicks on next to see step "Forcing a new revision & set traffic distribution" started to force a new revision & set traffic distribution - And user clicks on next - And user selects Yes option on alert titled "Check your work" asking to verify that you forced a new revision & set traffic distribution successfully - And user clicks on next to see step "Deleting your application" started to delete your application you just created - And user clicks on next - And user selects Yes option on alert titled "Check your work" asking to verify you deleted your application - And user clicks on next - Then user sees the message saying "You just learned how to use Serverless applications in your cluster" - And user sees Knative Cookbook link - And user sees "Close", "Back" and "Restart" - And user sees Complete label marked on Exploring Serverless applications card after clicking on "close" button to close the sidepane - - - @regression @manual - Scenario: Trying 'No' option during the tour: GT-02-TC03 - Given user is at Quick Starts catalog page - When user clicks on the "Exploring Serverless applications" link on the card - And user clicks on the Start button to see "Creating a Serverless application" step is started - And user clicks on next - And user selects No option on alert appears "Check your work" asking to verify that the Serverless Operator was successfully installed - Then user sees that the alert is saying "This task isn't verified yet. Try the task again" - - - @regression @manual - Scenario: Avoiding option during the tour: GT-02-TC04 - Given user is at Quick Starts catalog page - When user clicks on the "Exploring Serverless applications" card - And user clicks on the Start button to start "Creating a Serverless application" step - And user clicks on next to see "Check your work" alert asking to verify that the Serverless Operator was successfully installed - And user clicks on next to see step "Demoing scalability" started - And user clicks on next to see "Check your work" alert asking to verify that your application scaled successfully - And user clicks on next to see step "Connecting an event source to your Knative Service" started - And user clicks on next to see "Check your work" alert asking to connect an event source to your Knative Service successfully - And user clicks on next to see step "Forcing a new revision & set traffic distribution" started - And user clicks on next to see "Check your work" alert asking to verify that you forced a new revision & set traffic distribution successfully - And user clicks on next to see step "Deleting your application" started - And user clicks on next to see "Check your work" alert asking to verify you deleted your application - And user clicks on next - And user sees the message saying "You just learned how to use Serverless applications in your cluster" - And user sees Knative Cookbook link - And user sees "Close" and "Back" - And user clicks "Back" button to go back to previous "Check your work" alert - And user clicks on next - And user clicks "close" button to close the sidepane back to tour page - Then user sees Complete label marked on Creating a Serverless application card - - - @regression @manual - Scenario: Review the tour: GT-02-TC05 - Given Build with guided documentation card is present in Add page - When user clicks on the "View all quick starts" link on the card - And user clicks on the "Exploring Serverless applications" card - And user clicks on the Start to see step "Creating a Serverless application" started - And user clicks on next to see "Check your work" alert asking to verify that the Serverless Operator was successfully installed - And user clicks on next to see step "Demoing scalability" started - And user clicks on next to see "Check your work" alert asking to verify that your application scaled successfully - And user clicks on next to see step "Connecting an event source to your Knative Service" started - And user clicks on next to see "Check your work" alert asking to connect an event source to your Knative Service successfully - And user clicks on next to see step "Forcing a new revision & set traffic distribution" started - And user clicks on next to see "Check your work" alert asking to verify that you forced a new revision & set traffic distribution successfully - And user clicks on next to see step "Deleting your application" started - And user clicks on next to see "Check your work" alert asking to verify you deleted your application - And user clicks on next - And user clicks back button to go back to previous "Check your work" alert - And user clicks on next - And user clicks "close" button to close the sidepane back to tour page - Then user sees Complete label marked on Creating a Serverless application card - - - @regression @to-do - Scenario: Stopping and again resuming the tour: GT-02-TC06 - Given Build with guided documentation card is present in Add page - When user clicks on the "View all quick starts" link on the card - And user clicks on the "Exploring Serverless applications" card - And user clicks on the Start button to see "Creating a Serverless application" step is started - And user clicks on the close button - And user clicks on Leave button on modal "Are you sure you want to leave the tour" - And user clicks on the "Exploring Serverless applications" card - Then user sees the tour will start from the step "Creating a Serverless application" - - - @regression @to-do - Scenario: Navigating between steps in the tour: GT-02-TC07 - Given user is at Quick Starts catalog page - When user clicks on the "Exploring Serverless applications" link on the card - And user clicks on fifth step to start "Deleting your application" - And user clicks on next to see "Check your work" alert asking to verify you deleted your application - And user clicks on fourth step to start "Forcing a new revision & set traffic distribution" - And user clicks on next to see "Check your work" alert asking to verify that you forced a new revision & set traffic distribution successfully - And user clicks on third step to start "Connecting an event source to your Knative Service" - And user clicks on next to see "Check your work" alert asking to connect an event source to your Knative Service successfully - And user clicks on second step to start "Demoing scalability" - And user clicks on next to see "Check your work" alert asking to verify that your application scaled successfully - And user clicks on first step to start "Creating a Serverless application" - And user clicks on next to see "Check your work" alert asking to verify that the Serverless Operator was successfully installed - And user clicks on next - And user sees step "Demoing scalability" with Check your work alert - And user clicks on next - And user sees step "Connecting an event source to your Knative Service" with Check your work alert - And user clicks on next - And user sees step "Forcing a new revision & set traffic distribution" with Check your work alert - And user clicks on next - And user sees step "Deleting your application" with Check your work alert - And user clicks on next - Then user sees the message saying "You just learned how to use Serverless applications in your cluster" diff --git a/frontend/packages/dev-console/integration-tests/features/guided-tour/developer-hub-installation-with-helm-charts.feature b/frontend/packages/dev-console/integration-tests/features/guided-tour/developer-hub-installation-with-helm-charts.feature deleted file mode 100644 index 296517f18ee..00000000000 --- a/frontend/packages/dev-console/integration-tests/features/guided-tour/developer-hub-installation-with-helm-charts.feature +++ /dev/null @@ -1,117 +0,0 @@ -@guided-tour @dev-console -Feature: Install Red Hat Developer Hub (RHDH) with a Helm Chart tour - As a user, I want to take a guided tour to deploy an application with a pipeline feature - - Background: - Given user is at developer perspective - And user is at Add page - And user has created or selected namespace "developerhub-install" - - @regression - Scenario: Starting tour from the Add page: GT-01-TC01 - Given Build with guided documentation card is present in Add page - When user click on Add to project icon - And user types "Install Red Hat Developer Hub (RHDH) with a Helm Chart" in input box - And user clicks on Start button from the quick search result - And user see the tour will start with link to four steps present as a sidepane with close button - And user clicks on the "Start" tour option to see "Install Red Hat Developer Hub with a Helm Chart" step to install Red Hat Developer Hub - And user clicks on next button - And user selects Yes option for alert titled "Check your work" asking to "verify the application was successfully created" - And user clicks on next to see "Know how to upgrade your Red Hat Developer Hub installation" step started for upgrading developer installation - And user selects Yes option for alert titled "Check your work" asking to "verify the application was successfully upgraded" - And user clicks on next to see "Optional: Change the URL of your Red Hat Developer Hub instance" optional step to modify developer hub instance URL - And user selects Yes option for alert titled "Check your work" asking to "verify the application was successfully updated" - And user clicks on next to see "Optional: Add Red Hat Developer Hub to the OpenShift Console Application menu" optional step to add developer hub to Openshift Console menu - And user selects Yes option for alert titled "Check your work" asking to "verify that the application menu link" - And user clicks on next button - Then user sees the message saying "Your Red Hat Developer Hub installation is deployed and ready." - And user sees "Close", "Back" and "Restart" - - @regression - Scenario: Starting tour from the Quick Starts page: GT-01-TC02 - Given Build with guided documentation card is present in Add page - When user clicks on the link "View all quick starts" on the card - And user clicks on the "Install Red Hat Developer Hub (RHDH) with a Helm Chart" link on the card to see the tour will start with link to four steps present as a sidepane with close button - And user clicks on the "Start" tour option to see "Install Red Hat Developer Hub with a Helm Chart" step to install Red Hat Developer Hub - And user clicks on next button - And user selects Yes option for alert titled "Check your work" asking to "verify the application was successfully created" - And user clicks on next to see "Know how to upgrade your Red Hat Developer Hub installation" step started for upgrading developer installation - And user selects Yes option for alert titled "Check your work" asking to "verify the application was successfully upgraded" - And user clicks on next to see "Optional: Change the URL of your Red Hat Developer Hub instance" optional step to modify developer hub instance URL - And user selects Yes option for alert titled "Check your work" asking to "verify the application was successfully updated" - And user clicks on next to see "Optional: Add Red Hat Developer Hub to the OpenShift Console Application menu" optional step to add developer hub to Openshift Console menu - And user selects Yes option for alert titled "Check your work" asking to "verify that the application menu link" - And user clicks on next button - Then user sees the message saying "Your Red Hat Developer Hub installation is deployed and ready." - And user sees "Close", "Back" and "Restart" - Then user sees Complete label marked on "Install Red Hat Developer Hub (RHDH) with a Helm Chart" card - - @regression - Scenario: Trying No option during the tour: GT-01-TC03 - Given user is at Quick Starts catalog page - When user clicks on the "Install Red Hat Developer Hub (RHDH) with a Helm Chart" card - And user clicks on the "Start" tour option to see "Install Red Hat Developer Hub with a Helm Chart" step to install Red Hat Developer Hub - And user clicks on next button - And user selects No option on alert appears "Check your work" asking to verify that your application was successfully created - Then user sees that the alert is saying "Try the steps again" - - @regression - Scenario: Avoiding option during the tour: GT-01-TC04 - Given user is at Quick Starts catalog page - When user clicks on the "Install Red Hat Developer Hub (RHDH) with a Helm Chart" card - And user clicks on the "Start" tour option to see "Install Red Hat Developer Hub with a Helm Chart" step to install Red Hat Developer Hub - And user sees alert titled "Check your work" asking to "verify the application was successfully created" - And user clicks on next button - And user clicks on next to see next step "Know how to upgrade your Red Hat Developer Hub installation" started - And user clicks on next button - And user sees alert titled "Check your work" asking to "verify the application was successfully upgraded" - And user clicks on next to see "Optional: Change the URL of your Red Hat Developer Hub instance" optional step to modify developer hub instance URL - And user clicks on next button - And user clicks on next to see next step "Optional: Add Red Hat Developer Hub to the OpenShift Console Application menu" started - And user clicks on next button twice - Then user sees Complete label marked on "Install Red Hat Developer Hub (RHDH) with a Helm Chart" card - - @regression - Scenario: Review the tour: GT-01-TC05 - Given Build with guided documentation card is present in Add page - When user clicks on the link "View all quick starts" on the card - And user clicks on the "Install Red Hat Developer Hub (RHDH) with a Helm Chart" card - And user clicks on the "Start" tour option to see "Install Red Hat Developer Hub with a Helm Chart" step to install Red Hat Developer Hub - And user sees alert titled "Check your work" asking to "verify the application was successfully created" - And user clicks on next button - And user clicks on next to see next step "Know how to upgrade your Red Hat Developer Hub installation" started - And user sees alert titled "Check your work" asking to "verify the application was successfully upgraded" - And user clicks on next button - And user clicks on next to see next step "Optional: Change the URL of your Red Hat Developer Hub instance" started - And user sees alert titled "Check your work" asking to "verify the application was successfully updated" - And user clicks on next button - And user clicks on next to see next step "Optional: Add Red Hat Developer Hub to the OpenShift Console Application menu" started - And user clicks on next button twice - Then user sees Complete label marked on "Install Red Hat Developer Hub (RHDH) with a Helm Chart" card - - @regression - Scenario: Stopping and again resuming the tour: GT-01-TC06 - Given Build with guided documentation card is present in Add page - When user clicks on the link "View all quick starts" on the card - And user clicks on the "Install Red Hat Developer Hub (RHDH) with a Helm Chart" card - And user clicks on the "Start" tour option to see "Install Red Hat Developer Hub with a Helm Chart" step to install Red Hat Developer Hub - And user selects Yes option on alert titled "Check your work" - And user closes the close button - And user clicks on Leave button on modal "Leave quick start?" - And user clicks on the "Install Red Hat Developer Hub (RHDH) with a Helm Chart" card - - @regression - Scenario: Navigating between steps in the tour: GT-01-TC07 - Given user is at Quick Starts catalog page - When user clicks on the "Install Red Hat Developer Hub (RHDH) with a Helm Chart" card - And user clicks on third step "Optional: Change the URL of your Red Hat Developer Hub instance" from the link to four steps present in the card - And user selects Yes option in alert titled "Check your work" - And user clicks on second step "Know how to upgrade your Red Hat Developer Hub installation" - And user selects Yes option in alert titled "Check your work" - And user clicks on first step "Install Red Hat Developer Hub with a Helm Chart" step - And user selects Yes option in alert titled "Check your work" - And user clicks on next to see step "Know how to upgrade your Red Hat Developer Hub installation" with "Check your work" alert - And user clicks on next to see step "Optional: Change the URL of your Red Hat Developer Hub instance" with "Check your work" alert - And user clicks on next to see step "Optional: Add Red Hat Developer Hub to the OpenShift Console Application menu" with "Check your work" alert - And user clicks on next button twice - Then user sees the message saying "Your Red Hat Developer Hub installation is deployed and ready." diff --git a/frontend/packages/dev-console/integration-tests/features/guided-tour/getting-started-serverless.feature b/frontend/packages/dev-console/integration-tests/features/guided-tour/getting-started-serverless.feature deleted file mode 100644 index 05adc2be5a8..00000000000 --- a/frontend/packages/dev-console/integration-tests/features/guided-tour/getting-started-serverless.feature +++ /dev/null @@ -1,132 +0,0 @@ -@guided-tour @dev-console -Feature: Install the OpenShift Serverless Operator tour - As a user, I want to take a guided tour of Install the OpenShift Serverless Operator feature - - Background: - Given user is at developer perspective - And user has created or selected namespace "serverless-tour" - And user is at Add page - - @regression - Scenario: Starting tour from the Add page: GT-04-TC01 - Given Build with guided documentation card is present in Add page - When user click on Add to project icon - And user types "Install the OpenShift Serverless Operator" in input box - And user clicks on Start button from the quick search result - And user sees the tour will start with a link to the three steps present as a sidebar with a start button - And user clicks on the Start button to see "Install the OpenShift Serverless Operator" step for installing serverless steps - And user clicks on next button - And user selects Yes option for alert titled "Check your work" asking to "Verify that the OpenShift Serverless Operator is installed" - And user clicks on next to see "Create the Knative Serving API" step to create the Knative Serving application program interface - And user selects Yes option for alert titled "Check your work" asking to "Verify that the Knative Serving API was installed successfully" - And user clicks on next to see "Create the Knative Eventing API" step to create the Knative Eventing application program interface - And user selects Yes option for alert titled "Check your work" asking to "Verify that the Knative Eventing API was installed successfully" - And user clicks on next button - Then user sees the message saying "Your Serverless Operator is ready" - And user sees "Close", "Back" and "Restart" - - @regression - Scenario: Starting tour from the Quick Starts page: GT-04-TC02 - Given Build with guided documentation card is present in Add page - When user clicks on the link "View all quick starts" on the card - And user clicks on the "Install the OpenShift Serverless Operator" link on the card to see the tour will start with link to three steps present as a sidepane with close button - And user clicks on the Start button to see "Install the OpenShift Serverless Operator" step for installing serverless steps - And user clicks on next button - And user selects Yes option for alert titled "Check your work" asking to "Verify that the OpenShift Serverless Operator is installed" - And user clicks on next to see "Create the Knative Serving API" step to create the Knative Serving application program interface - And user selects Yes option for alert titled "Check your work" asking to "Verify that the Knative Serving API was installed successfully" - And user clicks on next to see "Create the Knative Eventing API" step to create the Knative Eventing application program interface - And user selects Yes option for alert titled "Check your work" asking to "Verify that the Knative Eventing API was installed successfully" - And user clicks on next button - Then user sees the message saying "Your Serverless Operator is ready" - And user sees "Close", "Back" and "Restart" - And user sees Complete label marked on "Install the OpenShift Serverless Operator" card - - @regression - Scenario: Trying 'No' option during the tour: GT-04-TC03 - Given user is at Quick Starts catalog page - When user clicks on the "Install the OpenShift Serverless Operator" card - And user clicks on the Start tour option to see "Install the OpenShift Serverless Operator" step is started - And user clicks on next to see an alert appears "Check your work" asking to verify that the Serverless Operator was successfully installed - And user selects No option - And user clicks on next button - Then user sees that the alert is saying "Try the steps again" - - @regression - Scenario: Avoiding option during the tour: GT-04-TC04 - Given user is at Quick Starts catalog page - When user clicks on the "Install the OpenShift Serverless Operator" card - And user clicks on the Start button - And user clicks on next on "Install the OpenShift Serverless Operator" step - And user clicks on next on "Check your work" alert - And user clicks on next on "Create the Knative Serving API" step - And user selects Yes option for the alert "Check your work" asking to "Verify that the Knative Serving API was installed successfully" - And user clicks on next button - And user clicks on next on "Create the Knative Eventing API" step - And user selects Yes option for the alert "Check your work" asking to "Verify that the Knative Eventing API was installed successfully" - And user clicks on next button - Then user sees Complete label marked on "Install the OpenShift Serverless Operator" card - - @regression - Scenario: Review the tour: GT-04-TC05 - Given Build with guided documentation card is present in Add page - When user clicks on the link "View all quick starts" on the card - And user clicks on the "Install the OpenShift Serverless Operator" card - And user clicks on the Start button to see "Install the OpenShift Serverless Operator" step for installing serverless steps - And user sees alert titled "Check your work" asking to "Verify that the OpenShift Serverless Operator is installed" - And user clicks on next button - And user clicks on next to see "Create the Knative Serving API" step to create the Knative Serving application program interface - And user sees alert titled "Check your work" asking to "Verify that the Knative Serving API was installed successfully" - And user clicks on next button - And user clicks on next to see "Create the Knative Eventing API" step to create the Knative Eventing application program interface - And user sees alert titled "Check your work" asking to "Verify that the Knative Eventing API was installed successfully" - And user clicks on next button twice - And user clicks "Back" button to go back to previous "Check your work" alert - Then user sees Complete label marked on "Install the OpenShift Serverless Operator" card - - @regression - Scenario: Stopping and again resuming the tour: GT-04-TC06 - Given Build with guided documentation card is present in Add page - When user clicks on the link "View all quick starts" on the card - And user clicks on the "Install the OpenShift Serverless Operator" card - And user clicks on the Start button - And user sees "Install the OpenShift Serverless Operator" step is started - And user closes the close button - And user clicks on Leave button on modal "Leave quick start?" - And user clicks on the "Install the OpenShift Serverless Operator" card - Then user sees the tour will start from the step "Install the OpenShift Serverless Operator" - - @regression - Scenario: Stopping and restarting the tour: GT-04-TC07 - Given Build with guided documentation card is present in Add page - When user clicks on the link "View all quick starts" on the card - And user clicks on the "Install the OpenShift Serverless Operator" card - And user clicks on the Start button to see "Install the OpenShift Serverless Operator" step for installing serverless steps - And user clicks on next button - And user selects Yes option for alert titled "Check your work" asking to "Verify that the OpenShift Serverless Operator is installed" - And user clicks on next to see "Create the Knative Serving API" step to create the Knative Serving application program interface - And user clicks on next button - And user selects Yes option for alert titled "Check your work" asking to "Verify that the Knative Serving API was installed successfully" - And user clicks on next to see "Create the Knative Eventing API" step to create the Knative Eventing application program interface - And user clicks on next button - And user selects Yes option for alert titled "Check your work" asking to "Verify that the Knative Eventing API was installed successfully" - And user clicks on the Restart button - Then user sees that the tour has started again - And user clicks on the Start button - - @regression - Scenario: Navigating between steps in the tour: GT-04-TC08 - Given user is at Quick Starts catalog page - When user clicks on the "Install the OpenShift Serverless Operator" card - And user clicks on the Start button to see "Install the OpenShift Serverless Operator" step for installing serverless steps - And user clicks on next button - And user selects Yes option for alert titled "Check your work" asking to "Verify that the OpenShift Serverless Operator is installed" - And user clicks on next to see "Create the Knative Serving API" step to create the Knative Serving application program interface - And user clicks on next button - And user selects Yes option for alert titled "Check your work" asking to "Verify that the Knative Serving API was installed successfully" - And user clicks on next to see "Create the Knative Eventing API" step to create the Knative Eventing application program interface - And user clicks on next button - And user selects Yes option for alert titled "Check your work" asking to "Verify that the Knative Eventing API was installed successfully" - And user clicks on first step "Install the OpenShift Serverless Operator" - And user clicks on next on "Check your work" alert - Then user sees step "Create the Knative Serving API" with Check your work alert diff --git a/frontend/packages/dev-console/integration-tests/features/guided-tour/quick-starts/filter-quick-starts-catalog.feature b/frontend/packages/dev-console/integration-tests/features/guided-tour/quick-starts/filter-quick-starts-catalog.feature deleted file mode 100644 index fd7fd27b144..00000000000 --- a/frontend/packages/dev-console/integration-tests/features/guided-tour/quick-starts/filter-quick-starts-catalog.feature +++ /dev/null @@ -1,50 +0,0 @@ -@guided-tour @dev-console -Feature: Add ability to filter Quick Starts catalog - As a user, i want to be able to filter Quick Starts in the catalog by status of the Quick Starts and search Quick Starts catalog by name, description, tags and prerequisites. - - Background: - Given user is at developer perspective - And user is at Add page - And user has created or selected namespace "aut-filter-quickstarts" - - - @smoke - Scenario: Quick Starts Catalog Page: QS-01-TC01 - Given user is at Add page - When user clicks on "View all quick starts" on Build with guided documentation card - Then user can see Quick Starts catalog page - And user can see filter by keyword search bar - And user can see Status filter dropdown - - - @regression - Scenario: Filter by keyword: QS-01-TC02 - Given user is at Quick Starts catalog page - When user clicks on filter by keyword search bar - And user enters "pipeline" - Then user can see "Install the OpenShift Pipelines Operator" Quick Start - - - @regression - Scenario: Filter based on status: QS-01-TC03 - Given user is at Quick Starts catalog page - When user clicks on Status filter menu - Then user can see Complete, In progress and Not started categories - - - @regression @broken-test - Scenario: Apply Filter based on status: QS-01-TC04 - Given user is at Quick Starts catalog page - And user has completed "Get started with a sample application" Quick Start - When user clicks on Status filter menu - And user clicks on completed - Then user can see "Get started with a sample application" Quick Start is present - - - @regression - Scenario: No result condition for filter: QS-01-TC05 - Given user is at Quick Starts catalog page - When user clicks on filter by keyword search bar - And user enters "asdf" - Then user can see "No results found" message - And user can see Clear all filters option diff --git a/frontend/packages/dev-console/integration-tests/features/guided-tour/quick-starts/quick-start-access-code-snippet.feature b/frontend/packages/dev-console/integration-tests/features/guided-tour/quick-starts/quick-start-access-code-snippet.feature deleted file mode 100644 index 57eaffb61d6..00000000000 --- a/frontend/packages/dev-console/integration-tests/features/guided-tour/quick-starts/quick-start-access-code-snippet.feature +++ /dev/null @@ -1,73 +0,0 @@ -@guided-tour @dev-console -Feature: Access a code snippet from a quick start - As a user, I want to be able to visualize seeing a CLI snippet in Quick Starts differently, able to copy it and if Web Terminal is installed, I should have an option to execute the command directly without having to copy/paste - - Background: - Given user has installed Web Terminal Operator - And user is at developer perspective - And user has created or selected namespace "guided-tour" - And user has applied "copy-execute-demo.yaml" - And user is at Add page - - @regression - Scenario: Copy to clipboard tooltip with code snippet: QS-02-TC01 - Given user is at Quick Starts catalog page - When user clicks on the "Create ruby app" Quick Starts card - And user clicks on Step 1 - And user hovers on the copy icon in the code snippet - Then user can see "Copy to clipboard" tooltip appears after hover - - @regression - Scenario: Copied to clipboard option with code snippet: QS-02-TC02 - Given user is at Quick Starts catalog page - When user clicks on the "Create ruby app" Quick Starts card - And user clicks on the Start button - And user sees that "Create ruby app" step has started - And user clicks on the copy icon in the code snippet - Then user can see "Successfully copied to clipboard!" tooltip appears after click - - @regression @manual - Scenario: Copy to clipboard option once code snippet has been copied: QS-02-TC03 - Given user is at Quick Starts catalog page - When user clicks on the "Create ruby app" Quick Starts card - And user clicks on the Start button - And user sees that "Create ruby app" step has started - And user has copied the code snippet - And user removes the mouse focus from the code snippet - And user hovers on the copy icon in the code snippet - Then user can see "Copy to clipboard" tooltip appears - - @regression - Scenario: Run in Web Terminal tooltip with code snippet: QS-02-TC04 - Given user is at Quick Starts catalog page - When user clicks on the "Create ruby app" Quick Starts card - And user clicks on the Start button - And user sees that "Create ruby app" step has started - And user hovers on the play icon in the code snippet - Then user can see "Run in Web Terminal" tooltip appears for executing the code in terminal - - @regression @manual - Scenario: Running in Web Terminal tooltip with code snippet: QS-02-TC05 - Given user is at Quick Starts catalog page - When user clicks on "Create ruby app" Quick Starts card - And user clicks on Step 1 - And user clicks on the play icon in the code snippet - Then user can see "Running in Web Terminal" tooltip appears - And user can see Web Terminal opens - And user can see the code snippet running in the Web Terminal - - - @regression @manual - Scenario: Running in Web Terminal action has run once: QS-02-TC06 - Given user has the "Create ruby app" Quick Starts side panel open - And user has ran code snippet in web terminal - Then user can see checkmark icon in place of play icon - - - @regression @manual - Scenario: Run in Web Terminal option after running in Web Terminal action has been executed: QS-02-TC07 - Given user has the "Create ruby app" Quick Starts side panel open - And user has ran code snippet in web terminal - When user clicks on next step in the Quick Start - Then user can see play icon - And user can see "Run in Web Terminal" tooltip while hovering diff --git a/frontend/packages/dev-console/integration-tests/features/guided-tour/quick-starts/quick-start-devperspective.feature b/frontend/packages/dev-console/integration-tests/features/guided-tour/quick-starts/quick-start-devperspective.feature deleted file mode 100644 index 4ff3ec47ac6..00000000000 --- a/frontend/packages/dev-console/integration-tests/features/guided-tour/quick-starts/quick-start-devperspective.feature +++ /dev/null @@ -1,92 +0,0 @@ -@guided-tour @dev-console @broken-test -Feature: Build with guided documentation card in developer console - As a user, I want to view Build with guided documentation card in Add page - - Background: - Given user is at developer perspective - And user is at Add page - And user has created or selected namespace "aut-dev-quickstarts" - - - @smoke - Scenario: Build with guided documentation card on Add page: QS-03-TC01 - Then user can see Build with guided documentation card - And user can see two Quick Starts link present on it - And user can see the "View all quick starts" on the card - - - @regression - Scenario: Quick Starts page when no Quick Start has started: QS-03-TC02 - When user selects QuickStarts from the help menu icon on the masthead - Then user can see "Get started with a sample application", "Install Red Hat Developer Hub (RHDH) with a Helm Chart" and "Add health checks to your sample application" Quick Starts - And user can see time taken to complete the tour on the card - - - @regression - Scenario: Quick Starts page when Quick Start has completed: QS-03-TC03 - Given user is at Quick Starts catalog page - And user has completed "Get started with a sample application" Quick Start - Then user can see time taken to complete the "Get started with a sample application" tour on the card - And user can see Complete label on "Get started with a sample application" card - - - @regression - Scenario: Quick Starts page when Quick Start is not completed: QS-03-TC04 - Given user is at Quick Starts catalog page - And user has not completed "Install the OpenShift Pipelines Operator" Quick Start - Then user can see time taken to complete the "Install the OpenShift Pipelines Operator" tour on the card - And user can see In Progress label on "Install the OpenShift Pipelines Operator" card - - - @regression - Scenario: Build with guided documentation card links with status as in progress: QS-03-TC05 - When user clicks on first Quick Starts link on the Build with guided documentation card - And user clicks on the Start button - And user clicks on close button - And user clicks on Leave button in the Leave the tour modal box - Then user can see the first Quick Starts link - - - @manual - Scenario: Build with guided documentation card when all Quick Starts has completed: QS-03-TC06 - When user completes all the Quick Starts present - Then user can see Build with guided documentation card is removed from the Add page - - - @regression - Scenario: Restart action on Quick Start card: QS-03-TC07 - Given user is at Quick Starts catalog page - And user has completed "Get started with a sample application" Quick Start - When user clicks on Restart on "Get started with a sample application" quick start sidebar - Then user can see Start button - And user can see "5" Steps visible for the Quick Start - - - @manual - Scenario: Resizing Quick Start drawer: QS-03-TC08 - Given user is at Quick Starts catalog page - When user clicks "Get started with a sample application" Quick Start - And user drags the Quick Start drawer left and right from the left side of the panel - Then user is able to resize the Quick Start drawer - - - @manual - Scenario: Disabling Quick Start: QS-03-TC09 - Given user is logged in as an admin - When user clicks on Search in navigation menu - And user searches console in Resources dropdown - And user selects Console with apiVersion operator.openshift.io/v1 option from Resources dropdown - And user clicks on "cluster" Name in Consoles - And user switches to YAML tab - And user adds spec.customization.quickStarts.disabled section - And user adds "explore-pipelines" , "serverless-application", "add-healthchecks", "sample-application" under the disabled - And user clicks on Save button - And user selects Quick Starts from help menu - Then user will not be able to see "Exploring Serverless applications", "Get started with a sample application", "Install the OpenShift Pipelines Operator" and "Add health checks to your sample application" quick starts in the quick start catalog - - - @regression - Scenario: Unique url to a Quick Start: QS-03-TC10 - Given user is at Quick Starts catalog page - When user clicks "Install the OpenShift Serverless Operator" card - Then user can see url has "quickstart?quickstart=install-serverless" in the address bar diff --git a/frontend/packages/dev-console/integration-tests/features/guided-tour/quick-starts/quick-starts-cluster-overview.feature b/frontend/packages/dev-console/integration-tests/features/guided-tour/quick-starts/quick-starts-cluster-overview.feature deleted file mode 100644 index 3ef29c3561b..00000000000 --- a/frontend/packages/dev-console/integration-tests/features/guided-tour/quick-starts/quick-starts-cluster-overview.feature +++ /dev/null @@ -1,41 +0,0 @@ -@guided-tour @dev-console -Feature: Build with guided documentation card on cluster overview - As a user, I should be able to access and discover Quick Starts from the Cluster Overview in the Administrator view - - Background: - Given user is at administrator perspective - - - @regression - Scenario: Build with guided documentation card on Cluster Overview: QS-04-TC01 - Given user is at developer perspective - When user switches to administrator perspective - And user goes to Cluster Overview page - Then user can see Build with guided documentation card - And user can see two Quick Starts link present on it - And user can see the "View all quick starts" on the card - - - @regression - Scenario: Quick Starts links with status as in progress: QS-04-TC02 - Given user is at Cluster Overview page - When user clicks on first Quick Starts link on the Build with guided documentation card - And user clicks on the Start button - And user clicks on close button - And user clicks on Leave button in Leave quick start modal box - Then user can see the first Quick Starts link - - - @regression - Scenario: Build with guided documentation card when one Quick Start has completed: QS-04-TC03 - Given user is at Cluster Overview page - When user completes first Quick Starts from the card - Then user can see completed Quick Starts link is replaced with another quick start link in the card - - - @regression @manual - Scenario: Build with guided documentation card when all Quick Start has completed: QS-04-TC04 - Given user is at Cluster Overview page - When user completes all the Quick Starts present - Then user can see Build with guided documentation card is removed from the Cluster Overview page - diff --git a/frontend/packages/dev-console/integration-tests/features/guided-tour/quick-starts/quickstart-sidepanel-hints.feature b/frontend/packages/dev-console/integration-tests/features/guided-tour/quick-starts/quickstart-sidepanel-hints.feature deleted file mode 100644 index 588a05cc2e9..00000000000 --- a/frontend/packages/dev-console/integration-tests/features/guided-tour/quick-starts/quickstart-sidepanel-hints.feature +++ /dev/null @@ -1,70 +0,0 @@ -@guided-tour @dev-console -Feature: Enable hints interaction in Quick Starts sidepanel - As a user, I should be able to click on a hint link in the Quick Starts content and see the hint being highlighted in the UI. - - - Background: - Given user is at developer perspective - And sample-application CR Quick Start is available - And explore-serverless CR Quick Start is available - And explore-pipeline CR Quick Start is available - And add-healthchecks CR Quick Start is available - - - @regression @manual - Scenario: Quick Starts hints: QS-05-TC01 - Given user is at Quick Starts catalog page - When user clicks on sample-application Quick Starts card - And user clicks on Start button - And user clicks on the perspective switcher link in step 1 - Then user can see perspective switcher with Developer as value has been highlighted - - - @regression @manual - Scenario: Quick Starts hint is out of frame: QS-05-TC02 - Given user is at Quick Starts catalog page - When user clicks on Setting up Serverless Quick Starts card - And user clicks on Start button - And user switches to Administrator perspective - And user expands workloads tab in navigation menu - And And user scrolls down till the perspective switcher is no longer visible in the viewport - And user click on Administrator link in step 1 - Then user can see window scrolls up to highlight perspective switcher with value Administrator - - - @regression @manual - Scenario: Hint when vertical navigation is collapsed: QS-05-TC03 - Given user is at Quick Starts catalog page - When user clicks on sample-application Quick Starts card - And user clicks on Start button - And user clicks on toggle button to disable vertical navigation menu - And user clicks on the perspective switcher link in step 1 - Then user can not see anything happenning - - @regression @manual - Scenario: user is in the wrong perspective: QS-05-TC04 - Given user is at Administrator perspective - And user is on step one of sample-application Quick Starts - When user clicks on Add in the step 1 - Then user can not see anything happenning - - - @regression @manual - Scenario: Highlight disappears when clicked anywhere in the UI: QS-05-TC05 - Given user is at Quick Starts catalog page - When user clicks on sample-application Quick Starts card - And user clicks on Start button - And user clicks on the perspective switcher link in step 1 - And user clicks on Topology - Then user can see highlight disappeared from perspective switcher - - - @regression @manual - Scenario: Highlight changes when clicked on other hint link: QS-05-TC06 - Given user is at Quick Starts catalog page - When user clicks on sample-application Quick Starts card - And user clicks on Start button - And user clicks on the perspective switcher link in step 1 - And user clicks on Add link - Then user can see highlight from perspective switcher disappeared - And highlight on Add appears diff --git a/frontend/packages/dev-console/integration-tests/features/healthChecks/add-health-checks-topology-sidebar.feature b/frontend/packages/dev-console/integration-tests/features/healthChecks/add-health-checks-topology-sidebar.feature deleted file mode 100644 index 6b77e342bb8..00000000000 --- a/frontend/packages/dev-console/integration-tests/features/healthChecks/add-health-checks-topology-sidebar.feature +++ /dev/null @@ -1,103 +0,0 @@ -@health-checks @dev-console -Feature: Perform Health Checks related Actions - As a user, I should be able to perform Health Checks on workloads - - Background: - Given user is at developer perspective - And user has created or selected namespace "aut-monitoring-sidebar" - And user is at the Topology page - - - @smoke - Scenario: Add Health Checks page: HC-02-TC01 - Given workload "health-checks-d" with resource type "Deployment" is present in topology page - When user clicks on the workload "health-checks-d" to open the sidebar - And user selects "Add Health Checks" from topology sidebar Actions dropdown - Then user will be redirected Add Health Checks page - - - @smoke - Scenario Outline: Add Health Checks to Deployments from Sidebar: HC-02-TC02 - Given workload "" with resource type "Deployment" is present in topology page - When user searches and clicks on the workload "" to open the sidebar - And user selects "Add Health Checks" from topology sidebar Actions dropdown - And user clicks on Add Readiness Probe - And user selects type as "" - And user clicks on tick button - And user clicks on Add Liveness Probe - And user selects type as "" - And user clicks on tick button - And user clicks on Add Startup Probe - And user selects type as "" - And user clicks on tick button - And user clicks on Add button - Then user will be redirected to Topology page - And user will see all 3 Probes added on the Add Health Checks page for "Deployment" "" - And user can see workload "" in topology page - - Examples: - | workload_name | readinesss_type | liveness_type | startup_type | - | http-d | HTTP GET | HTTP GET | HTTP GET | - | tcp-d | TCP socket | TCP socket | TCP socket | - | command-d | Container command | Container command | Container command | - - - @smoke - Scenario Outline: Add Health Checks to Deployment Configs from Actions dropdown Sidebar: HC-02-TC03 - Given workload "" with resource type "Deployment Config" is present in topology page - When user searches and clicks on the workload "" to open the sidebar - And user selects "Add Health Checks" from topology sidebar Actions dropdown - And user clicks on Add Readiness Probe - And user selects type as "" - And user clicks on tick button - And user clicks on Add Liveness Probe - And user selects type as "" - And user clicks on tick button - And user clicks on Add Startup Probe - And user selects type as "" - And user clicks on tick button - And user clicks on Add button - Then user will be redirected to Topology page - And user will see all 3 Probes added on the Add Health Checks page for "DeploymentConfig" "" - And user can see workload "" in topology page - - Examples: - | workload_name | readinesss_type | liveness_type | startup_type | - | http-dc | HTTP GET | HTTP GET | HTTP GET | - | tcp-dc | TCP socket | TCP socket | TCP socket | - | command-dc | Container command | Container command | Container command | - - - - @regression - Scenario: Add Health Check to Deployments from Context Menu: HC-02-TC04 - Given workload "health-checks-d" with resource type "Deployment" is present in topology page - When user right clicks on the workload "health-checks-d" to open the Context Menu - And user selects "Add Health Checks" from Context Menu - And user clicks on Add Readiness Probe - And user selects type as "HTTP GET" - And user clicks on tick button - And user clicks on Add button - Then user will be redirected to Topology page - And user will see "Readiness probe" added on the Add Health Checks page for "Deployment" "health-checks-d" - And user can see workload "health-checks-d" in topology page - - - @regression - Scenario: Edit Health Checks option from Actions dropdown on Sidebar for Deployment Configs to delete a Health Check: HC-02-TC05 - Given workload "health-checks-d" with resource type "Deployment Config" is present in topology page - When user searches and clicks on the workload "health-checks-d" to open the sidebar - And user selects "Edit Health Checks" from topology sidebar Actions dropdown - And user removes Readiness Probe - And user clicks on Save button - Then user will be redirected to Topology page - - - @regression - Scenario: Edit Health Checks option for Helm Chart through Context Menu: HC-02-TC06 - Given user is at Add page - And user is on the topology sidebar of the helm release "nodejs-ex" - When user right clicks on the workload "nodejs-ex" to open the Context Menu - And user selects "Edit Health Checks" from Context Menu - Then user sees Readiness Probe already added - And user sees Liveness Probe already added diff --git a/frontend/packages/dev-console/integration-tests/features/perspectives/configure-pinned-resources.feature b/frontend/packages/dev-console/integration-tests/features/perspectives/configure-pinned-resources.feature deleted file mode 100644 index 1e21c39a916..00000000000 --- a/frontend/packages/dev-console/integration-tests/features/perspectives/configure-pinned-resources.feature +++ /dev/null @@ -1,35 +0,0 @@ -@perspective @dev-console -Feature: Configure pinned resources - As a administrator, I want to configure the default pre-pinned resources for new users and users who have not customized their navigation items. - - - Background: - Given user is at developer perspective - - @regression @smoke @ODC-5012 - Scenario: User has not configured the pre-pinned resources: CPR-01-TC01 - Then user will see "Secrets" and "ConfigMaps" pinned on the Developer Perspective navigation - - @regression @manual @ODC-5012 - Scenario: Configuring pre-pinned resources: CPR-01-TC02 - Given user is at cluster YAML of "operator.openshift.io/v1" console - When user adds the "Add user perspectives" code snippet under spec.customization.perspectives - And user removes the snippet for "id: admin" - And user adds "pinnedResources" property for "id: dev" - And user adds the "Add pinned resources" code snippet under spec.customization.perspectives - And user clicks on Save button and refreshes the browser - Then user will see "Deployments", "Secrets", "ConfigMaps", and "Pods" pinned on the Developer Perspective navigation - - @regression @manual @ODC-5012 - Scenario: User customizing the pinned resources on the Developer perspective navigation: CPR-01-TC03 - Given user is at Developer perspective - When user clicks on Search and selects "DeploymentConfigs" from the resources dropdown - And user clicks on "Add to navigation" - Then user will see "DeploymentConfigs", "Deployments", "Secrets", "ConfigMaps", and "Pods" on the Developer Perspective navigation - - @regression @manual @ODC-5012 - Scenario: User removing the pinnedResources customization from the console config: CPR-01-TC04 - Given user is at cluster YAML of "operator.openshift.io/v1" console - When user removes the pinnedResources customization for "id: dev" - And user clicks on Save button and refreshes the browser - Then user will see "DeploymentConfigs", "Deployments", "Secrets", "ConfigMaps", and "Pods" on the Developer Perspective navigation diff --git a/frontend/packages/dev-console/integration-tests/features/project/project-access.feature b/frontend/packages/dev-console/integration-tests/features/project/project-access.feature deleted file mode 100644 index 749aa315116..00000000000 --- a/frontend/packages/dev-console/integration-tests/features/project/project-access.feature +++ /dev/null @@ -1,39 +0,0 @@ -@project-access @dev-console -Feature: Customize Project Access roles - As a administrator, I want to customize the roles which are being shown in the Project Access tab in the Developer console, this includes removing default roles as well as adding custom roles. - - - Background: - Given user is at developer perspective - And user has created or selected namespace "aut-project-access" - - - @regression @manual - Scenario: Adding Custom role in project membership: PA-01-TC01 - Given user has cluster role basic-user created - When user clicks on Search tab in navigation menu - And user searches console in Resources dropdown - And user selects Console with apiVersion operator.openshift.io/v1 option from Resources dropdown - And user clicks on "cluster" Name in Consoles - And user switches to YAML tab - And user adds spec.customization.projectAccess section - And user inserts Add project access roles Snippet from the Sidebar under spec.customization.projectAccess section - And user adds "- basic-user" under the other three role added from Snippet - And user clicks on Save button - And user clicks on Project tab in navigation menu - And user clicks Project access tab - And user clicks on Role dropdown for kube:admin Name - Then user will see "basic-user" option in the dropdown - - - - @regression @manual - Scenario: Removing Custom role in project membership: PA-01-TC02 - Given user has added custom role "basic-user" in console YAML - And user is at cluster YAML of "operator.openshift.io/v1" console - When user removes "- view" from spec.customization.projectAccess.availableClusterRoles - And user clicks on Save button - And user clicks on Project tab in navigation menu - And user clicks Project access tab - And user clicks on Role dropdown for kube:admin Name - Then user will not see "view" option in the dropdown diff --git a/frontend/packages/dev-console/integration-tests/features/service-mesh/service-mesh-console-links-admin.feature b/frontend/packages/dev-console/integration-tests/features/service-mesh/service-mesh-console-links-admin.feature deleted file mode 100644 index c22db032a55..00000000000 --- a/frontend/packages/dev-console/integration-tests/features/service-mesh/service-mesh-console-links-admin.feature +++ /dev/null @@ -1,55 +0,0 @@ -@service-mesh @dev-console @broken-test -Feature: Admin user created Service Mesh Control Plane to get the Kiali dashboard link on the Topology filterbar - As an Admin user I want to launch Kiali from the Topology graph - - - Background: - Given user has logged in as kubeadmin - # And user has installed Red Hat OpenShift Jaeger Operator - # And user has installed Kiali Operator provided by Red Hat - # And user has installed Red Hat OpenShift Service Mesh Operator - # And user has created new project "istio-system" - # And user has created Istio Service Mesh Control Plane instance in "istio-system" namespace - And user is at Administrator perspective - And user has verified that Kiali has been deployed in Service Mesh Control Plane in "istio-system" namespace - And user has created a user with self-provisioner and view roles - - - @smoke - Scenario: Open on Kiali link Project Details Overview Page: SM-01-TC01 - Given user is on the "istio-system" Projects page - When user selects the "istio-system" project that recently created Open Shift Service Mesh Control Plane - Then user will see the Service Mesh Enabled inside Details card - And user will see Open on Kiali link inside Launcher card - And user clicks on Kiali Link inside Launcher Card - - - @regression - Scenario: Open on Kiali link Project Details Page: SM-01-TC02 - Given user is on the "istio-system" Projects page - When user selects "istio-system" project that recently created Open Shift Service Mesh Control Plane - And user clicks on the Details page - Then user will see the Service Mesh Enabled - And user will see the Launcher section - And user will see Kiali link inside Launcher section - And user clicks on Kiali Link inside Launcher section - - - @regression - Scenario: Kiali link in the Topology filterbar: SM-01-TC03 - Given user is at Developer perspective - And user is on the "istio-system" Projects page - When user clicks on the Topology page - And user selects project that recently created Open Shift Service Mesh Control Plane - Then user will see Kiali link in the Topology filterbar - And user clicks on Kiali Link in the Topology filterbar - - - @regression - Scenario: Kiali link on the Kiali node in the Topology: SM-01-TC04 - Given user is at Developer perspective - And user is on the "istio-system" Projects page - When user clicks on the Topology page - And user selects project that recently created Open Shift Service Mesh Control Plane - Then user will see Kiali node in the Topology - And user clicks on Kiali Open URL Link in the Kiali node diff --git a/frontend/packages/dev-console/integration-tests/features/service-mesh/service-mesh-console-links-nonadmin.feature b/frontend/packages/dev-console/integration-tests/features/service-mesh/service-mesh-console-links-nonadmin.feature deleted file mode 100644 index 74ffee8849d..00000000000 --- a/frontend/packages/dev-console/integration-tests/features/service-mesh/service-mesh-console-links-nonadmin.feature +++ /dev/null @@ -1,55 +0,0 @@ -@service-mesh @dev-console @broken-test -Feature: non-Admin user created Service Mesh Control Plane to get the Kiali dashboard link on the Topology filterbar - As an non-Admin user I want to launch Kiali from the Topology graph - - - Background: - Given user has logged in as consoledeveloper - And user is at Developer perspective - # And user has installed Red Hat OpenShift Jaeger Operator - # And user has installed Kiali Operator provided by Red Hat - # And user has installed Red Hat OpenShift Service Mesh Operator - # And user has created new project "istio-system" - # And user has created Istio Service Mesh Control Plane instance in "istio-system" namespace - And user has verified that Kiali has been deployed in Service Mesh Control Plane in "istio-system" namespace - And user has created a user with self-provisioner and view roles - - - @regression - Scenario: Open on Kiali link Project Details Overview Page: SM-02-TC01 - Given user is on the "istio-system" Projects page - When user selects the "istio-system" project that recently created Open Shift Service Mesh Control Plane - Then user will see the Service Mesh Enabled inside Details card - And user will see Open on Kiali link inside Launcher card - And user clicks on Kiali Link inside Launcher Card - - - @regression - Scenario: Open on Kiali link Project Details Page: SM-02-TC02 - Given user is on the "istio-system" Projects page - When user selects "istio-system" project that recently created Open Shift Service Mesh Control Plane - And user clicks on the Details page - Then user will see the Service Mesh Enabled - And user will see the Launcher section - And user will see Kiali link inside Launcher section - And user clicks on Kiali Link inside Launcher section - - - @regression - Scenario: Kiali link in the Topology filterbar: SM-02-TC03 - Given user is at Developer perspective - And user is on the "istio-system" Projects page - When user clicks on the Topology page - And user selects project that recently created Open Shift Service Mesh Control Plane - Then user will see Kiali link in the Topology filterbar - And user clicks on Kiali Link in the Topology filterbar - - - @regression - Scenario: Kiali link on the Kiali node in the Topology: SM-02-TC04 - Given user is at Developer perspective - And user is on the "istio-system" Projects page - When user clicks on the Topology page - And user selects project that recently created Open Shift Service Mesh Control Plane - Then user will see Kiali node in the Topology - And user clicks on Kiali Open URL Link in the Kiali node diff --git a/frontend/packages/dev-console/integration-tests/features/user-preferences/user-preferences-dev-perspective.feature b/frontend/packages/dev-console/integration-tests/features/user-preferences/user-preferences-dev-perspective.feature deleted file mode 100644 index 26520221d90..00000000000 --- a/frontend/packages/dev-console/integration-tests/features/user-preferences/user-preferences-dev-perspective.feature +++ /dev/null @@ -1,133 +0,0 @@ -@user-preference @dev-console -Feature: Manage user preferences - As a user, I need the ability to set/edit my preferences for the OCP Console. - - - Background: - Given user is at developer perspective - And user is at Add page - - - @smoke - Scenario: Visiting User Preference page: UP-01-TC01 - Given user is at admin perspective - When user clicks on user dropdown on masthead and selects "User Preferences" - Then user sees "General" tab selected on User Preferences page - And user sees "Language" tab on User Preferences page - - @regression - Scenario: Setting Developer preference for perspective: UP-01-TC02 - Given user is at admin perspective - When user clicks on user dropdown on masthead and selects "User Preferences" - And user changes user preference "Perspective" dropdown to "Developer" - And user reloads the console without perspective - Then user sees the "Developer" perspective - - - @regression @broken-test - Scenario: Setting a preference for a project: UP-01-TC03 - Given user has created project "test-preference111" - When user selects "All Projects" from the project menu - And user clicks on user dropdown on masthead and selects "User Preferences" - And user clicks on "Project" dropdown on User Preferences page - And user searches and selects project "test-preference11" from the dropdown - And user reloads the console - Then user can see project "test-preference111" is selected - - - @regression @broken-test - Scenario: Creating project with project preference: UP-01-TC04 - When user clicks on user dropdown on masthead and selects "User Preferences" - And user clicks on "Project" dropdown on User Preferences page - And user types project "test-preference222" in search bar - And user clicks on Create project option from the dropdown - And user clicks on Create with name "test-preference222" in Create Project modal - And user reloads the console - And user can see project "test-preference222" is selected - - - @regression - Scenario: Setting Graph preference for Topology: UP-01-TC05 - Given user has created or selected namespace "aut-user-preferences" - And user has created workload "node1" with resource type "deployment" - When user clicks on user dropdown on masthead and selects "User Preferences" - And user changes user preference "Topology" dropdown to "Graph" - And user reloads the console - And user clicks on Topology in navigation menu - Then user can see topology graph view - - - @regression @broken-test - # marked broken-test due to bug https://bugzilla.redhat.com/show_bug.cgi?id=2014313 - Scenario: Setting List preference for Topology: UP-01-TC06 - Given user has created or selected namespace "aut-user-preferences" - When user clicks on user dropdown on masthead and selects "User Preferences" - And user changes user preference "Topology" dropdown to "List" - And user reloads the console - And user clicks on Topology in navigation menu - Then user can see topology list view - - - @regression @broken-test - Scenario: Setting Form preference for Create/Edit resource method: UP-01-TC07 - Given user has created or selected namespace "aut-user-preferences" - When user clicks on user dropdown on masthead and selects "User Preferences" - And user changes user preference "Create/Edit resource method" dropdown to "Form" - And user clicks on Add in navigation menu - And user clicks on Helm charts - And user selects "Nodejs" helm chart - And user clicks on Install Helm Chart button - Then user can see Form view option selected in Install Helm Chart page - - - @regression - Scenario: Setting YAML preference for Create/Edit resource method: UP-01-TC08 - Given user has created or selected namespace "aut-user-preferences" - When user clicks on user dropdown on masthead and selects "User Preferences" - And user changes user preference "Create/Edit resource method" dropdown to "YAML" - And user clicks on Add in navigation menu - And user clicks on Helm charts - And user selects "Nodejs" helm chart - And user clicks on Install Helm Chart button - Then user can see YAML view option selected in Install Helm Chart page - - - @regression @broken-test - Scenario: Setting a preference for language: UP-01-TC09 - Given user is at admin perspective - When user clicks on user dropdown on masthead and selects "User Preferences" - And user clicks on "Language" tab on User Preferences page - And user clicks on the checkbox to uncheck it - And user changes user preference "Language" dropdown to "日本語" - Then user will see the language change to 日本語 - - - @regression @ODC-6303 @broken-test - Scenario: Setting Routing options preference for import form: UP-01-TC10 - Given user has created or selected namespace "aut-user-preferences" - When user clicks on user dropdown on masthead and selects "User Preferences" - And user deselects the checkbox of user preference "Secure Route" - And user clicks on Add in navigation menu - And user clicks on "Import from Git" card - And user enters Git Repo URL as "https://github.com/sclorg/nodejs-ex.git" - And user enters name as "node-route" in General section - And user clicks "Show advanced Routing options" link in Advanced Options section - Then user is able to see "Secure Route" checkbox is deselected - - - @regression @manual @ODC-5990 - Scenario: Setting theme preference for Console: UP-01-TC11 - When user clicks on user dropdown on masthead and selects "User Preferences" - And user changes user preference "Theme" dropdown to "Dark" - Then user can see console in dark theme - - - @regression - Scenario: Setting Resource type preference for Console: UP-01-TC12 - Given user has created or selected namespace "aut-user-preferences" - When user clicks on user dropdown on masthead and selects "User Preferences" - And user clicks on "Applications" tab on User Preferences page - And user changes user preference "Resource Type" dropdown to "DeploymentConfig" - And user clicks on Add in navigation menu - And user clicks on Container images - Then user is able to see resources DeploymentConfig is selected diff --git a/frontend/packages/dev-console/integration-tests/features/virtulization/actions-on-vm.feature b/frontend/packages/dev-console/integration-tests/features/virtulization/actions-on-vm.feature deleted file mode 100644 index 5310ba66f5b..00000000000 --- a/frontend/packages/dev-console/integration-tests/features/virtulization/actions-on-vm.feature +++ /dev/null @@ -1,91 +0,0 @@ -@cnv @dev-console -Feature: Perform Actions on created VM - As a user, I should be able to perform Actions on imported VM - - - Background: - Given user is at developer perspective - And user has selected namespace "aut-vm-actions" - And user has created VM "fedora-test-vm" - And user is at the Topolgy page - - - @regression @to-do - Scenario: Sidebar for VM: VM-01-TC01 - When user clicks on the VM "fedora-test-vm" to open the sidebar - Then user can see the Details, Resources tab - And user can see the Actions dropdown - - - @regression @to-do - Scenario: Edit Application Groupings action on VM: VM-01-TC02 - When user right clicks on the VM "fedora-test-vm" to open the context menu - And user clicks on the Edit Application Groupings - And user enters application name "fedora-test-application" - And user clicks on Save button - Then user will see Application Groupings for VM "fedora-test-vm" - - - @regression @to-do - Scenario: Edit Application Groupings to no application group on VM: VM-01-TC03 - When user right clicks on the VM "fedora-test-vm" to open the context menu - And user clicks on the Edit Application Groupings - And user clicks on the Application dropdown on the modal - And user selects the no application group item - And user clicks on Save button - Then user will see that VM does not belong to an application group - - - @regression @to-do - Scenario: Start VM action on VM: VM-01-TC04 - When user right clicks on the VM "fedora-test-vm" to open the context menu - And user clicks on the Start VM - Then user will see Stop VM, Restart VM, Migrate VM items in context menu - - - @regression @to-do - Scenario: Clone VM action on VM: VM-01-TC05 - When user right clicks on the VM "fedora-test-vm" to open the context menu - And user clicks on the Clone VM - And user enters name of VM on modal - And user selects the namespace - And user clicks on the Clone Virtual Machine button - Then user will be redirected to that namespace - And user will see that the VM is cloned in the namespace - - - @regression @to-do - Scenario: Edit CD-ROMs action on VM: VM-01-TC06 - When user right clicks on the VM "fedora-test-vm" to open the context menu - And user clicks on the Edit CD-ROMs - Then user will see a modal to edit the CD-ROMs - - - @regression @to-do - Scenario: Edit Labels action on VM: VM-01-TC07 - When user right clicks on the VM "fedora-test-vm" to open the context menu - And user clicks on the Edit Labels - And user adds the label - And user clicks on the Save button on the modal to save labels and close the modal - And user right clicks on the VM to open the context menu - And user clicks on the Edit Labels - Then user will see the newly added label - - - @regression @to-do - Scenario: Edit Annotations action on VM: VM-01-TC08 - When user right clicks on the VM "fedora-test-vm" to open the context menu - And user clicks on the Edit Annotations - And user adds the annotations - And user clicks on the Save button on the modal to save annotation and close the modal - And user right clicks on the VM to open the context menu - And user clicks on the Edit Annotations - Then user will see the newly added annotation - - - @regression @to-do - Scenario: Delete VM action on VM: VM-01-TC09 - When user right clicks on the VM "fedora-test-vm" to open the context menu - And user clicks on the Delete VM - And user clicks on the Delete button on the modal - Then VM will get deleted diff --git a/frontend/packages/dev-console/integration-tests/features/virtulization/create-vm-from-template.feature b/frontend/packages/dev-console/integration-tests/features/virtulization/create-vm-from-template.feature deleted file mode 100644 index 03aa4cf0eab..00000000000 --- a/frontend/packages/dev-console/integration-tests/features/virtulization/create-vm-from-template.feature +++ /dev/null @@ -1,23 +0,0 @@ -@cnv @dev-console -Feature: Create Virtual Machines using Template from Developer perspective - As a user, I should be able create Virtual Machines using Template from Developer perspective - - - Background: - Given user has installed OpenShift Virtualization Operator - And user has created the OpenShift Virtualization Deployment - And user has created the HostPathProvisioner Deployment - And user has selected namespace "aut-virtualization" - And user is at administrator perspective - - - @smoke @to-do - Scenario: Create Virtual Machine: VM-02-TC01 - Given user has created Virtual Machine Template - And user is at Virtual Machines page - When user clicks on "vmware-test-template" template card - And user clicks on Create from template button - And user enters name "fedora-test-vm" as virtual machine name - And user clicks on Create Virtual Machine button - Then user will be redirected to Topology page - And And user will see virtual machine created diff --git a/frontend/packages/dev-console/integration-tests/features/virtulization/virtual-machines-page.feature b/frontend/packages/dev-console/integration-tests/features/virtulization/virtual-machines-page.feature deleted file mode 100644 index e0c92e83a94..00000000000 --- a/frontend/packages/dev-console/integration-tests/features/virtulization/virtual-machines-page.feature +++ /dev/null @@ -1,40 +0,0 @@ -@cnv @dev-console -Feature: Virtual Machines page - As a user, I should be able visit Vitual Machines page - - - Background: - Given user has installed OpenShift Virtualization Operator - And user has created the OpenShift Virtualization Deployment - And user has created the HostPathProvisioner Deployment - And user is at developer perspective - And user has selected namespace "aut-virtualization" - - - @regression @to-do - Scenario: Virtual Machines Card on +Add page: VM-03-TC01 - Given user is at Add page - Then user will see Virtual Machines Card on Add page - - - @smoke @to-do - Scenario: Virtual Machines on Software Catalog page: VM-03-TC02 - Given user is at Software Catalog page - Then user will see Virtual Machines type - - - @smoke @to-do - Scenario: Virtual Machines page - Empty View: VM-03-TC03 - Given user is at Software Catalog page - When user clicks on Virtual Machines type - Then user will see "No Catalog items found" - - - @smoke @to-do - Scenario: Virtual Machines page - with Template view: VM-03-TC04 - Given user is at Add page - And user has created Virtual Machine Template - When user clicks on Virtual Machines Card - Then user will see Virtual Machine Template - And And user will see Filter by Keyword field - And user will see A-Z, Z-A sort by dropdown diff --git a/frontend/packages/dev-console/integration-tests/features/virtulization/virtual-machines-template.feature b/frontend/packages/dev-console/integration-tests/features/virtulization/virtual-machines-template.feature deleted file mode 100644 index 860ee26bb01..00000000000 --- a/frontend/packages/dev-console/integration-tests/features/virtulization/virtual-machines-template.feature +++ /dev/null @@ -1,29 +0,0 @@ -@cnv @dev-console -Feature: Create Virtual Machine templates - As a user, I should be able create virutal machine template to create virtual machine - - - Background: - Given user has installed OpenShift Virtualization Operator - And user has created the OpenShift Virtualization Deployment - And user has created the HostPathProvisioner Deployment - And user is at administrator perspective - And user has selected namespace "aut-virtualization" - - - @smoke @to-do - Scenario: Create Virutal Machine template: VM-04-TC01 - Given user is at Virtualization tab under Workloads nav-item - When user clicks on Templates tab - And user clicks on Create drop down - And user clicks on With Wizard under Template section - And user enters name "vmware-test-template" - And user selects "Fedora 31 or higher" from Operating System dropdown - And user selects "Import via Registry (creates PVC)" from Boot Source dropdown - And user enters "kubevirt/fedora-cloud-container-disk-demo" in Container Image field - And user selects "Small - 1 vCPU, 2 GiB Memory" from Flavor dropdown - And user selects "Desktop" from Workload Type dropdown - And user clicks on Review and Confirm button - And user clicks on Create Virtual Machine template - Then user will see "Successfully created virtual machine template" message - And user will see See virtual machine template details button diff --git a/frontend/packages/dev-console/integration-tests/features/vulnerability/project-vulnerability.feature b/frontend/packages/dev-console/integration-tests/features/vulnerability/project-vulnerability.feature deleted file mode 100644 index 38ea0f56814..00000000000 --- a/frontend/packages/dev-console/integration-tests/features/vulnerability/project-vulnerability.feature +++ /dev/null @@ -1,61 +0,0 @@ -@vulnerability @dev-console @ODC-5131 -Feature: Image Vulnerability in Project - As a user, I would like to see Image Vulnerability in Project - - - Background: - Given user has installed Quay Container Security Operator - And user has created or selected namespace "aut-image-vulnerability" - And user is at developer perspective - - - @regression - Scenario Outline: Vulnerability tab in developer console: PV-01-TC01 - Given user created deployment resource using YAML editor from "" - And user is at project tab - When user clicks on the vulnerability tab - Then user can see Image Manifest vulnerabilities - And user can see filter with "Name" option selected - And user can see 'Image name', 'Highest severity', 'Affected Pods', 'Fixable', 'Total', and 'Manifest' - - - Examples: - | deployment_yaml | - | testData/vulnerability/create-quarkus-deployment.yaml | - - - @regression @manual - Scenario: Visit quay page from status in project overview: PV-01-TC02 - Given user is at project tab - When user clicks on the Image Vulnerabilities in Status section - And user clicks on the fixable link in Image Vulnerability breakdown pop over - Then user can see the image open in quay.io - - - @regression - Scenario: Filter in vulnerability tab: PV-01-TC03 - Given user is at project tab - When user clicks on the Image Vulnerabilities in Status section - And user clicks on the View all link on Image Vulnerability breakdown pop overview - And user clicks on dropdown associated with filter - And user clicks on label option - Then user can see filter with "Label" option selected - - - @regression - Scenario: Image manifests vulnerability details page: PV-01-TC04 - Given user is at project tab - When user clicks on the Image Vulnerabilities in Status section - And user clicks on the image name in Image Vulnerability breakdown pop over - And user clicks on "Base image" type of vulnerability - Then user can see image manifest vulnerability Details, YAML and Affected Pods tabs on ImageManifestsVuln Details page - And user can see "Base image" vulnerabilities tab selected - - - @regression - Scenario: Filters of vulnerability section in Image manifests vulnerability details page: PV-01-TC05 - Given user is at Image manifests vulnerability details page of 'redhat-appstudio-qe/quarkus' - When user clicks on Filter dropdown menu in vulnerabilities section - And user clicks on "App dependency" Type filter - Then user can see "App dependency" filter selected - And user can see "Defcon1", "Critical", "High", "Medium", "Low", "Negligible" and "Unknown" in Severity filter diff --git a/frontend/packages/dev-console/integration-tests/package.json b/frontend/packages/dev-console/integration-tests/package.json deleted file mode 100644 index 605d641f98a..00000000000 --- a/frontend/packages/dev-console/integration-tests/package.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "name": "@dev-console/integration-tests", - "version": "0.0.1", - "description": "OpenShift Developer Perspective Cypress tests", - "private": true, - "cypress-cucumber-preprocessor": { - "step_definitions": "support/step-definitions/*/" - }, - "scripts": { - "test-cypress": "../../../node_modules/.bin/cypress open --env openshift=true", - "clean-reports": "rm -rf ../../../gui_test_screenshots", - "cypress-merge": "../../../node_modules/.bin/mochawesome-merge ../../../gui_test_screenshots/cypress_report*.json > ../../../gui_test_screenshots/cypress.json", - "cypress-generate": "../../../node_modules/.bin/marge -o ../../../gui_test_screenshots/ -f cypress-report -t 'OpenShift DevConsole Cypress Test Results' -p 'OpenShift Cypress Test Results' --showPassed false --assetsDir ../../../gui_test_screenshots/cypress/assets ../../../gui_test_screenshots/cypress.json", - "test-cypress-headless": "node --max-old-space-size=4096 ../../../node_modules/.bin/cypress run ${CYPRESS_RECORD_KEY:+--record} --env openshift=true --browser ${BRIDGE_E2E_BROWSER_NAME:-electron} --headless --spec \"features/e2e/enable-dev-perspective-ci.feature,features/e2e/add-flow-ci.feature\"; yarn posttest-cypress-headless", - "test-headless-all": "node --max-old-space-size=4096 ../../../node_modules/.bin/cypress run --env openshift=true --browser ${BRIDGE_E2E_BROWSER_NAME:-electron} --headless", - "test-cypress-nightly": "yarn run test-headless-all && yarn run cypress-merge && yarn run cypress-generate", - "posttest-cypress-headless": "yarn run cypress-merge && yarn run cypress-generate" - } -} diff --git a/frontend/packages/dev-console/integration-tests/reporter-config.json b/frontend/packages/dev-console/integration-tests/reporter-config.json deleted file mode 100644 index a1a5498a0ac..00000000000 --- a/frontend/packages/dev-console/integration-tests/reporter-config.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "reporterEnabled": "mocha-junit-reporter, mochawesome", - "mochaJunitReporterReporterOptions": { - "mochaFile": "../../../gui_test_screenshots/junit_cypress-[hash].xml", - "toConsole": false - }, - "mochawesomeReporterOptions": { - "reportDir": "../../../gui_test_screenshots/", - "reportFilename": "cypress_report_devconsole", - "overwrite": false, - "html": false, - "json": true - } -} diff --git a/frontend/packages/dev-console/integration-tests/support/commands/app.ts b/frontend/packages/dev-console/integration-tests/support/commands/app.ts deleted file mode 100644 index d9ce28dc94c..00000000000 --- a/frontend/packages/dev-console/integration-tests/support/commands/app.ts +++ /dev/null @@ -1,154 +0,0 @@ -// import { checkErrors } from '../../../../integration-tests/support'; - -import { formPO } from '../pageObjects'; -import { app } from '../pages'; - -export {}; // needed in files which don't have an import to trigger ES6 module usage - -declare global { - namespace Cypress { - interface Chainable { - alertTitleShouldContain(title: string): Chainable; - selectByDropDownText(selector: string, dropdownText: string): Chainable; - selectByAutoCompleteDropDownText(selector: string, dropdownText: string): Chainable; - verifyDropdownselected(selector: string): Chainable; - mouseHover(selector: string): Chainable; - selectValueFromAutoCompleteDropDown( - selector: string, - dropdownText: string, - ): Chainable; - selectActionsMenuOption(actionsMenuOption: string): Chainable; - dropdownSwitchTo(dropdownMenuOption: string): Chainable; - isDropdownVisible(): Chainable; - checkErrors(): Chainable; - waitUntilEnabled(selector: string): void; - } - } -} - -Cypress.Commands.add('alertTitleShouldContain', (alertTitle: string) => { - cy.byLegacyTestID('modal-title').should('contain.text', alertTitle); -}); - -Cypress.Commands.add('selectByDropDownText', (selector: string, dropdownText: string) => { - cy.get(selector).click(); - cy.get('li').contains(dropdownText).click({ force: true }); -}); - -Cypress.Commands.add( - 'selectByAutoCompleteDropDownText', - (selector: string, dropdownText: string) => { - cy.get(selector).click(); - cy.byTestID('console-select-search-input').type(dropdownText); - cy.get(`[id*="${dropdownText}-link"]`, { timeout: 60000 }).click({ force: true }); - }, -); - -Cypress.Commands.add('verifyDropdownselected', (selector: string) => { - cy.get(selector).should('be.visible'); - cy.get(selector).click().get('[role="menu"]').should('be.visible'); -}); - -Cypress.Commands.add('mouseHover', (selector: string) => { - cy.get(selector).invoke('show').should('be.visible').trigger('mouseover', { force: true }); -}); - -Cypress.Commands.add( - 'selectValueFromAutoCompleteDropDown', - (selector: string, dropdownText: string) => { - cy.get(selector).click(); - cy.byTestID('console-select-search-input').type(dropdownText); - cy.byTestID('console-select-menu-list').find('li').contains(dropdownText).click(); - - // Under React 18 createRoot, state updates from dropdown selection can be concurrent. - // Wait for the dropdown menu to close, indicating the selection has been processed. - cy.byTestID('console-select-menu-list').should('not.exist'); - - // Verify the selected value appears in the toggle to ensure selection was applied - cy.get(selector).should('contain.text', dropdownText); - }, -); - -Cypress.Commands.add('selectActionsMenuOption', (actionsMenuOption: string) => { - cy.byLegacyTestID('actions-menu-button').should('be.visible').click(); - app.waitForLoad(); - cy.byTestActionID(actionsMenuOption).should('be.visible').click(); -}); - -Cypress.Commands.add('dropdownSwitchTo', (dropdownMenuOption: string) => { - cy.byTestID('console-select-menu-toggle') - .click() - .find('data-test="console-select-item"') - .contains(dropdownMenuOption) - .click(); -}); - -Cypress.Commands.add('isDropdownVisible', () => { - cy.byTestID('console-select-menu-toggle') - .should('be.visible') - .click() - .find('data-test="console-select-item"') - .should('be.visible'); -}); - -Cypress.Commands.add('checkErrors', () => { - cy.get('body').then(($body) => { - if (!$body) { - return; - } - if ($body.find('[data-test-id="reset-button"]').length !== 0) { - cy.get('body').then(($body1) => { - if ($body1.find(formPO.errorAlert).length !== 0) { - cy.get(formPO.errorAlert) - .find('.co-pre-line') - .then(($alert) => { - cy.log( - `Displaying following error: "${$alert.text()}", so closing this form or modal`, - ); - }); - } - }); - cy.byLegacyTestID('reset-button').click({ force: true }); - } else if ($body.find('[data-test-id="modal-cancel-action"]').length !== 0) { - cy.get('body').then(($body2) => { - if ($body2.find(formPO.errorAlert).length !== 0) { - cy.get(formPO.errorAlert) - .find('.co-pre-line') - .then(($alert) => { - cy.log( - `Displaying following error: "${$alert.text()}", so closing this form or modal`, - ); - }); - } - }); - cy.byLegacyTestID('modal-cancel-action').click({ force: true }); - cy.get('body').then(($body1) => { - if ($body1.find('[data-test-id="reset-button"]').length !== 0) { - cy.byLegacyTestID('reset-button').click({ force: true }); - } - }); - } else if ($body.find('button[aria-label="Close"]').length !== 0) { - cy.get('button[aria-label="Close"]').click({ force: true }); - } - }); -}); - -Cypress.Commands.add('waitUntilEnabled', (selector: string, timeout: number = 20000): any => { - const start = new Date().getTime(); - - return cy.get(selector).then(($el) => { - return new Promise((resolve, reject) => { - const checkEnabled = () => { - if ($el.is(':enabled')) { - resolve($el); - } else if (new Date().getTime() - start > timeout) { - reject(new Error(`Timed out waiting for ${selector} to become enabled`)); - } else { - setTimeout(checkEnabled, 100); - } - }; - - checkEnabled(); - }); - }); -}); diff --git a/frontend/packages/dev-console/integration-tests/support/commands/hooks.ts b/frontend/packages/dev-console/integration-tests/support/commands/hooks.ts deleted file mode 100644 index 0f11474c305..00000000000 --- a/frontend/packages/dev-console/integration-tests/support/commands/hooks.ts +++ /dev/null @@ -1,53 +0,0 @@ -import { quickStartSidebarPO } from '../pageObjects/quickStarts-po'; - -before(function () { - // Skip all dev-console tests on techPreview clusters: the Developer perspective is - // disabled by default and the htpasswd IDP doesn't exist, so create-user.sh would - // need to create it (5-10 min auth-operator cycle) before login can succeed. The - // combination causes initAdmin() to time out waiting for the perspective-switcher-toggle. - // cy.exec() returns a Cypress Chainable, not a true Promise — it has no .catch() method. - // Cypress's command queue manages error handling; this disable is required. - // eslint-disable-next-line promise/catch-or-return - cy.exec('oc get featuregate cluster -o jsonpath={.spec.featureSet}', { - failOnNonZeroExit: false, - }).then((result) => { - if (result.stdout.trim() === 'TechPreviewNoUpgrade') { - this.skip(); - } - }); - cy.exec('../../../../contrib/create-user.sh'); - const bridgePasswordIDP: string = Cypress.expose('BRIDGE_HTPASSWD_IDP') || 'test'; - const bridgePasswordUsername: string = Cypress.expose('BRIDGE_HTPASSWD_USERNAME') || 'test'; - cy.env(['BRIDGE_HTPASSWD_PASSWORD']).then(({ BRIDGE_HTPASSWD_PASSWORD }) => { - cy.login(bridgePasswordIDP, bridgePasswordUsername, BRIDGE_HTPASSWD_PASSWORD || 'test'); - }); - cy.document().its('readyState').should('eq', 'complete'); - // checkDeveloperPerspective(); -}); - -after(() => { - const namespaces: string[] = Cypress.expose('NAMESPACES') || []; - cy.exec(`oc delete namespace ${namespaces.join(' ')}`, { failOnNonZeroExit: false }); -}); - -beforeEach(() => { - cy.initAdmin(); -}); - -afterEach(() => { - // Below code helps to close the form, when there is any issue. so that other scenarios will be executed - cy.url().then(($url) => { - if ($url.includes('?quickstart=')) { - cy.get(quickStartSidebarPO.quickStartSidebar).then(() => { - if (Cypress.$(quickStartSidebarPO.restartSideNoteAction).length) { - cy.get(quickStartSidebarPO.quickStartSidebar) - .get(quickStartSidebarPO.restartSideNoteAction) - .click(); - } - cy.get(quickStartSidebarPO.closePanel).click(); - }); - } - }); - - cy.checkErrors(); -}); diff --git a/frontend/packages/dev-console/integration-tests/support/commands/index.ts b/frontend/packages/dev-console/integration-tests/support/commands/index.ts deleted file mode 100644 index d216fc89f0f..00000000000 --- a/frontend/packages/dev-console/integration-tests/support/commands/index.ts +++ /dev/null @@ -1,8 +0,0 @@ -// Include the cypress customized commands related files -import '../../../../integration-tests/support/selectors'; -import '../../../../integration-tests/support/a11y'; -import './hooks'; -import './app'; -import '../../../../integration-tests/support/login'; -import '../../../../integration-tests/support/project'; -import '../../../../integration-tests/support/index'; diff --git a/frontend/packages/dev-console/integration-tests/support/constants/add.ts b/frontend/packages/dev-console/integration-tests/support/constants/add.ts deleted file mode 100644 index e57876a8a38..00000000000 --- a/frontend/packages/dev-console/integration-tests/support/constants/add.ts +++ /dev/null @@ -1,89 +0,0 @@ -/* eslint-disable @typescript-eslint/naming-convention */ - -export enum addOptions { - Broker = 'Broker', - Channel = 'Channel', - ContainerImage = 'Container Image', - CreateServerlessFunction = 'Create Serverless function', - Database = 'Database', - SoftwareCatalog = 'From Catalog', - Events = 'Events', - EventSink = 'Event Sink', - EventSource = 'Event Source', - HelmChart = 'Helm Chart', - HelmChartRepositories = 'Helm Chart Repositories', - ImportFromGit = 'Import From Git', - OperatorBacked = 'Operator Backed', - Pipeline = 'Pipeline', - Samples = 'Samples', - Sharing = 'Sharing', - UploadJARFile = 'Upload JAR file', - YAML = 'YAML', -} - -export enum buildConfigOptions { - webhookBuildTrigger = 'Configure a webhook build trigger', - automaticBuildImage = 'Automatically build a new image when the builder image changes', - launchBuildOnCreatingBuildConfig = 'Launch the first build when the build configuration is created', -} - -export enum resourceTypes { - Deployment = 'Deployment', - DeploymentConfig = 'Deployment Config', - knativeService = 'Knative', -} - -export enum gitAdvancedOptions { - Routing = 'Developer Perspective', - BuildConfig = ' Administrator Perspective', - Deployment = 'Deployment', - Scaling = 'Scaling', - ResourceLimits = 'Resource Limits', - Labels = 'Labels', - HealthChecks = 'Health Checks', - Resources = 'Resources', -} - -export enum catalogCards { - mariaDB = 'MariaDB', - dotnetCoreExample = '.NET Core Example', - cakePhp = 'CakePHP + MySQL', - nodeJs = 'Node.js', - nodeJsPostgreSQL = 'Node.js + PostgreSQL (Ephemeral)', - apacheHTTPServer = 'Apache HTTP Server', - nginxHTTPServer = 'Nginx HTTP server and a reverse proxy', - jenkins = 'Jenkins', - knativeKafka = 'Knative Kafka', - helmNodejs = 'Nodejs', -} - -export enum catalogTypes { - OperatorBacked = 'Operator Backed', - HelmCharts = 'Helm Charts', - BuilderImage = 'Builder Image', - Template = 'Template', - ServiceClass = 'Service Class', - ManagedServices = 'Managed Services', - EventSources = 'Event Sources', - EventSinks = 'Event Sinks', -} - -export enum builderImages { - Perl = 'perl', - PHP = 'php', - Nginx = 'nginx', - Httpd = 'httpd', - NETCore = 'dotnet', - Go = 'golang', - Ruby = 'ruby', - Python = 'python', - Java = 'java', - NodeJs = 'nodejs', -} - -export enum eventSourceCards { - ApiServerSource = 'ApiServerSource', - ContainerSource = 'ContainerSource', - PingSource = 'PingSource', - SinkBinding = 'SinkBinding', -} diff --git a/frontend/packages/dev-console/integration-tests/support/constants/global.ts b/frontend/packages/dev-console/integration-tests/support/constants/global.ts deleted file mode 100644 index 7a6f39e2dd2..00000000000 --- a/frontend/packages/dev-console/integration-tests/support/constants/global.ts +++ /dev/null @@ -1,102 +0,0 @@ -/* eslint-disable @typescript-eslint/naming-convention */ - -export enum devNavigationMenu { - Add = '+Add', - Topology = 'Topology', - Observe = 'Observe', - Builds = 'Builds', - ShipwrightBuilds = 'Shipwright Builds', - BuildConfigs = 'BuildConfigs', - Search = 'Search', - Helm = 'Helm', - Project = 'Project', - ProjectAccess = 'Project Access', - Pipelines = 'Pipelines', - ConfigMaps = 'Config Maps', - Secrets = 'Secrets', - GitOps = 'GitOps', - Environments = 'Environments', - Routes = 'Routes', - Deployments = 'Deployments', - Consoles = 'Consoles', - Functions = 'Functions', -} - -export enum adminNavigationBar { - Home = 'Home', - Workloads = 'Workloads', -} - -export enum switchPerspective { - Developer = 'Developer', - Administrator = 'Core platform', -} - -export enum operators { - PipelinesOperator = 'Red Hat OpenShift Pipelines', - ServerlessOperator = 'Red Hat OpenShift Serverless', - VirtualizationOperator = 'OpenShift Virtualization', - RedHatIntegrationCamelK = 'Red Hat Integration - Camel K', - ApacheCamelKOperator = 'Camel K Operator', - KnativeApacheCamelOperator = 'Knative Apache Camel Operator', - EclipseCheOperator = 'Eclipse Che', - GitOpsOperator = 'Red Hat OpenShift GitOps', - WebTerminalOperator = 'Web Terminal', - ApacheKafka = 'Red Hat Integration - AMQ Streams', - RedHatCodereadyWorkspaces = 'Red Hat CodeReady Workspaces', - GitopsPrimer = 'gitops-primer', - ServiceBinding = 'Service Binding Operator', - CrunchyPostgresforKubernetes = 'Crunchy Postgres for Kubernetes', - QuayContainerSecurity = 'Quay Container Security', - ShipwrightOperator = 'Shipwright Operator', - RedisOperator = 'Redis Operator', - AMQStreams = 'AMQ Streams', - RHOAS = 'RHOAS', - Jaeger = 'Red Hat OpenShift distributed tracing platform', - BuildsForOpenshiftOperator = 'builds for Red Hat OpenShift Operator', - DevWorkspaceOperator = 'DevWorkspace Operator', -} - -export enum operatorNamespaces { - PipelinesOperator = 'openshift-operators', - ServerlessOperator = 'openshift-serverless', - ShipwrightOperator = 'openshift-operators', - BuildsForOpenshiftOperator = 'openshift-operators', - WebTerminalOperator = 'openshift-operators', - RedHatIntegrationCamelK = 'openshift-operators', - DevWorkspaceOperator = 'openshift-operators', -} - -export enum operatorSubscriptions { - PipelinesOperator = 'openshift-pipelines-operator', - ServerlessOperator = 'serverless-operator', - ShipwrightOperator = 'shipwright-operator', - BuildsForOpenshiftOperator = 'openshift-builds-operator', - WebTerminalOperator = 'web-terminal', - RedHatIntegrationCamelK = 'red-hat-camel-k', - DevWorkspaceOperator = 'devworkspace-operator', -} - -export enum operatorPackage { - PipelinesOperator = 'openshift-pipelines-operator-rh', - ServerlessOperator = 'serverless-operator', - ShipwrightOperator = 'shipwright-operator', - BuildsForOpenshiftOperator = 'openshift-builds-operator', - WebTerminalOperator = 'web-terminal', - RedHatIntegrationCamelK = 'red-hat-camel-k', - DevWorkspaceOperator = 'devworkspace-operator', -} - -export enum authenticationType { - BasicAuthentication = 'Basic Authentication', - SSHKey = 'SSHKey', -} - -export enum resources { - Deployments = 'Deployments', - BuildConfigs = 'Build Configs', - Builds = 'Builds', - Services = 'Services', - ImageStreams = 'Image Streams', - Routes = 'Routes', -} diff --git a/frontend/packages/dev-console/integration-tests/support/constants/helm.ts b/frontend/packages/dev-console/integration-tests/support/constants/helm.ts deleted file mode 100644 index ca679333157..00000000000 --- a/frontend/packages/dev-console/integration-tests/support/constants/helm.ts +++ /dev/null @@ -1,7 +0,0 @@ -/* eslint-disable @typescript-eslint/naming-convention */ - -export enum helmActions { - upgrade = 'Upgrade', - rollback = 'Rollback', - deleteHelmRelease = 'Delete Helm Release', -} diff --git a/frontend/packages/dev-console/integration-tests/support/constants/index.ts b/frontend/packages/dev-console/integration-tests/support/constants/index.ts deleted file mode 100644 index a9f053df7a9..00000000000 --- a/frontend/packages/dev-console/integration-tests/support/constants/index.ts +++ /dev/null @@ -1,8 +0,0 @@ -/* eslint-disable no-barrel-files/no-barrel-files */ -export * from './add'; -export * from './global'; -export * from './monitoring'; -export * from './pageTitle'; -export * from './topology'; -export * from './staticText/index'; -export * from './helm'; diff --git a/frontend/packages/dev-console/integration-tests/support/constants/monitoring.ts b/frontend/packages/dev-console/integration-tests/support/constants/monitoring.ts deleted file mode 100644 index 6b85ed609eb..00000000000 --- a/frontend/packages/dev-console/integration-tests/support/constants/monitoring.ts +++ /dev/null @@ -1,8 +0,0 @@ -/* eslint-disable @typescript-eslint/naming-convention */ - -export enum monitoringTabs { - Dashboard = 'Dashboard', - Metrics = 'Metrics', - Alerts = 'Alerts', - Events = 'Events', -} diff --git a/frontend/packages/dev-console/integration-tests/support/constants/pageTitle.ts b/frontend/packages/dev-console/integration-tests/support/constants/pageTitle.ts deleted file mode 100644 index ab915cb270b..00000000000 --- a/frontend/packages/dev-console/integration-tests/support/constants/pageTitle.ts +++ /dev/null @@ -1,67 +0,0 @@ -export const pageTitle = { - Add: 'Add', - AddGitRepository: 'Add Git Repository', - AddHealthChecks: 'Add health checks', - Broker: 'Broker', - BuildConfigs: 'BuildConfigs', - BuilderImages: 'Builder Images', - Builds: 'Builds', - Channel: 'Channel', - ClusterTriggerTemplateDetails: 'ClusterTriggerBinding details', - ConfigMaps: 'ConfigMaps', - ContainerImage: 'Deploy Image', - CreateChecluster: 'Create CheCluster', - CreateEventSource: 'Create Event Source', - CreateHelmChartRepository: 'Create Helm Chart Repository', - CreateHelmRelease: 'Create Helm Release', - CreateKnativeEventing: 'Create KnativeEventing', - CreateKnativeKafka: 'Create KnativeKafka', - CreateKnativeServing: 'Create KnativeServing', - CreateRepository: 'Create Repository', - CreateServerlessFunction: 'Create Serverless function', - CustomResourceDefinitions: 'CustomResourceDefinitions', - Deployments: 'Deployments', - SoftwareCatalog: 'Software Catalog', - Environments: 'Environments', - Eventing: 'Eventing', - EventListenerDetails: 'EventListener details', - Events: 'Events', - EventSink: 'Event Sinks', - EventSource: 'Event Sources', - Functions: 'Functions', - Git: 'Import from Git', - GitOPs: 'GitOps', - Helm: 'Helm', - HelmCharts: 'Helm Charts', - HelmReleaseDetails: 'Helm Release details', - HelmReleases: 'Helm Releases', - InstalledOperators: 'Installed Operators', - InstallOperator: 'Install Operator', - KnativeEventings: 'KnativeEventings', - KnativeKafka: 'KnativeKafkas', - KnativeServings: 'KnativeServings', - Observe: 'Observe', - OperatorBacked: 'Operator Backed', - OperatorHub: 'OperatorHub', - PipelineBuilder: 'Pipeline builder', - PipelineDetails: 'Pipeline details', - PipelineRunDetails: 'PipelineRun details', - PipelineRuns: 'PipelineRuns', - Pipelines: 'Pipelines', - Project: 'Project Details', - ProjectAccess: 'Project access', - RedHatCodeReadyWorkspaces: 'Red Hat CodeReady Workspaces', - RedHatOpenShiftServerless: 'Red Hat OpenShift Serverless', - Routes: 'Routes', - Samples: 'Samples', - Search: 'Search', - Secrets: 'Secrets', - Serving: 'Serving', - ShipwrightBuild: 'ShipwrightBuild', - Templates: 'Templates', - TriggerTemplateDetails: 'TriggerTemplate details', - upgradeHelmRelease: 'Upgrade Helm Release', - UpgradeHelmRelease: 'Upgrade Helm Release', - UploadJarFile: 'Upload JAR file', - YAML: 'Import YAML', -}; diff --git a/frontend/packages/dev-console/integration-tests/support/constants/staticText/global-text.ts b/frontend/packages/dev-console/integration-tests/support/constants/staticText/global-text.ts deleted file mode 100644 index 1e6fbe9b078..00000000000 --- a/frontend/packages/dev-console/integration-tests/support/constants/staticText/global-text.ts +++ /dev/null @@ -1,22 +0,0 @@ -export const adminNavigationMenu = { - serverless: 'Serverless', - pipelines: 'Pipelines', -}; - -export const messages = { - helm: { - noHelmReleasesFound: 'No Helm Releases found', - }, - addFlow: { - gitUrlValidated: 'Validated', - noRoutesFound: 'No Routes found for this resource.', - privateGitRepoMessage: - 'If this is a private repository, enter a source Secret in advanced Git options', - buildDeployMessage: 'Repository URL to build and deploy your code from source', - nonGitRepoMessage: - 'URL is valid but a git type could not be identified. Please select a git type from the options below', - gitUrlDevfileMessage: 'Repository URL to build and deploy your code from a Devfile.', - rateLimitExceeded: 'Rate limit exceeded', - unableToDetectBuilderImage: 'Unable to detect the Builder Image.', - }, -}; diff --git a/frontend/packages/dev-console/integration-tests/support/constants/staticText/index.ts b/frontend/packages/dev-console/integration-tests/support/constants/staticText/index.ts deleted file mode 100644 index 733d8bf9c5a..00000000000 --- a/frontend/packages/dev-console/integration-tests/support/constants/staticText/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -/* eslint-disable no-barrel-files/no-barrel-files */ -export * from './global-text'; diff --git a/frontend/packages/dev-console/integration-tests/support/constants/topology.ts b/frontend/packages/dev-console/integration-tests/support/constants/topology.ts deleted file mode 100644 index 23c2f1c1c02..00000000000 --- a/frontend/packages/dev-console/integration-tests/support/constants/topology.ts +++ /dev/null @@ -1,73 +0,0 @@ -/* eslint-disable @typescript-eslint/naming-convention */ - -export enum displayOptions { - PodCount = 'Pod Count', - Labels = 'Labels', - ApplicationGroupings = 'Application Groupings', - HelmReleases = 'Helm Releases', - KnativeServices = 'Knative Services', -} - -export enum nodeActions { - EditApplicationGrouping = 'Edit application grouping', - EditPodCount = 'Edit Pod count', - PauseRollOuts = 'Pause rollouts', - AddHealthChecks = 'Add Health Checks', - AddHorizontalPodAutoScaler = 'Add HorizontalPodAutoscaler', - AddStorage = 'Add storage', - EditUpdateStrategy = 'Edit update strategy', - EditLabels = 'Edit labels', - EditDeployment = 'Edit Deployment', - EditDeploymentConfig = 'Edit DeploymentConfig', - EditResourceLimits = 'Edit resource limits', - DeleteDeployment = 'Delete Deployment', - DeleteDeploymentConfig = 'Delete DeploymentConfig', - EditAnnotations = 'Edit annotations', - MoveSink = 'Move sink', - EditSinkBinding = 'Edit SinkBinding', - DeleteSinkBinding = 'Delete SinkBinding', - DeletePingSource = 'Delete PingSource', - DeleteService = 'Delete Service', - EditService = 'Edit Service', - EditHealthChecks = 'Edit Health Checks', - HelmReleases = 'Helm Releases', - SetTrafficDistribution = 'Set traffic distribution', - AddSubscription = 'Add Subscription', - EditInMemoryChannel = 'Edit InMemoryChannel', - DeleteInMemoryChannel = 'Delete InMemoryChannel', - EditRevision = 'Edit Revision', - DeleteRevision = 'Delete Revision', - MakeServerless = 'Make Serverless', - AddTrigger = 'Add Trigger', - CreateServiceBinding = 'Create Service Binding', -} - -export enum applicationGroupingsActions { - DeleteApplication = 'Delete application', - AddtoApplication = 'Add to application', -} - -export enum authenticationTypes { - ImageRegistryCredentials = 'Image registry credentials', - UploadConfigurationFile = 'Upload configuration file', -} - -export enum addToApplicationGroupings { - // TODO (ODC-6455): Tests should use latest UI labels like "Import from Git" instead of mapping strings - FromGit = 'From Git', - ContainerImage = 'Container Image', - // TODO (ODC-6455): Tests should use latest UI labels like "Import from Git" instead of mapping strings - FromDockerfile = 'From Dockerfile', - // TODO (ODC-6455): Tests should use latest UI labels like "Import from Git" instead of mapping strings - FromDevfile = 'From Devfile', - UploadJarfile = 'Upload JAR file', - EventSource = 'Event Source', - Channel = 'Channel', -} - -export enum sideBarTabs { - Details = 'Details', - Resources = 'Resources', - ReleaseNotes = 'Release notes', - Observe = 'Observe', -} diff --git a/frontend/packages/dev-console/integration-tests/support/pageObjects/add-flow-po.ts b/frontend/packages/dev-console/integration-tests/support/pageObjects/add-flow-po.ts deleted file mode 100644 index b53526bb607..00000000000 --- a/frontend/packages/dev-console/integration-tests/support/pageObjects/add-flow-po.ts +++ /dev/null @@ -1,444 +0,0 @@ -export const cardTitle = '[data-test="title"]'; - -export const addPagePO = { - gettingStarted: '[data-test="getting-started"]', - detailsOnOffSwitch: '[data-test="details-switch"]', - cardDetails: 'p.odc-add-card-item__description', - restoreGettingStarted: '[data-test="restore-getting-started"]', - toogleGettingStarted: '[id*="expandable-section-toggle"]', - hideGettingStarted: '[data-test="hide"]', - closeButton: '[aria-label="label-close-button"]', - buildWithGuidedDocumentation: '[data-test="card quick-start"]', - buildWithGuidedDocumentationItems: '[data-test="card quick-start"] [data-test~="item"]', - viewAllQuickStarts: '[data-test="item all-quick-starts"]', - viewAllSamples: '[data-test="item all-samples"]', - helmChartRepositoriesCard: '[data-test="card helm-chart-repositories"]', -}; - -export const gitPO = { - noWorkLoadsText: 'h2.co-hint-block__title', - sectionTitle: '.odc-form-section__heading', - gitRepoUrl: '[data-test-id="git-form-input-url"]', - builderImageCard: '.odc-selector-card', - nodeName: '[data-test-id="application-form-app-name"]', - appName: '[id$=application-name-field]', - createNewApp: '[data-test="console-select-item"]', - newAppName: '[data-test-id="application-form-app-input"]', - create: '[data-test-id="submit-button"]', - cancel: '[data-test-id="reset-button"]', - gitSection: { - validatedMessage: '[id$="git-url-field-helper"]', - showAdvancedGitOptions: '', - advancedGitOptions: { - gitReference: '#form-input-git-ref-field', - contextDir: '#form-input-git-dir-field', - sourceSecret: '', - }, - }, - builderSection: { - builderImageDetected: '[aria-label="Success Alert"]', - builderImageVersion: '#form-dropdown-image-tag-field', - unableToDetectBuilderImage: '[aria-label="Warning Alert"]', - }, - builderImages: { - nodejs: '[data-test="card nodejs"]', - java: '[data-test="card java"]', - go: '[data-test="card go"]', - python: '[data-test="card python"]', - php: '[data-test="card php"]', - ruby: '[data-test="card ruby"]', - perl: '[data-test="card perl"]', - dotNet: '[data-test="card dotnet"]', - }, - pipeline: { - infoMessage: '[aria-label="Info Alert"]', - buildDropdown: '[id="form-select-input-build-option-field"]', - addPipeline: '[id="select-option-build.option-PIPELINES"]', - pipelineDropdown: '#form-dropdown-pipeline-templateSelected-field', - }, - buildsDropdown: '#form-select-input-build-option-field', - buildOptions: { - buildsForOpenshift: '[id="select-option-build.option-SHIPWRIGHT_BUILD"]', - buildConfig: '[id="select-option-build.option-BUILDS"]', - buildUsingPipelines: '[id="select-option-build.option-PIPELINES"]', - }, - cbsDropdown: '#form-select-input-build-clusterBuildStrategy-field', - clusterBuildStrategies: { - buildah: '[id="select-option-build.clusterBuildStrategy-buildah"]', - s2i: '[id="select-option-build.clusterBuildStrategy-source-to-image"]', - }, - resourcesDropdown: '#form-select-input-resources-field', - resources: { - deployment: '#select-option-resources-kubernetes', - deploymentConfig: '#select-option-resources-openshift', - knative: '#select-option-resources-knative', - }, - gitType: { - gitea: '#git-type-gitea', - github: '#git-type-github', - gitlab: '#git-type-gitlab', - bitbucket: '#git-type-bitbucket', - other: '#git-type-other', - }, - advancedOptions: { - createRoute: '#form-checkbox-route-create-field', - routing: { - hostname: '#form-input-route-hostname-field', - path: '#form-input-route-path-field', - targetPortDropdown: '#form-select-input-route-unknownTargetPort-field', - targetPort: 'input[placeholder="8080"]', - secureRoute: 'input#form-checkbox-route-secure-field', - tlsTermination: 'button#form-dropdown-route-tls-termination-field', - insecureTraffic: 'button#form-dropdown-route-tls-insecureEdgeTerminationPolicy-field', - labels: 'input[data-test="route-labels"]', - }, - buildConfig: { - webHookBuildTrigger: 'input#form-checkbox-build-triggers-webhook-field', - buildTriggerImage: 'input#form-checkbox-build-triggers-image-field', - buildTriggerConfigField: 'input#form-checkbox-build-triggers-config-field', - // Add Environment Value - envName: 'input[data-test=pairs-list-name]', - envValue: 'input[data-test=pairs-list-value]', - // Count for Rows in Environment Variables section - envRows: 'div.row.pairs-list__row', - deleteRowButton: 'button[data-test="delete-button"]', - advanceGitOptions: '[data-test="advanced-git-options"]', - }, - deployment: { - deploymentTriggerImage: 'input#form-checkbox-deployment-triggers-image-field', - deploymentImageConfig: 'input#form-checkbox-deployment-triggers-config-field', - envName: '[data-test=pairs-list-name]', - envValue: '[data-test=pairs-list-value]', - // Count for Rows in Environment Variables section - envRows: 'div.row.pairs-list__row', - deleteRowButton: 'button[data-test="delete-button"]', - }, - scaling: { - decrement: 'button[aria-label="Decrement"]', - increment: 'button[aria-label="Increment"]', - replicaCount: 'input#form-number-spinner-deployment-replicas-field', - }, - resourceLimit: { - cpuRequest: 'input[aria-describedby="form-resource-limit-limits-cpu-request-field-helper"]', - cpuLimit: 'input[aria-describedby="form-resource-limit-limits-cpu-limit-field-helper"]', - memoryRequest: - 'input[aria-describedby="form-resource-limit-limits-memory-request-field-helper"]', - memoryLimit: 'input[aria-describedby="form-resource-limit-limits-memory-limit-field-helper"]', - }, - labels: 'input[data-test="labels"]', - }, - importStrategy: { - devFileStrategy: '[data-test=import-strategy-Devfile]', - editImportStrategyBtn: '[data-test=import-strategy-button]', - devFilePathInput: '[data-test=git-form-devfile-path-input]', - devFileHelperText: '#form-input-devfile-devfilePath-field-helper', - }, - resourceCreationAlert: '[data-test="Resource added alert"]', -}; - -export const catalogPO = { - search: 'input[placeholder="Filter by keyword..."]', - filterKeyword: 'input[aria-label="Filter by keyword..."]', - templateTitle: '.catalog-tile-pf-title', - card: '[class$="catalog-tile"]', - cardBadge: '.catalog-tile-pf-badge-container', - groupBy: '[data-test="console-select-menu-toggle"]', - aToz: '[data-test-dropdown-menu="desc"]', - zToA: '[data-test-dropdown-menu="asc"]', - cardType: '.catalog-tile-pf-badge-container', - create: 'button[type="submit"]', - cancel: '[data-test-id="reset-button"]', - cardList: '[role="grid"]', - cardHeader: '.catalog-tile-pf-badge span', - catalogBatch: '.odc-catalog-badges', - batchLabel: '.odc-catalog-badges__label', - bindingFilterBindable: '[data-test="bindable-bindable"]', - filterInfoTip: '.co-field-level-help__icon', - filterInfoTipContent: '[id*=popover]', - filterCheckBox: '[type="checkbox"]', - chartRepositoryGroup: '[data-test-group-name="chartRepositoryTitle"]', - catalogTypeLink: 'li.vertical-tabs-pf-tab.shown', - catalogTypes: { - operatorBacked: '[data-test="kind-cluster-service-version"]', - helmCharts: '[data-test="tab HelmChart"]', - builderImage: '[data-test="tab BuilderImage"]', - template: '[data-test="tab Template"]', - serviceClass: '[data-test="kind-cluster-service-class"]', - managedServices: '[data-test="kind-managed-service"]', - eventSources: '[data-test="tab EventSource"]', - eventSinks: '[data-test="tab EventSink"]', - }, - catalogCategoriesByTitle: { - 'CI/CD': '[data-test="tab cicd"]', - Databases: '[data-test="tab databases"]', - Languages: '[data-test="tab languages"]', - Middleware: '[data-test="tab middleware"]', - Other: '[data-test="tab other"]', - }, - cards: { - mariaDBTemplate: 'div[data-test="Template-MariaDB"]', - phpCakeTemplate: '[data-test="Template-CakePHP + MySQL"]', - nodeJsBuilderImage: 'div[data-test="BuilderImage-Node.js"]', - nodejsPostgreSQL: 'div[data-test="Template-Node.js + PostgreSQL (Ephemeral)"]', - apacheHTTPServer: 'div[data-test="Template-Apache HTTP Server"]', - nginxHTTPServer: 'div[data-test="Template-Nginx HTTP server and a reverse proxy"]', - knativeKafka: '[data-test="OperatorBackedService-Knative Kafka"]', - helmNodejs: '[data-test="HelmChart-Nodejs"]', - jenkinsTemplate: '[data-test="Template-Jenkins"]', - }, - sidePane: { - dialog: '[role="dialog"]', - instantiateTemplate: '[role="dialog"] [role="button"]', - create: 'a[title="Create"]', - installHelmChart: 'a[title="Install Helm Chart"]', - createApplication: '[role="dialog"] a[role="button"]', - }, - mariaDBTemplate: { - namespace: '#namespace', - title: '[data-test="page-heading"] h1', - memoryLimit: '#MEMORY_LIMIT', - imageStreamNameSpace: '#NAMESPACE', - databaseServiceName: '#DATABASE_SERVICE_NAME', - mariaDBConnectionUserName: '#MYSQL_USER', - }, - createKnativeServing: { - logo: 'h1.co-clusterserviceversion-logo__name__clusterserviceversion', - name: '#root_metadata_name', - labels: 'input[placeholder="app=frontend"]', - }, - installHelmChart: { - logo: 'h1.co-clusterserviceversion-logo__name__clusterserviceversion', - create: '[data-test-id="submit-button"]', - releaseName: '#form-input-releaseName-field', - yamlView: '#form-radiobutton-editorType-yaml-field', - formView: '#form-radiobutton-editorType-form-field', - cancel: '[data-test-id="reset-button"]', - chartVersion: '#form-dropdown-chartVersion-field', - replicaCount: '#root_replicaCount', - ingressLink: '#root_ingress_accordion-toggle', - ingress: { - enabled: '#root_ingress_enabled', - hostsLink: '#root_ingress_hosts_accordion-toggle', - tlsLink: '#root_ingress_tls_accordion-toggle', - hostDetails: { - hostName: '#root_ingress_hosts_0_host', - removeHost: '[id$="remove-btn"]', - }, - pathsLink: '#root_ingress_hosts_0_paths_accordion-toggle', - AddPathButton: '#root_ingress_hosts_0_paths_add-btn', - AddHostButton: '#root_ingress_hosts_add-btn', - }, - }, - operatorBacked: { - name: '#root_metadata_name', - }, - s2I: { - gitRepoUrl: '[data-test-id="git-form-input-url"]', - builderImageVersion: '#form-dropdown-image-tag-field', - appName: '[data-test-id="application-form-app-input"]', - name: '[data-test-id="application-form-app-name"]', - resourceTypes: { - deployment: '#form-radiobutton-resources-kubernetes-field', - deploymentConfig: '#form-radiobutton-resources-openshift-field', - knative: '#form-radiobutton-resources-knative-field', - }, - addPipeline: { - pipelineCheckBox: '#form-checkbox-pipeline-enabled-field', - }, - createRoute: '#form-checkbox-route-create-field', - }, -}; - -export const samplesPO = { - search: 'input[placeholder="Filter by keyword..."]', - cards: { - httpdTemplate: 'div[data-test="BuilderImage-Httpd"]', - basicgoTemplate: 'div[data-test="Devfile-Basic Go"]', - basicnodeTemplate: '[data-test="Devfile-Basic Node.js"]', - goTemplate: '[data-test="BuilderImage-Go"]', - }, - form: { - name: '[data-test-id="application-form-app-name"]', - header: '[data-test="page-heading"] h1', - }, -}; - -export const containerImagePO = { - form: '[data-test-id="deploy-image-form"]', - imageSection: { - externalRegistryImageCheckBox: '#form-radiobutton-registry-external-field', - internalRegistryImageCheckBox: '#form-radiobutton-registry-internal-field', - runTimeIconDropdown: '.odc-icon-dropdown button', - addCustomIcon: '[data-test="add-custom-icon"]', - customIconModal: { - url: '[data-test="import-custom-icon-url-input"]', - confirmButton: '[data-test="import-custom-icon-confirm"]', - }, - externalRegistry: { - allowImageFromInsecureRegistry: '#form-checkbox-allowInsecureRegistry-field', - imageName: '#form-input-searchTerm-field', - validatedMessage: '#form-input-searchTerm-field-helper', - }, - internalRegistry: { - selectProject: '#form-ns-dropdown-imageStream-namespace-field', - imageStream: '#form-ns-dropdown-imageStream-image-field', - tag: '#form-dropdown-imageStream-tag-field', - }, - }, - appName: '#form-dropdown-application-name-field', -}; - -export const eventSourcePO = { - search: '[placeholder="Filter by keyword..."]', - yamlView: '#form-radiobutton-editorType-yaml-field', - formView: '#form-radiobutton-editorType-form-field', - addButton: 'a[role="button"]', - nodeHandler: '[data-test-id="base-node-handler"]', - apiServerSource: { - apiServerSourceSection: '[data-test~="ApiServerSource"][data-test~="section"]', - apiVersion: '[data-test=pairs-list-name]', - kind: '[data-test=pairs-list-value]', - serviceAccountName: '[id$=ApiServerSource-serviceAccountName-field]', - name: '[data-test-id="application-form-app-name"]', - mode: '[id$=ApiServerSource-mode-field]', - }, - sinkBinding: { - sinkBindingSection: '[data-test~="SinkBinding"][data-test~="section"]', - apiVersion: '[data-test-id="sinkbinding-apiversion-field"]', - kind: '[data-test-id="sinkbinding-kind-field"]', - matchLabels: { - name: '[data-test="pairs-list-name"]', - value: '[data-test="pairs-list-value"]', - }, - sink: { - resourceRadioButton: '[id$=sinkType-resource-field]', - uriRadioButton: '[id$="sinkType-uri-field"]', - resource: { - resourceDropdown: '[id*=sink-key-field]', - }, - uri: { - uriName: '[data-test-id="sink-section-uri"]', - }, - }, - name: '[data-test-id="application-form-app-name"]', - appName: '[data-test-id="application-form-app-input"]', - notifierHeader: 'div[aria-label="Default Alert"] h4', - }, - pingSource: { - data: '[id$="PingSource-data-field"]', - schedule: '[id$="PingSource-schedule-field"]', - name: '[id$="name-field"]', - }, - containerImage: { - containerSourceSection: '[data-test~="ContainerSource"][data-test~="section"]', - image: '[data-test-id="container-image-field"]', - name: '[data-test-id="container-name-field"]', - arguments: '[data-test="text-column-field"]', - addArgs: '[data-test="add-action"]', - environmentVariableName: '[data-test="pairs-list-name"]', - environmentVariableValue: '[data-test="pairs-list-name"]', - addMoreRow: '[data-test="add-button"]', - }, - createPingSource: { - data: '#form-input-formData-data-PingSource-data-field', - schedule: '#form-input-formData-data-PingSource-schedule-field', - name: '#form-input-formData-name-field', - resourceToggleButton: '[id="form-radiobutton-formData-sinkType-resource-field"]', - resourceDropDownField: '[id="form-ns-dropdown-formData-sink-key-field"]', - resourceDropDownItem: '[data-test="console-select-item"]', - resourceFilter: '[data-test="console-select-search-input"]', - resourceSearch: '[placeholder="Select resource"]', - }, - createSinkBinding: { - resourceToggleButton: '[data-test="resource-view-input"]', - resourceDropDownField: '[id="form-ns-dropdown-formData-sink-key-field"]', - resourceDropDownItem: '[data-test="console-select-item"]', - resourceSearchField: '[data-test="console-select-search-input"]', - createButton: '[data-test=confirm-action]', - moveSinkButton: '[data-test-action="Move sink"]', - eventSourceNode: 'g.odc-event-source', - uriNode: 'g.odc-sink-uri', - }, -}; - -export const eventSinkPO = { - search: '[placeholder="Filter by keyword..."]', -}; - -export const eventsPO = { - addMore: '[data-test="add-button"]', - attributeName: '[data-test="pairs-list-name"]', - attributeValue: '[data-test="pairs-list-value"]', - nameField: '[id="form-input-formData-metadata-name-field"]', - pageTitle: '[data-test="page-heading"] h1', - search: '[placeholder="Filter by keyword..."]', - subscribeButton: '[data-test-id="submit-button"]', - subscriberDropDown: '[id="form-ns-dropdown-formData-spec-subscriber-ref-name-field"]', -}; - -export const devFilePO = { - form: '[data-test-id="import-devfile-form"]', - formFields: { - validatedMessage: '#form-input-git-url-field-helper', - advancedGitOptions: { - gitReference: '#form-input-git-ref-field', - contextDir: 'form-input-git-dir-field', - sourceSecret: '', - }, - }, -}; - -export const channelPO = { - channelType: '[data-test="console-select-menu-toggle"]', - channelName: '[data-test-id="channel-name"]', - appName: '[data-test-id="application-form-app-input"]', -}; - -export const yamlPO = { - yamlEditor: '.ocs-yaml-editor', -}; - -export const uploadJarFilePO = { - jar: { - browse: '#upload-jar-field-browse-button', - jarFile: '#upload-jar-field-filename', - optionalJavaCommands: '[data-test-id="upload-jar-form-java-args"]', - runTimeIcon: '.odc-icon-dropdown', - builderImageVersion: '#form-dropdown-image-tag-field', - }, -}; -export const quickSearchAddPO = { - quickSearchButton: '[data-test="quick-search"]', - quickSearchBar: '[data-test="quick-search-bar"]', - quickSearchInput: '[data-test~="quick-search-bar"] [data-test~="input"]', - quickSearchListItem(itemName: string, itemType: string): string { - return `[data-test="item-name-${itemName}-${itemType}"]`; - }, - quickSearchCreateButton: '[data-test="create-quick-search"]', - viewInSoftwareCatalog: '#devCatalog', - quickSearchNoResults: '[data-test="quick-search-no-results"]', -}; - -export const helmChartRepositoriesPO = { - yaml: { - yamlSwitcher: '[data-test="yaml-view-input"]', - yamlEditor: '[data-test="yaml-editor"]', - }, - formTitle: '[data-test="form-title"]', - cancelButton: '[data-test-id="cancel-button"]', - name: '#form-input-formData-repoName-field', - displayName: '#form-input-formData-repoDisplayName-field', - description: '#form-input-formData-repoDescription-field', - url: '#form-input-formData-repoUrl-field', -}; - -export const deploymentStrategyFormP0 = { - images: { - deployFromImageStreamCheckbox: '#form-checkbox-formData-fromImageStreamTag-field', - projectDropdown: '#form-ns-dropdown-formData-imageStream-namespace-field', - selectProjectOpenshift: '#openshift-link', - imageStreamDropdown: '#form-ns-dropdown-formData-imageStream-image-field', - tagDropdown: '#form-dropdown-formData-imageStream-tag-field', - selectTagLatest: '#latest-link', - }, -}; diff --git a/frontend/packages/dev-console/integration-tests/support/pageObjects/addHealthChecks-po.ts b/frontend/packages/dev-console/integration-tests/support/pageObjects/addHealthChecks-po.ts deleted file mode 100644 index 26caf0b547e..00000000000 --- a/frontend/packages/dev-console/integration-tests/support/pageObjects/addHealthChecks-po.ts +++ /dev/null @@ -1,47 +0,0 @@ -export const addHealthChecksPO = { - readinessProbe: { - requestType: '#form-dropdown-healthChecks-readinessProbe-data-requestType-field', - httpHeaderName: 'input[placeholder="header name"]', - httpHeaderValue: 'input[placeholder="value"]', - path: '#form-input-healthChecks-readinessProbe-data-httpGet-path-field', - port: '#form-input-healthChecks-readinessProbe-data-httpGet-port-field', - failureThreshold: '#form-input-healthChecks-readinessProbe-data-failureThreshold-field', - successThreshold: '#form-input-healthChecks-readinessProbe-data-successThreshold-field', - initialDelay: '#form-input-healthChecks-readinessProbe-data-initialDelaySeconds-field', - period: '#form-input-healthChecks-readinessProbe-data-periodSeconds-field', - timeout: '#form-input-healthChecks-readinessProbe-data-timeoutSeconds-field', - }, - livenessProbe: { - requestType: '#form-dropdown-healthChecks-livenessProbe-data-requestType-field', - httpHeaderName: 'input[placeholder="header name"]', - httpHeaderValue: 'input[placeholder="value"]', - path: '#form-input-healthChecks-livenessProbe-data-httpGet-path-field', - port: '#form-input-healthChecks-livenessProbe-data-httpGet-port-field', - failureThreshold: '#form-input-healthChecks-livenessProbe-data-failureThreshold-field', - successThreshold: '#form-input-healthChecks-livenessProbe-data-successThreshold-field', - initialDelay: '#form-input-healthChecks-livenessProbe-data-initialDelaySeconds-field', - period: '#form-input-healthChecks-livenessProbe-data-periodSeconds-field', - timeout: '#form-input-healthChecks-livenessProbe-data-timeoutSeconds-field', - }, - startupProbe: { - requestType: '#form-dropdown-healthChecks-startupProbe-data-requestType-field', - httpHeaderName: 'input[placeholder="header name"]', - httpHeaderValue: 'input[placeholder="value"]', - path: '#form-input-healthChecks-startupProbe-data-httpGet-path-field', - port: '#form-input-healthChecks-startupProbe-data-httpGet-port-field', - failureThreshold: '#form-input-healthChecks-startupProbe-data-failureThreshold-field', - successThreshold: '#form-input-healthChecks-startupProbe-data-successThreshold-field', - initialDelay: '#form-input-healthChecks-startupProbe-data-initialDelaySeconds-field', - period: '#form-input-healthChecks-startupProbe-data-periodSeconds-field', - timeout: '#form-input-healthChecks-startupProbe-data-timeoutSeconds-field', - }, - add: '[data-test-id="submit-button"]', - cancel: '[data-test-id="reset-button"]', - save: '[data-test-id="submit-button"]', - healthChecksForm: 'div.odc-heath-check-probe-form', - successText: 'span.odc-heath-check-probe__successText', - removeReadinessProbeIcon: '', - readinessProbeAdded: '', - livenessProbeAdded: '', - addStartUpProbeAdded: '', -}; diff --git a/frontend/packages/dev-console/integration-tests/support/pageObjects/build-po.ts b/frontend/packages/dev-console/integration-tests/support/pageObjects/build-po.ts deleted file mode 100644 index e7744890ff9..00000000000 --- a/frontend/packages/dev-console/integration-tests/support/pageObjects/build-po.ts +++ /dev/null @@ -1,22 +0,0 @@ -export const buildPO = { - admin: { - buildTab: '[data-quickstart-id="qs-nav-builds"]', - nav: '[data-test="nav"]', - }, - filter: '[data-test-id="filter-dropdown-toggle"] button', - filterList: '[aria-labelledby="Status"]', - pane: '.co-m-pane__body', - eventTab: '[data-test-id="horizontal-link-Events"]', - eventStream: '.co-sysevent-stream', - breadcrumb: '[aria-label="Breadcrumb"]', - failedFilter: '[data-test-row-filter="Failed"]', - dev: { - buildTab: '[aria-label="Builds"]', - }, - shipwrightBuild: { - shipwrightBuildsTab: '[data-test-id="horizontal-link-Shipwright Builds"]', - shipwrightBuildRunsTab: '[data-test-id="horizontal-link-BuildRuns"]', - statusText: '[data-test="status-text"]', - }, - popup: '[data-test="failure-popup"]', -}; diff --git a/frontend/packages/dev-console/integration-tests/support/pageObjects/buildConfig-po.ts b/frontend/packages/dev-console/integration-tests/support/pageObjects/buildConfig-po.ts deleted file mode 100644 index 7ca8cffae64..00000000000 --- a/frontend/packages/dev-console/integration-tests/support/pageObjects/buildConfig-po.ts +++ /dev/null @@ -1,16 +0,0 @@ -export const buildConfigPO = { - actionItems: '[data-test-id="action-items"]', - kebabButton: '[data-test-id="kebab-button"]', - resourceTitle: '[data-test="page-heading"] h1', - nameField: '#form-input-formData-name-field', - buildFrom: { - buildTypeDropdown: '[id="form-dropdown-formData-images-buildFrom-type-field"]', - imageStreamDropdown: - '#form-ns-dropdown-formData-images-buildFrom-imageStreamTag-imageStream-image-field', - imageStreamTagDropdown: - '#form-dropdown-formData-images-buildFrom-imageStreamTag-imageStream-tag-field', - }, - imageRegistryField: '#form-input-formData-images-buildFrom-dockerImage-field', - contentDirectoryField: '#form-input-formData-source-git-git-dir-field', - environmentTab: '[data-test-id="horizontal-link-Environment"]', -}; diff --git a/frontend/packages/dev-console/integration-tests/support/pageObjects/customization.ts b/frontend/packages/dev-console/integration-tests/support/pageObjects/customization.ts deleted file mode 100644 index 080268273a5..00000000000 --- a/frontend/packages/dev-console/integration-tests/support/pageObjects/customization.ts +++ /dev/null @@ -1,28 +0,0 @@ -export const customizationPO = { - softwareCatalog: { - formSection: 'catalog-types form-section', - availableSearchInput: '[aria-label="Available search input"]', - choosenSearchInput: '[aria-label="Chosen search input"]', - addAllAction: '[aria-label="Add all"]', - addSelectedAction: '[aria-label="Add selected"]', - removeAllAction: '[aria-label="Remove all"]', - removeSelectedAction: '[aria-label="Remove selected"]', - }, - addPage: { - formSection: 'add-page form-section', - availableSearchInput: '[aria-label="Available search input"]', - choosenSearchInput: '[aria-label="Chosen search input"]', - addAllAction: '[aria-label="Add all"]', - addSelectedAction: '[aria-label="Add selected"]', - removeAllAction: '[aria-label="Remove all"]', - removeSelectedAction: '[aria-label="Remove selected"]', - }, - role: { - presentation: '[role="presentation"]', - option: '[role="option"]', - }, - successAlert: '[aria-label="Success Alert"]', - resourceSearch: '[placeholder="Select Resource"]', - filter: '[data-test-id="filter-dropdown-toggle"] button', - consoleItems: '[data-filter-text="CConsole"]', -}; diff --git a/frontend/packages/dev-console/integration-tests/support/pageObjects/gettingStarted-po.ts b/frontend/packages/dev-console/integration-tests/support/pageObjects/gettingStarted-po.ts deleted file mode 100644 index 866deb651d4..00000000000 --- a/frontend/packages/dev-console/integration-tests/support/pageObjects/gettingStarted-po.ts +++ /dev/null @@ -1,9 +0,0 @@ -export const gettingStartedPO = { - guidedTour: { - model: '#guided-tour-modal', - popover: '[role="dialog"].pf-v6-c-popover', - secondaryFooterItem: '[data-test="tour-step-footer-secondary"]', - primaryFooterItem: '[data-test="tour-step-footer-primary"]', - closeButton: '[aria-label="Close"]', - }, -}; diff --git a/frontend/packages/dev-console/integration-tests/support/pageObjects/global-po.ts b/frontend/packages/dev-console/integration-tests/support/pageObjects/global-po.ts deleted file mode 100644 index 877e854de58..00000000000 --- a/frontend/packages/dev-console/integration-tests/support/pageObjects/global-po.ts +++ /dev/null @@ -1,55 +0,0 @@ -export const devNavigationMenuPO = { - pipelines: '[data-test-id="pipeline-header"]', - add: '[data-test-id="+Add-header"]', - topology: '[data-test-id="topology-header"]', - gitOps: '[data-test-id="gitops-header"]', - monitoring: '[data-test-id="monitoring-header"]', - pageSideBar: '#page-sidebar', - builds: '[data-test-id="build-header"]', - search: '[data-test-id="search-header"]', - helm: '[data-test-id="helm-releases-header"]', - project: '[data-test-id="project-details-header"]', - secret: '#Secret', - dropdownButton: '[data-test="console-select-menu-toggle"]', - environments: '[data-test-id="environments-header"]', - functions: '[data-test-id="functions-details-header"]', -}; - -export const adminNavigationMenuPO = { - home: { main: '[data-quickstart-id="qs-nav-home"]', search: "a[href*='/search/ns/']" }, - workloads: { main: '[data-quickstart-id="qs-nav-workloads"]', pods: "a[href*='/core~v1~Pod']" }, -}; - -export const createSourceSecret = { - secretName: '#secret-name', - authenticationType: '#dropdown-selectbox', - basicAuthentication: { - userName: '#username', - password: '#password', - }, - sshKey: { - sshPrivateKey: '[data-test-id="file-input-textarea"]', - }, -}; - -export const actionsMenu = '[data-test-id="actions-menu-button"]'; -export const search = '[data-test-id="item-filter"]'; -export const formPO = { - configureVia: { - formView: '#form-radiobutton-editorType-form-field', - yamlView: '#form-radiobutton-editorType-yaml-field', - }, - create: '[data-test-id="submit-button"]', - cancel: '[data-test-id="reset-button"]', - save: '[data-test="save-changes"]', - errorAlert: '[aria-label="Danger Alert"]', - successAlert: '[aria-label="Success Alert"]', - confirm: '[data-test="confirm-action"]', -}; -export const pagePO = { - create: '[data-test="item-create"]', - breadcrumb: '[aria-label="Breadcrumb"]', -}; -export const resourceRow = '[data-test-rows="resource-row"]'; -export const helpDropdownMenu = '[data-test="help-dropdown-toggle"]'; -export const switchToFormView = '[id="form-radiobutton-editorType-form-field"]'; diff --git a/frontend/packages/dev-console/integration-tests/support/pageObjects/helm-po.ts b/frontend/packages/dev-console/integration-tests/support/pageObjects/helm-po.ts deleted file mode 100644 index e0ee7bd1a37..00000000000 --- a/frontend/packages/dev-console/integration-tests/support/pageObjects/helm-po.ts +++ /dev/null @@ -1,47 +0,0 @@ -export const helmPO = { - noHelmReleasesMessage: 'h3', - noHelmSearchMessage: '.loading-box.loading-box__loaded', - table: '[role="grid"]', - helmReleaseName: 'tr td:nth-child(1)', - resourcesTab: '[data-test-id="horizontal-link-Resources"]', - revisionHistoryTab: '[data-test-id="horizontal-link-Revision history"]', - releaseNotesTab: '[data-test-id="horizontal-link-Release notes"]', - filterDropdown: '[data-ouia-component-id="DataViewCheckboxFilter"]', - filterDropdownItem: '.pf-v6-c-menu__item', - filters: '[data-ouia-component-id="DataViewFilters"]', - filter: { - pendingInstall: '[data-ouia-component-id="DataViewCheckboxFilter-filter-item-pending-install"]', - pendingUpgrade: '[data-ouia-component-id="DataViewCheckboxFilter-filter-item-pending-upgrade"]', - pendingRollback: - '[data-ouia-component-id="DataViewCheckboxFilter-filter-item-pending-rollback"]', - }, - filterToolBar: '[data-ouia-component-id="DataViewToolbar"]', - deployedCheckbox: '[data-ouia-component-id="DataViewCheckboxFilter-filter-item-deployed"] input', - failedCheckbox: '[data-ouia-component-id="DataViewCheckboxFilter-filter-item-failed"] input', - otherCheckbox: '[data-ouia-component-id="DataViewCheckboxFilter-filter-item-other"] input', - details: { - title: '[data-test-section-heading="Helm Release Details"]', - }, - upgradeHelmRelease: { - replicaCount: '#root_replicaCount', - chartVersion: '#form-dropdown-chartVersion-field', - upgrade: '[data-test-id="submit-button"]', - cancel: '[data-test-id="reset-button"]', - }, - rollBackHelmRelease: { - revision1: '#form-radiobutton-revision-1-field', - rollBack: '[data-test-id="submit-button"]', - cancel: '[data-test-id="reset-button"]', - }, - uninstallHelmRelease: { - releaseName: '#form-input-resourceName-field', - }, - sidePane: { - chartVersion: '.properties-side-panel-pf-property-value', - }, - helmActions: { - upgrade: '[data-test-action="Upgrade"]', - rollBack: '[data-test-action="Rollback"]', - deleteHelmRelease: '[data-test-action="Delete Helm Release"]', - }, -}; diff --git a/frontend/packages/dev-console/integration-tests/support/pageObjects/index.ts b/frontend/packages/dev-console/integration-tests/support/pageObjects/index.ts deleted file mode 100644 index f415086d466..00000000000 --- a/frontend/packages/dev-console/integration-tests/support/pageObjects/index.ts +++ /dev/null @@ -1,11 +0,0 @@ -/* eslint-disable no-barrel-files/no-barrel-files */ -export * from './add-flow-po'; -export * from './addHealthChecks-po'; -export * from './gettingStarted-po'; -export * from './global-po'; -export * from './helm-po'; -export * from './monitoring-po'; -export * from './operators-po'; -export * from '@console/topology/integration-tests/support/page-objects/topology-po'; -export * from './quickStarts-po'; -export * from './vulnerability-po'; diff --git a/frontend/packages/dev-console/integration-tests/support/pageObjects/monitoring-po.ts b/frontend/packages/dev-console/integration-tests/support/pageObjects/monitoring-po.ts deleted file mode 100644 index e198d475dc2..00000000000 --- a/frontend/packages/dev-console/integration-tests/support/pageObjects/monitoring-po.ts +++ /dev/null @@ -1,12 +0,0 @@ -export const monitoringPO = { - tabs: { - events: '[data-test-id="horizontal-link-Events"]', - }, - timeRange: '', - refreshInterval: '', - eventsTab: { - resources: '', - selectedResource: '.form-group ul li span', - types: '[data-test="console-select-menu-toggle"]', - }, -}; diff --git a/frontend/packages/dev-console/integration-tests/support/pageObjects/operators-po.ts b/frontend/packages/dev-console/integration-tests/support/pageObjects/operators-po.ts deleted file mode 100644 index 6ab73ef06ec..00000000000 --- a/frontend/packages/dev-console/integration-tests/support/pageObjects/operators-po.ts +++ /dev/null @@ -1,77 +0,0 @@ -export const operatorsPO = { - search: '[data-test="search-operatorhub"] input[aria-label="Filter by keyword..."]', - nav: { - ecosystem: '[data-quickstart-id="qs-nav-ecosystem"]', - operatorHub: 'a[data-test="nav"][href="/catalog"]', - installedOperators: - 'a[data-test="nav"][href$="/operators.coreos.com~v1alpha1~ClusterServiceVersion"]', - link: '[data-test="nav"]', - menuItems: '#page-sidebar ul li', - serverless: '[data-quickstart-id="qs-nav-serverless"]', - eventing: `a[href^="/eventing/"]`, - serving: `a[href^="/serving/"]`, - administration: '[data-quickstart-id="qs-nav-administration"]', - customResourceDefinitions: - 'a[data-test="nav"][href$="apiextensions.k8s.io~v1~CustomResourceDefinition"]', - }, - operatorHub: { - numOfItems: 'div.co-catalog-page__num-items', - install: '[data-test="install-operator"]', - pipelinesOperatorCard: - '[data-test="openshift-pipelines-operator-rh-redhat-operators-openshift-marketplace"]', - serverlessOperatorCard: - '[data-test="serverless-operator-redhat-operators-openshift-marketplace"]', - virtualizationOperatorCard: - '[data-test="kubevirt-hyperconverged-redhat-operators-openshift-marketplace"]', - redHatCamelKOperatorCard: - '[data-test="red-hat-camel-k-redhat-operators-openshift-marketplace"]', - installingOperatorModal: '#operator-install-page', - gitOpsOperatorCard: - '[data-test="openshift-gitops-operator-redhat-operators-openshift-marketplace"]', - webTerminalOperatorCard: '[data-test="web-terminal-redhat-operators-openshift-marketplace"]', - apacheCamelKOperatorCard: '[data-test="camel-k-community-operators-openshift-marketplace"]', - knativeApacheCamelKOperatorCard: - '[data-test="knative-camel-operator-community-operators-openshift-marketplace"]', - apacheKafkaOperatorCard: '[data-test^="amq-streams-redhat-operators"]', - redHatSourceType: '[data-test-group-name="source"] [title="Red Hat"]', - redHatCodeReadyWorkspacesCard: - '[data-test^="codeready-workspaces-redhat-operators-openshift-marketplace"]', - gitopsPrimer: '[data-test="gitops-primer-community-operators-openshift-marketplace"]', - CrunchyPostgresforKubernetes: - '[data-test="crunchy-postgres-operator-certified-operators-openshift-marketplace"]', - quayContainerSecurity: - '[data-test="container-security-operator-redhat-operators-openshift-marketplace"]', - shipwrightOperator: - '[data-test="shipwright-operator-community-operators-openshift-marketplace"]', - redisOperatorCard: '[data-test="redis-operator-community-operators-openshift-marketplace"]', - amqStreams: '[data-test="amq-streams-redhat-operators-openshift-marketplace"]', - rhoas: '[data-test="rhoas-operator-community-operators-openshift-marketplace"]', - jaeger: '[data-test="jaeger-product-redhat-operators-openshift-marketplace"]', - }, - subscription: { - logo: 'h1.co-clusterserviceversion-logo__name__clusterserviceversion', - }, - installOperators: { - title: '[data-test="page-heading"] h1', - operatorsNameRow: 'div[aria-label="Installed Operators"] td:nth-child(1) h1', - noOperatorsFound: '[data-test="console-empty-state-title"]', - noOperatorsDetails: '[data-test="console-empty-state-body"]', - search: 'input[data-test-id="item-filter"]', - noOperatorFoundMessage: 'div[data-test="console-empty-state-title"]', - knativeServingLink: '[title="knativeservings.operator.knative.dev"]', - knativeEventingLink: '[title="knativeeventings.operator.knative.dev"]', - knativeKafkaLink: '[title="knativekafkas.operator.serverless.openshift.io"]', - operatorStatus: '[data-test="status-text"]', - checlusterCRLink: '[title="checlusters.org.eclipse.che"]', - shipwrightBuildLink: '[title="shipwrightbuilds.operator.shipwright.io"]', - }, - sidePane: { - install: '[data-test-id="operator-install-btn"]', - uninstall: '[data-test-id="operator-uninstall-btn"]', - }, - alertDialog: '[role="dialog"]', - warningAlert: '[aria-label="Warning Alert"]', - uninstallPopup: { - uninstall: '#confirm-action', - }, -}; diff --git a/frontend/packages/dev-console/integration-tests/support/pageObjects/quickStarts-po.ts b/frontend/packages/dev-console/integration-tests/support/pageObjects/quickStarts-po.ts deleted file mode 100644 index 9d279c6e369..00000000000 --- a/frontend/packages/dev-console/integration-tests/support/pageObjects/quickStarts-po.ts +++ /dev/null @@ -1,63 +0,0 @@ -export const quickStartsPO = { - quickStartTitle: '[data-test="page-title"]', - filterKeyword: '[aria-label="Search input"]', - statusFilter: 'button[class*="menu-toggle"]', - statusDropdown: '[aria-label="Select filter"]', - statusComplete: '[data-key="Complete"]', - emptyState: '[class*="empty-state__content"]', - clearFilter: '[data-test="clear-filter button"]', - cardStatus: '[data-test="status"]', - duration: '[data-test="duration"]', -}; - -export const quickStartSidebarPO = { - quickStartSidebar: '[data-test~="drawer"]', - quickStartSidebarBody: '[data-test~="drawer"] [data-test~="content"]', - startButton: `[data-test="Start button"]`, - nextButton: '[data-test="Next button"]', - backButton: '[data-testid="qs-drawer-back"]', - restartSideNoteAction: '[data-testid="qs-drawer-side-note-action"]', - closeButton: '[data-test="Close button"]', - closePanel: '[data-testid="qs-drawer-close"] [aria-label="Close drawer panel"] ', - yesOptionCheckInput: '[data-testid="qs-drawer-check-yes"]', - noOptionCheckInput: '[data-testid="qs-drawer-check-no"]', - clipboardAction: '[aria-label="Copy to clipboard"]', - executeAction: '[aria-label="Run in Web Terminal"]', - tooltip: '[role="tooltip"]', -}; - -export const quickStartLeaveModalPO = { - leaveModal: '[data-test="leave-quickstart"]', - leaveButton: '[data-test="leave button"]', -}; - -const quickStartDisplayNameToName = (displayName: string) => { - switch (displayName) { - case 'Get started with a sample application': { - return 'sample-application'; - } - case 'Install the OpenShift Pipelines Operator': { - return 'explore-pipelines'; - } - case 'Add health checks to your sample application': { - return 'add-healthchecks'; - } - case 'Install the OpenShift Serverless Operator': { - return 'install-serverless'; - } - case 'Install Red Hat Developer Hub (RHDH) with a Helm Chart': { - return 'rhdh-installation-via-helm'; - } - case 'Create ruby app': { - return 'copy-execute-demo'; - } - default: { - throw new Error('Option is not available'); - } - } -}; - -export function quickStartCard(quickStartDisplayName: string) { - const quickStartName = quickStartDisplayNameToName(quickStartDisplayName); - return `[id~="${quickStartName}-catalog-tile"]`; -} diff --git a/frontend/packages/dev-console/integration-tests/support/pageObjects/userPreference-po.ts b/frontend/packages/dev-console/integration-tests/support/pageObjects/userPreference-po.ts deleted file mode 100644 index 3b70f38b997..00000000000 --- a/frontend/packages/dev-console/integration-tests/support/pageObjects/userPreference-po.ts +++ /dev/null @@ -1,48 +0,0 @@ -export const userPreferencePO = { - userMenu: '[data-test="user-dropdown-toggle"]', - namespaceTypeahead: '[id="console.preferredNamespace-select-typeahead"]', - languageTab: '[data-test="tab language"]', - creteProjectButton: '[data-test="footer create-namespace-button"]', - checkboxPreferredLanguage: '[data-test="checkbox console.preferredLanguage"]', -}; - -const preferenceDropdownDisplayNameToName = (displayName: string) => { - switch (displayName) { - case 'Perspective': { - return 'Perspective'; - } - case 'Project': { - return 'Namespace'; - } - case 'Topology': { - return 'View'; - } - case 'Create/Edit resource method': { - return 'CreateEditMethod'; - } - case 'Language': { - return 'Language'; - } - case 'Resource Type': { - return 'Resource'; - } - default: { - throw new Error('Preference is not available'); - } - } -}; - -export function getTab(tabName: string) { - return `[data-test~="tab"][data-test~="${tabName.toLowerCase()}"]`; -} - -export function getPreferenceDropdown(preference: string) { - const preferenceName = preferenceDropdownDisplayNameToName(preference); - if (preference === 'Topology') { - return `[id="topology.preferred${preferenceName}"]`; - } - if (preference === 'Resource Type') { - return `[id="devconsole.preferred${preferenceName}"]`; - } - return `[id="console.preferred${preferenceName}"]`; -} diff --git a/frontend/packages/dev-console/integration-tests/support/pageObjects/vulnerability-po.ts b/frontend/packages/dev-console/integration-tests/support/pageObjects/vulnerability-po.ts deleted file mode 100644 index d05dff0592b..00000000000 --- a/frontend/packages/dev-console/integration-tests/support/pageObjects/vulnerability-po.ts +++ /dev/null @@ -1,15 +0,0 @@ -export const vulnerabilityPO = { - vulnerabilityTab: '[data-test-id="horizontal-link-Vulnerabilities"]', - vulnerabilityTable: '[aria-label="Image Manifest Vulnerabilities"]', - dropdowButton: '[data-test="console-select-menu-toggle"]', - imageVulnerabilityAlert: '[data-test="Image Vulnerabilities"]', - imageVulnerabilityPopup: '[data-test="vul popup"]', - viewAllLink: '[data-test="view-all"]', - firstVulnerabilityLink: '[data-test="vuln-0"]', - vulnerabilityType: '[aria-label="Vulnerability type"]', - detailsTab: '[data-test-id="horizontal-link-Details"]', - yamlTab: '[data-test-id="horizontal-link-YAML"]', - affectedPodsTab: '[data-test-id="horizontal-link-Affected Pods"]', - filterDropdownToggle: '[data-test-id="filter-dropdown-toggle"]', - severity: '[aria-labelledby="Severity"]', -}; diff --git a/frontend/packages/dev-console/integration-tests/support/pages/add-flow/add-page.ts b/frontend/packages/dev-console/integration-tests/support/pages/add-flow/add-page.ts deleted file mode 100644 index 1c317398520..00000000000 --- a/frontend/packages/dev-console/integration-tests/support/pages/add-flow/add-page.ts +++ /dev/null @@ -1,215 +0,0 @@ -import { detailsPage } from '../../../../../integration-tests/views/details-page'; -import { addOptions } from '../../constants/add'; -import { pageTitle } from '../../constants/pageTitle'; -import { cardTitle } from '../../pageObjects/add-flow-po'; -import { app } from '../app'; - -export const addPage = { - selectCardFromOptions: (card: addOptions | string) => { - app.waitForDocumentLoad(); - switch (card) { - case 'Import From Git': - case addOptions.ImportFromGit: - cy.byTestID('item import-from-git').click(); - app.waitForLoad(); - cy.testA11y('Import from Git Page'); - detailsPage.titleShouldContain(pageTitle.Git); - break; - case 'Deploy Image': - case addOptions.ContainerImage: - cy.byTestID('item deploy-image').click(); - app.waitForLoad(); - cy.testA11y('Deploy Page'); - detailsPage.titleShouldContain(pageTitle.ContainerImage); - break; - case 'Software Catalog': - case 'From Catalog': - case addOptions.SoftwareCatalog: - cy.byTestID('item dev-catalog').click(); - app.waitForLoad(); - detailsPage.titleShouldContain(pageTitle.SoftwareCatalog); - // cy.testA11y(pageTitle.SoftwareCatalog); - break; - case 'Database': - case addOptions.Database: - cy.byTestID('item dev-catalog-databases').click(); - app.waitForLoad(); - detailsPage.titleShouldContain(pageTitle.SoftwareCatalog); - cy.testA11y(pageTitle.SoftwareCatalog); - break; - case 'Event Source': - case addOptions.EventSource: - cy.byTestID('item knative-event-source').click(); - app.waitForLoad(); - detailsPage.titleShouldContain(pageTitle.EventSource); - cy.testA11y(pageTitle.EventSource); - break; - case 'Helm Chart': - case addOptions.HelmChart: - cy.byTestID('item helm').click({ force: true }); - app.waitForLoad(); - detailsPage.titleShouldContain(pageTitle.HelmCharts); - cy.testA11y(pageTitle.HelmCharts); - break; - case 'Operator Backed': - case addOptions.OperatorBacked: - cy.byTestID('item operator-backed').click(); - app.waitForLoad(); - detailsPage.titleShouldContain(pageTitle.OperatorBacked); - cy.testA11y(pageTitle.OperatorBacked); - break; - case 'Pipeline': - case addOptions.Pipeline: - cy.wait(3000); - cy.byTestID('item pipeline').click(); - cy.get('.odc-pipeline-builder-header__title').should( - 'have.text', - pageTitle.PipelineBuilder, - ); - app.waitForLoad(); - cy.testA11y(pageTitle.PipelineBuilder); - break; - case 'Yaml': - case addOptions.YAML: - cy.byTestID('item import-yaml').click(); - cy.get('[data-mode-id="yaml"]').should('be.visible'); - app.waitForLoad(); - cy.testA11y(pageTitle.YAML); - break; - case 'Samples': - case addOptions.Samples: - cy.byTestID('item import-from-samples').click({ force: true }); - app.waitForLoad(); - detailsPage.titleShouldContain(pageTitle.Samples); - cy.testA11y(pageTitle.Samples); - break; - case 'Channel': - case addOptions.Channel: - cy.byTestID('item knative-eventing-channel').click(); - app.waitForLoad(); - detailsPage.titleShouldContain(pageTitle.Channel); - cy.testA11y(pageTitle.Channel); - break; - case addOptions.UploadJARFile: - cy.byTestID('item upload-jar').click(); - app.waitForLoad(); - detailsPage.titleShouldContain(pageTitle.UploadJarFile); - cy.testA11y(pageTitle.UploadJarFile); - break; - case 'Broker': - case addOptions.Broker: - cy.byTestID('item knative-eventing-broker').click(); - detailsPage.titleShouldContain(pageTitle.Broker); - cy.testA11y(pageTitle.Broker); - break; - case 'Events': - case addOptions.Events: - cy.byTestID('item knative-event-type').click(); - app.waitForLoad(); - detailsPage.titleShouldContain(pageTitle.Events); - cy.testA11y(pageTitle.Events); - break; - case 'Event Sink': - case addOptions.EventSink: - cy.byTestID('item knative-event-sink').click(); - app.waitForLoad(); - detailsPage.titleShouldContain(pageTitle.EventSink); - cy.testA11y(pageTitle.EventSink); - break; - case 'Sharing': - case addOptions.Sharing: - cy.byTestID('item project-access').click(); - detailsPage.titleShouldContain(pageTitle.ProjectAccess); - // Due to Acceessibility issue below line is commented - // cy.testA11y(pageTitle.ProjectAccess); - break; - case 'Helm Chart Repositories': - case addOptions.HelmChartRepositories: - cy.byTestID('item project-helm-chart-repositories').click(); - cy.get('[data-test="form-title"]').should('have.text', pageTitle.CreateHelmChartRepository); - cy.testA11y(pageTitle.CreateHelmChartRepository); - break; - case 'Create Serverless function': - case addOptions.CreateServerlessFunction: - cy.byTestID('item create-serverless-function').click(); - app.waitForLoad(); - cy.get('[data-test="page-heading"] h1').should( - 'have.text', - pageTitle.CreateServerlessFunction, - ); - cy.testA11y(pageTitle.CreateServerlessFunction); - break; - default: - throw new Error(`Unable to find the "${card}" card on Add page`); - } - }, - verifyCard: (cardName: string) => cy.get(cardTitle).should('contain.text', cardName), - setBuildEnvField: (envKey: string, value: string) => - cy - .get(`#form-input-image-imageEnv-${envKey}-field`) - .scrollIntoView() - .should('be.visible') - .clear() - .type(value), -}; - -export const verifyAddPage = { - verifyAddPageCard: (card: addOptions | string) => { - app.waitForDocumentLoad(); - switch (card) { - case 'Git Repository': - cy.byTestID('card git-repository').should('be.visible'); - break; - case 'Software Catalog': - cy.byTestID('card developer-catalog').should('be.visible'); - break; - case 'Container images': - cy.byTestID('card container-images').should('be.visible'); - break; - case 'From Local Machine': - cy.byTestID('card local-machine').should('be.visible'); - break; - case 'Pipeline': - cy.byTestID('item pipeline').should('be.visible'); - break; - case 'Pipelines': - cy.byTestID('card pipelines').should('be.visible'); - break; - case 'Samples': - cy.byTestID('card samples').should('be.visible'); - break; - case 'Eventing': - cy.byTestID('card eventing').should('be.visible'); - break; - case 'Channel': - cy.byTestID('item knative-eventing-channel').should('be.visible'); - break; - case 'All services': - cy.byTestID('item dev-catalog').should('be.visible'); - break; - case 'Database': - cy.byTestID('item dev-catalog-databases').should('be.visible'); - break; - case 'Operator Backed': - cy.byTestID('item operator-backed').should('be.visible'); - break; - case 'Helm Chart': - cy.byTestID('item helm').should('be.visible'); - break; - case 'Event Source': - cy.byTestID('item knative-event-source').should('be.visible'); - break; - case 'Import from Git': - cy.byTestID('item import-from-git').should('be.visible'); - break; - case 'Import YAML': - cy.byTestID('item import-yaml').should('be.visible'); - break; - case 'Upload JAR file': - cy.byTestID('item upload-jar').should('be.visible'); - break; - default: - throw new Error(`Unable to find the "${card}" card on Add page`); - } - }, -}; diff --git a/frontend/packages/dev-console/integration-tests/support/pages/add-flow/add-quick-search.ts b/frontend/packages/dev-console/integration-tests/support/pages/add-flow/add-quick-search.ts deleted file mode 100644 index 4211a03ecad..00000000000 --- a/frontend/packages/dev-console/integration-tests/support/pages/add-flow/add-quick-search.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { quickSearchAddPO } from '../../pageObjects'; -import { app } from '../app'; - -export const addQuickSearch = { - selectQuickOption: (option: string, type: string) => { - cy.get(quickSearchAddPO.quickSearchListItem(option, type)).should('be.visible').click(); - }, - enterNodeName: (nodeName: string) => { - cy.get(quickSearchAddPO.quickSearchInput).clear().type(nodeName); - app.waitForDocumentLoad(); - }, -}; diff --git a/frontend/packages/dev-console/integration-tests/support/pages/add-flow/catalog-page.ts b/frontend/packages/dev-console/integration-tests/support/pages/add-flow/catalog-page.ts deleted file mode 100644 index 5606e3c921c..00000000000 --- a/frontend/packages/dev-console/integration-tests/support/pages/add-flow/catalog-page.ts +++ /dev/null @@ -1,251 +0,0 @@ -import { topologyHelper } from '@console/topology/integration-tests/support/pages/topology/topology-helper-page'; -import { detailsPage } from '../../../../../integration-tests/views/details-page'; -import { - addOptions, - catalogCards, - catalogTypes, - devNavigationMenu, - pageTitle, -} from '../../constants'; -import { cardTitle, catalogPO, helmPO } from '../../pageObjects'; -import { app, navigateTo } from '../app'; -import { addPage } from './add-page'; - -export const catalogPage = { - verifyTitle: () => detailsPage.titleShouldContain('Software Catalog'), - verifyPageTitle: (page: string) => detailsPage.titleShouldContain(page), - isCheckBoxSelected: (type: string) => cy.get(`input[title="${type}"]`).should('be.checked'), - isCardsDisplayed: () => { - app.waitForLoad(); - cy.get(catalogPO.card).should('be.visible'); - }, - search: (keyword: string) => { - cy.get('.skeleton-catalog--grid').should('not.exist'); - // Split clear/type so Cypress re-queries the DOM between operations. - // Under React 18 createRoot, clear() can trigger a re-render that - // replaces the input node, detaching it before type() runs. - cy.get(catalogPO.search).clear(); - cy.get(catalogPO.search).type(keyword); - }, - verifyDialog: () => cy.get(catalogPO.sidePane.dialog).should('be.visible'), - verifyCreateHelmReleasePage: () => - cy.get('form h1').eq(0).should('have.text', pageTitle.CreateHelmRelease), - verifySelectOperatorBackedCard: (cardName: string) => { - cy.byTestID(`OperatorBackedService-${cardName}`).first().click(); - }, - verifyCreateOperatorBackedPage: (title: string) => - detailsPage.titleShouldContain(`Create ${title}`), - enterOperatorBackedName: (OperatorBackedName: string) => - cy.get(catalogPO.operatorBacked.name).clear().type(OperatorBackedName), - clickButtonOnCatalogPageSidePane: () => { - catalogPage.verifyDialog(); - cy.get(catalogPO.sidePane.instantiateTemplate).click({ force: true }); - }, - clickOnCancelButton: () => cy.byButtonText('Cancel').click(), - selectCatalogType: (type: catalogTypes) => { - switch (type) { - case catalogTypes.OperatorBacked: - case 'Operator Backed': { - cy.get(catalogPO.catalogTypes.operatorBacked).click(); - break; - } - case catalogTypes.HelmCharts: - case 'Helm Charts': { - cy.get(catalogPO.catalogTypes.helmCharts).click(); - break; - } - case catalogTypes.BuilderImage: { - cy.get(catalogPO.catalogTypes.builderImage).click(); - break; - } - case catalogTypes.Template: { - cy.get(catalogPO.catalogTypes.template).click(); - break; - } - case catalogTypes.ServiceClass: - case 'Service Class': { - cy.get(catalogPO.catalogTypes.serviceClass).click(); - break; - } - case catalogTypes.ManagedServices: - case 'Managed Services': { - cy.get(catalogPO.catalogTypes.managedServices).click(); - break; - } - case catalogTypes.EventSources: - case 'Event Sources': { - cy.get(catalogPO.catalogTypes.eventSources).click(); - break; - } - case catalogTypes.EventSinks: - case 'Event Sinks': { - cy.get(catalogPO.catalogTypes.eventSinks).click(); - break; - } - default: { - throw new Error('Card is not available in Catalog'); - } - } - catalogPage.verifyPageTitle(type); - }, - selectTemplateCategory: (templateCategoryTitle: string) => { - const selector = - catalogPO.catalogCategoriesByTitle[ - templateCategoryTitle as keyof typeof catalogPO.catalogCategoriesByTitle - ]; - if (!selector) { - throw new Error(`Selector not found for Template category "${templateCategoryTitle}"`); - } - cy.get(selector).scrollIntoView(); - cy.get(selector).click(); - cy.log(`Select Template category ${templateCategoryTitle}`); - }, - selectKnativeServingCard: () => - cy.get(cardTitle, { timeout: 40000 }).contains('Knative Serving').click(), - selectHelmChartCard: (cardName: string) => cy.byTestID(`HelmChart-${cardName}`).first().click(), - clickOnInstallButton: () => { - cy.get(catalogPO.installHelmChart.create).click(); - cy.get('.pf-v6-c-button__progress').should('not.exist'); - cy.get('.co-m-loader', { timeout: 40000 }).should('not.exist'); - }, - enterReleaseName: (releaseName: string) => - cy.get(catalogPO.installHelmChart.releaseName).clear().type(releaseName), - selectCardInCatalog: (card: catalogCards | string) => { - cy.get('.skeleton-catalog--grid').should('not.exist'); - cy.byLegacyTestID('perspective-switcher-toggle').click(); - switch (card) { - case catalogCards.mariaDB || 'MariaDB': { - cy.get(catalogPO.cards.mariaDBTemplate).first().click(); - break; - } - case catalogCards.cakePhp || 'CakePHP + MySQL': { - cy.get(catalogPO.cards.phpCakeTemplate).first().click(); - break; - } - case catalogCards.nodeJs || 'Node.js': { - cy.get(catalogPO.cards.nodeJsBuilderImage).first().click(); - break; - } - case catalogCards.nodeJsPostgreSQL: { - cy.get(catalogPO.cards.nodejsPostgreSQL).first().click(); - break; - } - case catalogCards.apacheHTTPServer: { - cy.get(catalogPO.cards.apacheHTTPServer).first().click(); - break; - } - case catalogCards.nginxHTTPServer: { - cy.get(catalogPO.cards.nginxHTTPServer).first().click(); - break; - } - case catalogCards.knativeKafka: { - cy.get(catalogPO.cards.knativeKafka).first().click(); - break; - } - case catalogCards.jenkins: { - cy.get(catalogPO.cards.jenkinsTemplate).first().click(); - break; - } - case 'Nodejs': { - cy.get(catalogPO.cards.helmNodejs).first().click(); - break; - } - default: { - throw new Error(`${card} card is not available in Catalog`); - } - } - }, - verifyCardName: (partialCardName: string) => { - cy.get(cardTitle).contains(partialCardName, { matchCase: false }); - }, - verifyChartListAvailable: () => { - cy.get(catalogPO.cardList) - .should('exist') - .find(catalogPO.cardHeader) - .its('length') - .should('be.greaterThan', 0); - }, - verifyHelmChartCardsAvailable: () => { - cy.get(catalogPO.cardList) - .should('exist') - .find(catalogPO.cardHeader) - .each(($el) => { - expect('Helm Charts').toContain($el.text()); - }); - }, - verifyChartRepoAvailable: (helmRepo: string) => { - const repo = helmRepo - .replace(/([A-Z])/g, ' $1') - .replace(/\s+/g, '-') - .toLowerCase() - .trim(); - cy.get(catalogPO.chartRepositoryGroup).within(() => { - cy.get(`[data-test="chartRepositoryTitle${repo}"]`).should('be.visible'); - }); - }, - verifyChartRepoNotAvailable: (helmRepo: string) => { - const repo = helmRepo - .replace(/([A-Z])/g, ' $1') - .replace(/\s+/g, '-') - .toLowerCase() - .trim(); - cy.get(catalogPO.chartRepositoryGroup).within(() => { - cy.get(`[data-test="chartRepositoryTitle${repo}"]`).should('not.exist'); - }); - }, - verifyFilterByKeywordField: () => { - cy.get('[data-test="search-catalog"] input').should('be.visible'); - }, - verifySortDropdown: () => { - cy.get(catalogPO.aToz).should('be.visible'); - cy.get(catalogPO.zToA).should('be.visible'); - }, - createHelmChart: (releaseName: string, helmChartName: string) => { - navigateTo(devNavigationMenu.Add); - app.waitForDocumentLoad(); - addPage.verifyCard('Helm Chart'); - addPage.selectCardFromOptions(addOptions.HelmChart); - detailsPage.titleShouldContain(pageTitle.HelmCharts); - catalogPage.isCardsDisplayed(); - catalogPage.search(helmChartName); - catalogPage.selectHelmChartCard(helmChartName); - catalogPage.verifyDialog(); - catalogPage.clickButtonOnCatalogPageSidePane(); - catalogPage.verifyCreateHelmReleasePage(); - catalogPage.enterReleaseName(releaseName); - catalogPage.clickOnInstallButton(); - app.waitForDocumentLoad(); - topologyHelper.verifyWorkloadInTopologyPage(releaseName); - }, - verifyCategories: () => { - const categories = ['All items', 'CI/CD', 'Databases', 'Languages', 'Middleware', 'Other']; - cy.get('ul.vertical-tabs-pf.restrict-tabs li.vertical-tabs-pf-tab.shown >a').each(($el) => { - expect(categories).toContain($el.text()); - }); - }, - verifyTypes: (category: string) => { - cy.get(`[data-test="tab ${category}"]`); - }, - verifyCardTypeOfAllCards: (cardType: string) => { - cy.get(catalogPO.card).each(($card) => { - expect($card.find(catalogPO.cardBadge).text()).toContain(cardType); - }); - }, -}; - -export const catalogInstallPageObj = { - selectHelmChartVersion: (version: string) => cy.dropdownSwitchTo(version), - verifyChartVersionDropdownAvailable: () => cy.isDropdownVisible(), - selectChangeOfChartVersionDialog: (option: string) => { - if (option === 'Proceed') { - cy.get('#confirm-action').click(); - } else { - cy.byLegacyTestID('modal-cancel-action').click(); - } - }, - selectHelmChartCard: (cardName: string) => cy.dropdownSwitchTo(cardName), -}; - -export const sidePaneObj = { - verifyChartVersion: () => cy.get(helmPO.sidePane.chartVersion).eq(0).should('have.text', '0.2.1'), -}; diff --git a/frontend/packages/dev-console/integration-tests/support/pages/add-flow/channel-page.ts b/frontend/packages/dev-console/integration-tests/support/pages/add-flow/channel-page.ts deleted file mode 100644 index afcc4443361..00000000000 --- a/frontend/packages/dev-console/integration-tests/support/pages/add-flow/channel-page.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { channelPO } from '../../pageObjects/add-flow-po'; - -export const channelPage = { - selectChannelType: (channelType: string = 'InMemoryChannel') => { - cy.get(channelPO.channelType).click(); - cy.get('[data-test-dropdown-menu="messaging.knative.dev~v1~InMemoryChannel"]').click(); - cy.log(`"${channelType}" is selected`); - }, - enterChannelName: (channelName: string) => - cy.get(channelPO.channelName).clear().type(channelName), - enterAppName: (appName: string) => { - cy.get(channelPO.appName).then(($el) => { - if ($el.prop('tagName').includes('button')) { - cy.get(channelPO.appName).click(); - cy.get(`li #${appName}-link`).click(); - } else if ($el.prop('tagName').includes('input')) { - cy.get(channelPO.appName).scrollIntoView().invoke('val').should('not.be.empty'); - cy.get(channelPO.appName).clear().type(appName).should('have.value', appName); - } else { - cy.log(`App name doesn't contain button or input tags`); - } - }); - }, -}; diff --git a/frontend/packages/dev-console/integration-tests/support/pages/add-flow/container-image-page.ts b/frontend/packages/dev-console/integration-tests/support/pages/add-flow/container-image-page.ts deleted file mode 100644 index 6f889d54419..00000000000 --- a/frontend/packages/dev-console/integration-tests/support/pages/add-flow/container-image-page.ts +++ /dev/null @@ -1,79 +0,0 @@ -import { topologyPage } from '@console/topology/integration-tests/support/pages/topology'; -import { addOptions, messages } from '../../constants'; -import { containerImagePO } from '../../pageObjects'; -import { addPage } from './add-page'; -import { gitPage } from './git-page'; - -export const containerImagePage = { - enterExternalRegistryImageName: (imageName: string) => { - // Set the value atomically via native setter to avoid React 18 createRoot - // concurrent rendering stealing focus during character-by-character typing. - cy.get(containerImagePO.imageSection.externalRegistry.imageName) - .should('be.visible') - .then(($input) => { - const nativeInputValueSetter = Object.getOwnPropertyDescriptor( - window.HTMLInputElement.prototype, - 'value', - ).set; - nativeInputValueSetter.call($input[0], imageName); - $input[0].dispatchEvent(new Event('input', { bubbles: true })); - }) - .should('have.value', imageName); - containerImagePage.verifyValidatedMessage(); - }, - selectProject: (projectName: string) => - cy.selectValueFromAutoCompleteDropDown( - containerImagePO.imageSection.internalRegistry.selectProject, - projectName, - ), - selectImageStream: (imageStreamName: string) => - cy.selectValueFromAutoCompleteDropDown( - containerImagePO.imageSection.internalRegistry.imageStream, - imageStreamName, - ), - selectTag: (tag: string) => - cy.selectValueFromAutoCompleteDropDown(containerImagePO.imageSection.internalRegistry.tag, tag), - selectInternalImageRegistry: () => - cy.get(containerImagePO.imageSection.internalRegistryImageCheckBox).check(), - verifyValidatedMessage: () => - cy - .get(containerImagePO.imageSection.externalRegistry.validatedMessage) - .should('include.text', messages.addFlow.gitUrlValidated), - enterAppName: (gitUrl: string) => { - cy.byLegacyTestID('application-form-app-name').clear().type(gitUrl); - }, - selectRunTimeIcon: (runTimeIcon: string) => { - cy.selectValueFromAutoCompleteDropDown( - containerImagePO.imageSection.runTimeIconDropdown, - runTimeIcon, - ); - }, - selectCustomIcon: (url: string) => { - cy.get(containerImagePO.imageSection.addCustomIcon).click(); - // Wait for the modal to open and the URL input to be enabled (yup async validation) - cy.get(containerImagePO.imageSection.customIconModal.url) - .should('be.visible') - .and('not.be.disabled'); - cy.get(containerImagePO.imageSection.customIconModal.url).type(url); - cy.get(containerImagePO.imageSection.customIconModal.confirmButton).click(); - }, - selectOrCreateApplication: (appName: string) => { - gitPage.enterAppName(appName); - }, - createContainerImageFromExternalRegistry: ( - externalRegistryName: string, - componentName = 'hello-openshift', - appName = 'ext-app', - runTimeIcon = 'fedora', - resourceType = 'deployment', - ) => { - addPage.selectCardFromOptions(addOptions.ContainerImage); - containerImagePage.enterExternalRegistryImageName(externalRegistryName); - containerImagePage.selectRunTimeIcon(runTimeIcon); - containerImagePage.selectOrCreateApplication(appName); - gitPage.enterComponentName(componentName); - gitPage.selectResource(resourceType); - gitPage.clickCreate(); - topologyPage.verifyWorkloadInTopologyPage(componentName); - }, -}; diff --git a/frontend/packages/dev-console/integration-tests/support/pages/add-flow/dev-file-page.ts b/frontend/packages/dev-console/integration-tests/support/pages/add-flow/dev-file-page.ts deleted file mode 100644 index 6d18d5ff648..00000000000 --- a/frontend/packages/dev-console/integration-tests/support/pages/add-flow/dev-file-page.ts +++ /dev/null @@ -1,67 +0,0 @@ -import type { authenticationType } from '../../constants'; -import { messages } from '../../constants'; -import { devFilePO, createSourceSecret, gitPO } from '../../pageObjects'; - -export const devFilePage = { - clickTrySample: () => cy.get(devFilePO.form).find('button').first().click(), - - enterSourceSecret: (secretName: string, type: authenticationType) => { - cy.get(devFilePO.form).find('button').contains('Show advanced Git options').click(); - cy.get(devFilePO.formFields.advancedGitOptions.sourceSecret).click(); - cy.get('[data-test-dropdown-menu="create-source-secret"]').click(); - cy.get(createSourceSecret.secretName).type(secretName); - cy.get(createSourceSecret.authenticationType).click(); - if (type === 'SSHKey') { - cy.get('[data-test-dropdown-menu="kubernetes.io/ssh-auth"]').click(); - cy.get(createSourceSecret.sshKey.sshPrivateKey).type(''); - } else { - cy.get('[data-test-dropdown-menu="kubernetes.io/basic-auth"]').click(); - cy.get(createSourceSecret.basicAuthentication.userName).type(''); - cy.get(createSourceSecret.basicAuthentication.password).type(''); - } - }, - - verifyValidatedMessage: (gitUrl: string) => { - cy.get(gitPO.gitSection.validatedMessage).should( - 'not.have.text', - messages.addFlow.gitUrlDevfileMessage, - ); - cy.get(gitPO.gitSection.validatedMessage).should('not.have.text', 'Validating...'); - if (/(github.com|gitlab.com|bitbucket.com)+/g.test(gitUrl)) { - cy.get('body').then(($body) => { - if ( - $body - .find(gitPO.gitSection.validatedMessage) - .text() - .includes(messages.addFlow.rateLimitExceeded) - ) { - // Remove .git suffix and remove all parts before the last path - const componentName = gitUrl.replace(/\.git$/, '').replace(/^.*[\\\\/]/, ''); - cy.log( - `Git Rate limit exceeded for url ${gitUrl}, fill component name "${componentName}" based on the URL to continue tests.`, - ); - cy.get(gitPO.nodeName).clear(); - cy.get(gitPO.nodeName).type(componentName); - } else if ( - $body - .find(gitPO.gitSection.validatedMessage) - .text() - .includes(messages.addFlow.privateGitRepoMessage) || - $body.find('.warning').length - ) { - cy.log(`Issue with git url ${gitUrl}, maybe a private repo url. Please check it`); - } - }); - cy.get(gitPO.gitSection.validatedMessage).should('include.text', 'Validated'); - } else { - cy.get('body').then(($body) => { - if ( - $body.find('.warning').length || - $body.text().includes(messages.addFlow.nonGitRepoMessage) - ) { - cy.log(`Not a git url ${gitUrl}. Please check it`); - } - }); - } - }, -}; diff --git a/frontend/packages/dev-console/integration-tests/support/pages/add-flow/dockerfile-page.ts b/frontend/packages/dev-console/integration-tests/support/pages/add-flow/dockerfile-page.ts deleted file mode 100644 index a14972204e9..00000000000 --- a/frontend/packages/dev-console/integration-tests/support/pages/add-flow/dockerfile-page.ts +++ /dev/null @@ -1,8 +0,0 @@ -export const dockerfilePage = { - enterAppName: (appName: string) => { - cy.byLegacyTestID('application-form-app-input').clear().type(appName); - }, - enterName: (name: string) => { - cy.byLegacyTestID('application-form-app-name').clear().type(name); - }, -}; diff --git a/frontend/packages/dev-console/integration-tests/support/pages/add-flow/event-sink-page.ts b/frontend/packages/dev-console/integration-tests/support/pages/add-flow/event-sink-page.ts deleted file mode 100644 index 3ebda66e7a9..00000000000 --- a/frontend/packages/dev-console/integration-tests/support/pages/add-flow/event-sink-page.ts +++ /dev/null @@ -1,28 +0,0 @@ -import type { eventSourceCards } from '../../constants'; -import { catalogPO, eventSinkPO } from '../../pageObjects'; - -export const eventSinkPage = { - search: (type: string) => cy.get(eventSinkPO.search).type(type), - verifyEventSinkType: (eventSinkName: string) => { - cy.byTestID(`EventSink-${eventSinkName}`).should('be.visible'); - }, - clickEventSourceType: (eventSinkName: string | eventSourceCards) => { - cy.byTestID(`EventSink-${eventSinkName}`).should('be.visible').click(); - }, - clickCreateEventSinkOnSidePane: () => { - cy.get(catalogPO.sidePane.createApplication).click({ force: true }); - }, -}; -export const createEventSinkPage = { - selectOutputTargetName: (outputTargetName: string) => { - cy.get('#form-ns-dropdown-formData-source-key-field') - .scrollIntoView() - .should('be.visible') - .click(); - cy.byTestID('console-select-menu-list') - .find('li') - .contains(outputTargetName) - .should('be.visible') - .click(); - }, -}; diff --git a/frontend/packages/dev-console/integration-tests/support/pages/add-flow/event-source-page.ts b/frontend/packages/dev-console/integration-tests/support/pages/add-flow/event-source-page.ts deleted file mode 100644 index 31bb2e1c7b2..00000000000 --- a/frontend/packages/dev-console/integration-tests/support/pages/add-flow/event-source-page.ts +++ /dev/null @@ -1,143 +0,0 @@ -import { topologyPage } from '@console/topology/integration-tests/support/pages/topology'; -import { addOptions, devNavigationMenu, eventSourceCards } from '../../constants'; -import { catalogPO, eventSourcePO, topologyPO } from '../../pageObjects'; -import { createForm, navigateTo } from '../app'; -import { addPage } from './add-page'; - -export const eventSourcesPage = { - search: (type: string) => cy.get(eventSourcePO.search).type(type), - verifyEventSourceType: (eventSourceName: string) => { - cy.byTestID(`EventSource-${eventSourceName}`).should('be.visible'); - }, - clickEventSourceType: (eventSourceName: string | eventSourceCards) => { - cy.byTestID(`EventSource-${eventSourceName}`).scrollIntoView().should('be.visible').click(); - }, - clickCreateEventSourceOnSidePane: () => { - cy.get(catalogPO.sidePane.createApplication).click({ force: true }); - }, -}; -export const createEventSourcePage = { - enterEventSourceName: (eventSourceName: string) => - cy.get(eventSourcePO.sinkBinding.name).clear().type(eventSourceName), - enterApiVersion: (apiVersion: string) => - cy.get(eventSourcePO.sinkBinding.apiVersion).clear().type(apiVersion), - enterKind: (kind: string) => cy.get(eventSourcePO.sinkBinding.kind).clear().type(kind), - selectServiceType: (serviceAccountName: string = 'default') => { - cy.selectByAutoCompleteDropDownText( - eventSourcePO.apiServerSource.serviceAccountName, - serviceAccountName, - ); - }, - selectKnativeService: (knativeService: string) => { - cy.get(eventSourcePO.sinkBinding.sink.resource.resourceDropdown).click(); - cy.get(`[id*=${knativeService}-link]`).click(); - }, - selectMode: (mode: string) => { - cy.get(eventSourcePO.apiServerSource.mode).click(); - cy.get(`[data-test-dropdown-menu="${mode}"]`).click(); - }, - enterURI: (uri: string) => { - cy.get(eventSourcePO.sinkBinding.sink.uri.uriName).type(uri); - }, - selectSinkOption: (sinkOption: string) => { - if (sinkOption === 'URI') { - cy.get(eventSourcePO.sinkBinding.sink.uriRadioButton).click(); - } else if (sinkOption === 'Resource') { - cy.get(eventSourcePO.sinkBinding.sink.resourceRadioButton).click(); - } - }, - createSinkBinding: ( - eventSourceName: string, - knativeServiceName: string = 'nodejs-ex-git', - apiVersion: string = 'batch/v1', - kind: string = 'Job', - ) => { - addPage.selectCardFromOptions(addOptions.EventSource); - eventSourcesPage.clickEventSourceType(eventSourceCards.SinkBinding); - eventSourcesPage.clickCreateEventSourceOnSidePane(); - createEventSourcePage.enterApiVersion(apiVersion); - createEventSourcePage.enterKind(kind); - createEventSourcePage.selectSinkOption('Resource'); - createEventSourcePage.selectKnativeService(knativeServiceName); - createEventSourcePage.enterEventSourceName(eventSourceName); - createForm.clickCreate(); - topologyPage.verifyWorkloadInTopologyPage(eventSourceName); - }, - createEventSource: ( - eventSourceName: string | eventSourceCards, - apiVersion: string = 'batch/v1', - kind: string = 'Job', - knativeServiceName: string = 'nodejs-ex-git', - ) => { - if (eventSourceName === eventSourceCards.SinkBinding) { - createEventSourcePage.createSinkBinding( - eventSourceCards.SinkBinding, - apiVersion, - kind, - knativeServiceName, - ); - } else { - addPage.selectCardFromOptions(addOptions.EventSource); - eventSourcesPage.clickEventSourceType(eventSourceName); - createEventSourcePage.enterApiVersion(apiVersion); - createEventSourcePage.enterKind(kind); - createForm.clickCreate(); - topologyPage.verifyWorkloadInTopologyPage(eventSourceName); - cy.log(`${eventSourceName} event source created`); - } - }, - createSinkBindingIfNotExistsOnTopologyPage: ( - eventSourceName: string, - knativeServiceName: string = 'nodejs-ex-git', - apiVersion: string = 'batch/v1', - kind: string = 'Job', - ) => { - navigateTo(devNavigationMenu.Topology); - topologyPage.waitForLoad(); - cy.get('body').then(($body) => { - if ($body.find(topologyPO.emptyStateIcon).length) { - navigateTo(devNavigationMenu.Add); - createEventSourcePage.createSinkBinding( - eventSourceName, - knativeServiceName, - apiVersion, - kind, - ); - topologyPage.verifyWorkloadInTopologyPage(eventSourceName); - } else { - topologyPage.search(eventSourceName); - cy.get('body').then(($node) => { - if ($node.find(topologyPO.highlightNode).length) { - cy.log(`Event Source: "${eventSourceName}" is already available`); - } else { - navigateTo(devNavigationMenu.Add); - createEventSourcePage.createSinkBinding( - eventSourceName, - knativeServiceName, - apiVersion, - kind, - ); - topologyPage.verifyWorkloadInTopologyPage(eventSourceName); - } - }); - } - }); - }, - createSinkBindingWithURI: ( - eventSourceName: string, - uri: string = 'http://cluster.example.com/svc', - apiVersion: string = 'batch/v1', - kind: string = 'Job', - ) => { - addPage.selectCardFromOptions(addOptions.EventSource); - eventSourcesPage.clickEventSourceType(eventSourceCards.SinkBinding); - eventSourcesPage.clickCreateEventSourceOnSidePane(); - createEventSourcePage.enterApiVersion(apiVersion); - createEventSourcePage.enterKind(kind); - createEventSourcePage.selectSinkOption('URI'); - createEventSourcePage.enterURI(uri); - createEventSourcePage.enterEventSourceName(eventSourceName); - createForm.clickCreate(); - topologyPage.verifyWorkloadInTopologyPage(eventSourceName); - }, -}; diff --git a/frontend/packages/dev-console/integration-tests/support/pages/add-flow/events-page.ts b/frontend/packages/dev-console/integration-tests/support/pages/add-flow/events-page.ts deleted file mode 100644 index f9137936644..00000000000 --- a/frontend/packages/dev-console/integration-tests/support/pages/add-flow/events-page.ts +++ /dev/null @@ -1,40 +0,0 @@ -import { catalogPO, eventsPO, topologyPO } from '../../pageObjects'; - -export const eventsPage = { - search: (type: string) => cy.get(eventsPO.search).type(type), - clickEventType: (eventName: string) => { - cy.byTestID(`Events-${eventName}`).should('be.visible').click(); - }, - clickSubscribeOnSidePane: () => { - cy.get(catalogPO.sidePane.createApplication).click({ force: true }); - }, - verifySubscribeForm: () => { - cy.get(eventsPO.pageTitle).should('have.text', 'Subscribe'); - }, - enterTriggerName: (name: string) => { - cy.get(eventsPO.nameField).clear(); - cy.get(eventsPO.nameField).type(name).should('have.value', name); - }, - selectSubscriber: (subscriberName: string) => { - cy.get(eventsPO.subscriberDropDown).click(); - cy.get(topologyPO.graph.subscriber.filterItemLink).contains(subscriberName).click(); - }, - addAttribute: (name: string, value: string) => { - cy.get(eventsPO.addMore).click(); - // Find the input field that doesnot have any value - cy.get(eventsPO.attributeName).each(($el) => { - if ($el.val() === '') { - cy.wrap($el).type(name); - } - }); - - cy.get(eventsPO.attributeValue).each(($el) => { - if ($el.val() === '') { - cy.wrap($el).type(value); - } - }); - }, - clickSubscribeButton: () => { - cy.get(eventsPO.subscribeButton).click(); - }, -}; diff --git a/frontend/packages/dev-console/integration-tests/support/pages/add-flow/git-page.ts b/frontend/packages/dev-console/integration-tests/support/pages/add-flow/git-page.ts deleted file mode 100644 index 0316e19a7ba..00000000000 --- a/frontend/packages/dev-console/integration-tests/support/pages/add-flow/git-page.ts +++ /dev/null @@ -1,476 +0,0 @@ -import { getResponseMocks, gitImportRepos } from '../../../testData/git-import/repos'; -import { gitAdvancedOptions, buildConfigOptions, builderImages, messages } from '../../constants'; -import { gitPO } from '../../pageObjects/add-flow-po'; -import { app } from '../app'; - -export const gitPage = { - unselectRoute: () => cy.get(gitPO.advancedOptions.createRoute).uncheck(), - verifyNoWorkLoadsText: (text: string) => - cy.get(gitPO.noWorkLoadsText).should('contain.text', text), - verifyPipelinesSection: () => { - cy.get('.odc-namespaced-page__content').scrollTo('bottom', { ensureScrollable: false }); - cy.get(gitPO.sectionTitle).contains('Pipelines').should('be.visible'); - }, - verifyPipelineInfoMessage: (message: string) => { - cy.get(gitPO.pipeline.infoMessage).should('contain.text', `Info alert:${message}`); - }, - enterGitUrl: (gitUrl: string) => { - const shortUrl = gitUrl.endsWith('.git') ? gitUrl.substring(0, gitUrl.length - 4) : gitUrl; - const repository = gitImportRepos.find((repo) => repo.url === shortUrl); - - // mock the github requests for the frequently used repositories to avoid rate limits - if (repository) { - const urlSegments = repository.url.split('/'); - const organization = urlSegments[urlSegments.length - 2]; - const name = urlSegments[urlSegments.length - 1]; - const apiBaseUrl = `https://api.github.com/repos/${organization}/${name}`; - const responses = getResponseMocks(repository); - - cy.intercept('GET', apiBaseUrl, { - statusCode: 200, - body: responses.repoResponse, - }).as('getRepo'); - - cy.intercept('GET', `${apiBaseUrl}/contents/`, { - statusCode: 200, - body: responses.contentsResponse, - }).as('getContents'); - - cy.intercept('GET', `${apiBaseUrl}/contents//package.json`, { - statusCode: responses.packageResponse ? 200 : 404, - body: responses.packageResponse, - }).as('getPackage'); - - cy.intercept('POST', '/api/devfile/', { - statusCode: responses.devFileResources ? 200 : 404, - body: responses.devFileResources, - }).as('getDevfileResources'); - - cy.intercept('GET', `${apiBaseUrl}/contents//func.yaml`, { - statusCode: responses.funcJson ? 200 : 404, - body: responses.funcJson, - }).as('getFuncJson'); - } - - cy.get(gitPO.gitRepoUrl).clear().type(gitUrl); - - if (repository) { - const responses = getResponseMocks(repository); - cy.wait( - responses.packageResponse - ? ['@getRepo', '@getContents', '@getPackage'] - : ['@getRepo', '@getContents'], - ); - } - app.waitForDocumentLoad(); - }, - verifyPipelineOption: () => { - cy.get(gitPO.pipeline.buildDropdown).scrollIntoView().click(); - cy.get(gitPO.pipeline.addPipeline).should('be.visible'); - }, - selectPipeline: (pipelineName: string) => { - cy.get(gitPO.pipeline.pipelineDropdown).scrollIntoView().click(); - cy.get(`#${pipelineName}-link`).should('be.visible').click(); - }, - enterAppName: (appName: string) => { - cy.get('body').then(($body) => { - if ($body.find('#form-input-application-name-field').length !== 0) { - cy.get('#form-input-application-name-field') - .scrollIntoView() - .clear() - .should('not.have.value'); - cy.get('#form-input-application-name-field').type(appName).should('have.value', appName); - cy.log(`Application Name "${appName}" is created`); - } else if ($body.find('#form-dropdown-application-name-field').length !== 0) { - cy.get(gitPO.appName).click(); - cy.get('[data-test="console-select-search-input"]').type(appName); - cy.get('[data-test="console-select-menu-list"]').then(($el) => { - if ($el.find(`[data-test-dropdown-menu="${appName}"]`).length === 0) { - cy.byTestDropDownMenu('#CREATE_APPLICATION_KEY#').click(); - cy.get('#form-input-application-name-field') - .clear() - .type(appName) - .should('have.value', appName); - } else { - cy.get(`li #${appName}-link`).click(); - cy.log(`Application Name "${appName}" is selected`); - } - }); - } - }); - }, - verifyAppName: (appName: string) => { - cy.get(gitPO.appName).then(($el) => { - if ($el.prop('tagName').includes('button')) { - cy.get(gitPO.appName).find('span').should('contain.text', appName); - } else if ($el.prop('tagName').includes('input')) { - cy.get(gitPO.appName).should('have.value', appName); - } else { - cy.log(`App name doesn't contain button or input tags`); - } - }); - // cy.get(gitPO.appName).should('have.value', nodeName) - }, - editAppName: (newAppName: string) => { - cy.get(gitPO.appName).click(); - cy.get(gitPO.createNewApp).first().click(); - cy.get(gitPO.newAppName).clear().type(newAppName); - }, - enterComponentName: (name: string) => { - app.waitForLoad(); - cy.get(gitPO.nodeName).scrollIntoView().invoke('val').should('not.be.empty'); - cy.wait(2000); - cy.get(gitPO.nodeName).clear(); - cy.get(gitPO.nodeName).type(name).should('have.value', name); - }, - enterWorkloadName: (name: string) => { - cy.get(gitPO.nodeName).clear(); - cy.get(gitPO.nodeName).type(name).should('have.value', name); - }, - verifyNodeName: (componentName: string) => - cy.get(gitPO.nodeName).should('have.value', componentName), - selectBuildOption: (buildOption: string) => { - cy.get(gitPO.buildsDropdown).scrollIntoView().click(); - switch (buildOption) { - case 'Builds for Openshift': - case 'Shipwright': - cy.get(gitPO.buildOptions.buildsForOpenshift).scrollIntoView().click(); - break; - case 'BuildConfig': - case 'Builds': - cy.get(gitPO.buildOptions.buildConfig).scrollIntoView().click(); - break; - case 'Build using pipelines': - case 'Pipelines': - cy.get(gitPO.buildOptions.buildUsingPipelines).scrollIntoView().click(); - break; - default: - throw new Error('Build option is not available'); - } - cy.log(`Build option "${buildOption}" is selected`); - }, - selectClusterBuildStrategy: (clusterBuildStrategy: string) => { - cy.get(gitPO.cbsDropdown).scrollIntoView().click(); - switch (clusterBuildStrategy) { - case 'buildah': - case 'Buildah': - cy.get(gitPO.clusterBuildStrategies.buildah).scrollIntoView().click(); - break; - case 'S2I': - case 'Source-to-Image': - cy.get(gitPO.clusterBuildStrategies.s2i).scrollIntoView().click(); - break; - default: - throw new Error('Cluster Build Strategy is not available'); - } - cy.log(`Cluster Build Strategy "${clusterBuildStrategy}" is selected`); - }, - selectResource: (resource: string = 'deployment') => { - cy.get(gitPO.resourcesDropdown).scrollIntoView().click(); - switch (resource) { - case 'deployment': - case 'Deployment': - cy.get(gitPO.resources.deployment).scrollIntoView().click(); - break; - case 'deployment config': - case 'Deployment Config': - case 'DeploymentConfig': - cy.get(gitPO.resources.deploymentConfig).scrollIntoView().click(); - break; - case 'Knative': - case 'Knative Service': - case 'Serverless Deployment': - cy.get(gitPO.resources.knative).scrollIntoView().click(); - break; - default: - throw new Error('Resource option is not available'); - } - cy.log(`Resource type "${resource}" is selected`); - }, - selectGitType: (gitType: string) => { - switch (gitType) { - case 'GitHub': - cy.get(gitPO.gitType.github).scrollIntoView().click(); - break; - case 'GitLab': - cy.get(gitPO.gitType.gitlab).scrollIntoView().click(); - break; - case 'Bitbucket': - cy.get(gitPO.gitType.bitbucket).scrollIntoView().click(); - break; - default: - throw new Error('Git type is not available'); - break; - } - cy.wait(10000); - cy.log(`Git type "${gitType}" is selected`); - }, - selectBuilderImage: (builderImage: string) => { - switch (builderImage) { - case builderImages.NodeJs: - cy.get(gitPO.builderImages.nodejs).scrollIntoView().click(); - break; - case builderImages.PHP: - cy.get(gitPO.builderImages.php).scrollIntoView().click(); - break; - case builderImages.Python: - cy.get(gitPO.builderImages.python).scrollIntoView().click(); - break; - case builderImages.Ruby: - cy.get(gitPO.builderImages.ruby).scrollIntoView().click(); - break; - case builderImages.Go: - cy.get(gitPO.builderImages.go).scrollIntoView().click(); - break; - case builderImages.Java: - cy.get(gitPO.builderImages.java).scrollIntoView().click(); - break; - case builderImages.Perl: - cy.get(gitPO.builderImages.perl).scrollIntoView().click(); - break; - default: - throw new Error('Builder image is not available'); - break; - } - }, - enterSecret: (secret: string) => { - cy.get('#form-input-pac-repository-webhook-token-field').clear().type(secret); - }, - clickGenerateWebhookSecret: () => { - cy.byButtonText('Generate').click(); - }, - selectAdvancedOptions: (opt: gitAdvancedOptions) => { - switch (opt) { - case gitAdvancedOptions.Routing: - cy.byButtonText('Routing').click(); - break; - case gitAdvancedOptions.BuildConfig: - cy.byButtonText('Build Configuration').click(); - break; - case gitAdvancedOptions.Deployment: - cy.byButtonText('Deployment').click(); - break; - case gitAdvancedOptions.Scaling: - cy.byButtonText('Scaling').click(); - break; - case gitAdvancedOptions.ResourceLimits: - cy.byButtonText('Resource Limits').click(); - break; - case gitAdvancedOptions.Labels: - cy.byButtonText('Labels').click(); - break; - case gitAdvancedOptions.HealthChecks: - cy.byButtonText('Health Checks').click(); - break; - case gitAdvancedOptions.Resources: - cy.byButtonText('Resource type').click(); - break; - default: - throw new Error('Advanced option is not available'); - break; - } - }, - selectAddPipeline: () => { - cy.get(gitPO.pipeline.buildDropdown).scrollIntoView().click(); - cy.get(gitPO.pipeline.addPipeline).should('be.visible').click(); - }, - clickCreate: () => cy.get(gitPO.create).scrollIntoView().should('be.enabled').click(), - clickCancel: () => cy.get(gitPO.cancel).should('be.enabled').click(), - selectBuilderImageForGitUrl: (gitUrl: string) => { - switch (gitUrl) { - case 'https://github.com/sclorg/dancer-ex.git': - cy.get(`[data-test="card ${builderImages.Perl}"]`).click(); - cy.log(`Selecting builder image "${builderImages.Perl}" to avoid the git rate limit issue`); - break; - case 'https://github.com/sclorg/cakephp-ex.git': - cy.get(`[data-test="card ${builderImages.PHP}"]`).click(); - cy.log(`Selecting builder image "${builderImages.PHP}" to avoid the git rate limit issue`); - break; - case 'https://github.com/sclorg/nginx-ex.git': - cy.get(`[data-test="card ${builderImages.Nginx}"]`).click(); - cy.log( - `Selecting builder image "${builderImages.Nginx}" to avoid the git rate limit issue`, - ); - break; - case 'https://github.com/sclorg/httpd-ex.git': - cy.get(`[data-test="card ${builderImages.Httpd}"]`).click(); - cy.log( - `Selecting builder image "${builderImages.Httpd}" to avoid the git rate limit issue`, - ); - break; - case 'https://github.com/redhat-developer/s2i-dotnetcore-ex.git': - cy.get(`[data-test="card ${builderImages.NETCore}"]`).click(); - cy.log( - `Selecting builder image "${builderImages.NETCore}" to avoid the git rate limit issue`, - ); - break; - case 'https://github.com/sclorg/golang-ex.git': - cy.get(`[data-test="card ${builderImages.Go}"]`).click(); - cy.log(`Selecting builder image "${builderImages.Go}" to avoid the git rate limit issue`); - break; - case 'https://github.com/sclorg/ruby-ex.git': - cy.get(`[data-test="card ${builderImages.Ruby}"]`).click(); - cy.log(`Selecting builder image "${builderImages.Ruby}" to avoid the git rate limit issue`); - break; - case 'https://github.com/sclorg/django-ex.git': - cy.get(`[data-test="card ${builderImages.Python}"]`).click(); - cy.log( - `Selecting builder image "${builderImages.Python}" to avoid the git rate limit issue`, - ); - break; - case 'https://github.com/jboss-openshift/openshift-quickstarts': - cy.get(`[data-test="card ${builderImages.Java}"]`).click(); - cy.log(`Selecting builder image "${builderImages.Java}" to avoid the git rate limit issue`); - break; - case 'https://github.com/sclorg/nodejs-ex.git': - cy.get(`[data-test="card ${builderImages.NodeJs}"]`).click(); - cy.log( - `Selecting builder image "${builderImages.NodeJs}" to avoid the git rate limit issue`, - ); - break; - default: - cy.log( - `Unable to find the builder image for git url: ${gitUrl}, so selecting node.js builder by default `, - ); - } - }, - verifyValidatedMessage: (gitUrl: string) => { - cy.get(gitPO.gitSection.validatedMessage) - .should('not.include.text', 'Validating...') - .and('not.include.text', messages.addFlow.buildDeployMessage); - cy.get('body').then(($body) => { - if ($body.text().includes(messages.addFlow.rateLimitExceeded)) { - // Remove .git suffix and remove all parts before the last path - const componentName = gitUrl.replace(/\.git$/, '').replace(/^.*[\\\\/]/, ''); - cy.log( - `Git Rate limit exceeded for url ${gitUrl}, select builder image and fill component name "${componentName}" based on the URL to continue tests.`, - ); - gitPage.selectBuilderImageForGitUrl(gitUrl); - cy.get(gitPO.nodeName).clear(); - cy.get(gitPO.nodeName).type(componentName); - } else if ( - $body.find('.warning').length || - $body.text().includes(messages.addFlow.nonGitRepoMessage) - ) { - cy.log(`Not a git url ${gitUrl}. Please check it`); - } else if ( - $body.find('[aria-label="Warning Alert"]').length || - $body.text().includes(messages.addFlow.privateGitRepoMessage) - ) { - cy.log(`Issue with git url ${gitUrl}, maybe a private repo url. Please check it`); - gitPage.selectBuilderImageForGitUrl(gitUrl); - } - }); - }, - - verifyBuilderImageDetectedMessage: () => - cy.get(gitPO.builderSection.builderImageDetected).should('be.visible'), - verifyBuilderImageVersion: () => - cy.get(gitPO.builderSection.builderImageVersion).should('be.visible'), - selectTargetPortForRouting: () => { - cy.get(gitPO.advancedOptions.routing.targetPort).scrollIntoView().clear().type('8080'); - }, - selectTargetPortForRoutingWithPort: (port: string) => { - cy.get('input[aria-label="Type to filter"]').click(); - cy.get(`[aria-label="Target port"]`).contains(port).click(); - }, - enterRoutingHostName: (hostName: string) => - cy.get(gitPO.advancedOptions.routing.hostname).type(hostName), - enterRoutingPath: (path: string) => cy.get(gitPO.advancedOptions.routing.path).type(path), - uncheckBuildConfigOption: (checkBoxName: string | buildConfigOptions) => { - switch (checkBoxName) { - case buildConfigOptions.webhookBuildTrigger: - cy.get(gitPO.advancedOptions.buildConfig.webHookBuildTrigger) - .should('be.visible') - .uncheck(); - break; - case buildConfigOptions.automaticBuildImage: - cy.get(gitPO.advancedOptions.buildConfig.buildTriggerImage).should('be.visible').uncheck(); - break; - case buildConfigOptions.launchBuildOnCreatingBuildConfig: - cy.get(gitPO.advancedOptions.buildConfig.buildTriggerConfigField) - .should('be.visible') - .uncheck(); - break; - default: - throw new Error( - `Unable to find the "${checkBoxName}" checkbox in Build Configuration Section`, - ); - } - }, - enterBuildConfigEnvName: (envName: string) => - cy - .get(gitPO.sectionTitle) - .contains('Build') - .parent() - .find(gitPO.advancedOptions.buildConfig.envName) - .type(envName), - enterBuildConfigEnvValue: (envValue: string) => - cy - .get(gitPO.sectionTitle) - .contains('Build') - .parent() - .find(gitPO.advancedOptions.buildConfig.envValue) - .type(envValue), - verifyBuildConfigEnv: (envName: string, envValue: string) => { - cy.get(gitPO.sectionTitle) - .contains('Build') - .parent() - .find(`${gitPO.advancedOptions.buildConfig.envName}[value="${envName}"]`) - .parent() - .parent() - .find(gitPO.advancedOptions.buildConfig.envValue) - .should('have.value', envValue); - }, - verifyDeploymentOptionIsChecked: () => { - cy.get(gitPO.advancedOptions.deployment.deploymentTriggerImage).should('be.checked'); - }, - enterDeploymentEnvName: (envName: string) => - cy - .get(gitPO.sectionTitle) - .contains('Deploy') - .parent() - .find(gitPO.advancedOptions.deployment.envName) - .type(envName), - enterDeploymentEnvValue: (envValue: string) => - cy - .get(gitPO.sectionTitle) - .contains('Deploy') - .parent() - .find(gitPO.advancedOptions.deployment.envValue) - .type(envValue), - verifyDeploymentEnv: (envName: string, envValue: string) => { - cy.get(gitPO.sectionTitle) - .contains('Deploy') - .parent() - .find(`${gitPO.advancedOptions.deployment.envName}[value="${envName}"]`) - .parent() - .parent() - .find(gitPO.advancedOptions.deployment.envValue) - .should('have.value', envValue); - }, - enterResourceLimitCPURequest: (cpuRequestValue: string) => - cy.get(gitPO.advancedOptions.resourceLimit.cpuRequest).type(cpuRequestValue), - enterResourceLimitCPULimit: (cpuLimitValue: string) => - cy.get(gitPO.advancedOptions.resourceLimit.cpuLimit).type(cpuLimitValue), - enterResourceLimitMemoryRequest: (memoryRequestValue: string) => - cy.get(gitPO.advancedOptions.resourceLimit.memoryRequest).type(memoryRequestValue), - enterResourceLimitMemoryLimit: (memoryLimitValue: string) => - cy.get(gitPO.advancedOptions.resourceLimit.memoryLimit).type(memoryLimitValue), - enterScalingReplicaCount: (replicaCount: string) => - cy.get(gitPO.advancedOptions.scaling.replicaCount).type(replicaCount), - enterLabels: (labelName: string) => cy.get(gitPO.advancedOptions.labels).type(labelName), - enterRouteLabels: (labelRouteName: string) => - cy.get(gitPO.advancedOptions.routing.labels).type(labelRouteName), - notificationVerify: (message: string) => - cy.get(gitPO.resourceCreationAlert).should('contain.text', message), - checkIfDevfileImportStrategyDisabled: () => - cy.get(gitPO.importStrategy.devFileStrategy).should('have.attr', 'aria-disabled', 'true'), - clickEditImportStrategy: () => cy.get(gitPO.importStrategy.editImportStrategyBtn).click(), - enterDevfilePath: (devfilePath: string) => { - cy.get(gitPO.importStrategy.devFilePathInput).clear().type(devfilePath); - }, - checkDevFileHelpText: (message: string) => { - cy.get(gitPO.importStrategy.devFileHelperText).contains(message).should('exist'); - }, -}; diff --git a/frontend/packages/dev-console/integration-tests/support/pages/add-flow/helm-chart-repository.ts b/frontend/packages/dev-console/integration-tests/support/pages/add-flow/helm-chart-repository.ts deleted file mode 100644 index 76212578592..00000000000 --- a/frontend/packages/dev-console/integration-tests/support/pages/add-flow/helm-chart-repository.ts +++ /dev/null @@ -1,29 +0,0 @@ -import { createForm } from '..'; -import { devNavigationMenuPO } from '../../pageObjects'; - -export const filterByName = (name: string) => { - cy.get('#toggle-id').click(); - cy.byTestID('name-filter').click(); - cy.byLegacyTestID('item-filter').type(name); - cy.byLegacyTestID('kebab-button').click(); -}; - -export const helmChartRepository = { - deleteChartRepository: (name: string, type: string) => { - cy.log(`Deleting ${type} ${name}`); - cy.get(devNavigationMenuPO.search).click(); - cy.get('[aria-label="Options menu"]').click(); - cy.get('[placeholder="Select Resource"]').should('be.visible').type(type); - if (type === 'projecthelmchartrepository') { - cy.get('[data-filter-text="PHCRProjectHelmChartRepository"]').click(); - filterByName(name); - cy.byTestActionID('Delete ProjectHelmChartRepository').click(); - } else { - cy.get('[data-filter-text="HCRHelmChartRepository"]').click(); - filterByName(name); - cy.byTestActionID('Delete HelmChartRepository').click(); - } - createForm.clickConfirm(); - cy.byTestID('empty-box-body').should('be.visible'); - }, -}; diff --git a/frontend/packages/dev-console/integration-tests/support/pages/add-flow/index.ts b/frontend/packages/dev-console/integration-tests/support/pages/add-flow/index.ts deleted file mode 100644 index dea92f05741..00000000000 --- a/frontend/packages/dev-console/integration-tests/support/pages/add-flow/index.ts +++ /dev/null @@ -1,13 +0,0 @@ -/* eslint-disable no-barrel-files/no-barrel-files */ -export * from './add-page'; -export * from './catalog-page'; -export * from './container-image-page'; -export * from './dev-file-page'; -export * from './events-page'; -export * from './event-sink-page'; -export * from './event-source-page'; -export * from './git-page'; -export * from './yaml-page'; -export * from './channel-page'; -export * from './dockerfile-page'; -export * from './samples-page'; diff --git a/frontend/packages/dev-console/integration-tests/support/pages/add-flow/samples-page.ts b/frontend/packages/dev-console/integration-tests/support/pages/add-flow/samples-page.ts deleted file mode 100644 index f147967b93f..00000000000 --- a/frontend/packages/dev-console/integration-tests/support/pages/add-flow/samples-page.ts +++ /dev/null @@ -1,33 +0,0 @@ -import { samplesPO } from '../../pageObjects/add-flow-po'; - -export const samplesPage = { - search: (keyword: string) => { - cy.get('.skeleton-catalog--grid').should('not.exist'); - cy.get(samplesPO.search).clear().type(keyword); - }, - selectCardInSamples: (card: string) => { - cy.get('.skeleton-catalog--grid').should('not.exist'); - cy.byLegacyTestID('perspective-switcher-toggle').click(); - switch (card) { - case 'Httpd': { - cy.get(samplesPO.cards.httpdTemplate).first().click(); - break; - } - case 'Basic Go': { - cy.get(samplesPO.cards.basicgoTemplate).first().click(); - break; - } - case 'Basic Node.js': { - cy.get(samplesPO.cards.basicnodeTemplate).first().click(); - break; - } - case 'Go': { - cy.get(samplesPO.cards.goTemplate).first().click(); - break; - } - default: { - throw new Error(`${card} card is not available in Catalog`); - } - } - }, -}; diff --git a/frontend/packages/dev-console/integration-tests/support/pages/add-flow/upload-jar-file-page.ts b/frontend/packages/dev-console/integration-tests/support/pages/add-flow/upload-jar-file-page.ts deleted file mode 100644 index af9e63a34aa..00000000000 --- a/frontend/packages/dev-console/integration-tests/support/pages/add-flow/upload-jar-file-page.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { uploadJarFilePO } from '../../pageObjects'; - -export const uploadJarFilePage = { - // browseJarFile: (filePath: string) => {}, - clickBrowse: () => cy.get(uploadJarFilePO.jar.browse).click(), - selectBuilderImageVersion: (builderImageVersion: string) => { - cy.selectByDropDownText(uploadJarFilePO.jar.builderImageVersion, builderImageVersion); - }, -}; diff --git a/frontend/packages/dev-console/integration-tests/support/pages/add-flow/yaml-page.ts b/frontend/packages/dev-console/integration-tests/support/pages/add-flow/yaml-page.ts deleted file mode 100644 index 405d375f902..00000000000 --- a/frontend/packages/dev-console/integration-tests/support/pages/add-flow/yaml-page.ts +++ /dev/null @@ -1,4 +0,0 @@ -export const yamlPage = { - clickOnCreateButton: () => cy.byTestID('save-changes').click(), - clickOnCancelButton: () => cy.byTestID('cancel').click(), -}; diff --git a/frontend/packages/dev-console/integration-tests/support/pages/addHealthChecks-page.ts b/frontend/packages/dev-console/integration-tests/support/pages/addHealthChecks-page.ts deleted file mode 100644 index ce9ebe6baff..00000000000 --- a/frontend/packages/dev-console/integration-tests/support/pages/addHealthChecks-page.ts +++ /dev/null @@ -1,40 +0,0 @@ -import { detailsPage } from '@console/cypress-integration-tests/views/details-page'; -import { pageTitle } from '../constants'; -import { addHealthChecksPO } from '../pageObjects'; - -export const addHealthChecksPage = { - verifyTitle: () => detailsPage.titleShouldContain(pageTitle.AddHealthChecks), - clickCheckIcon: () => cy.byLegacyTestID('check-icon').click(), - clickCancelIcon: () => cy.byLegacyTestID('close-icon').click(), - clickAdd: () => cy.get(addHealthChecksPO.add).click(), - clickSave: () => cy.get(addHealthChecksPO.save).click(), - verifyHealthChecksForm: () => cy.get(addHealthChecksPO.healthChecksForm).should('be.visible'), - verifySuccessText: (text: string) => - cy.get(addHealthChecksPO.successText).contains(text).should('be.visible'), - clickProbeLink: (probeName: string) => { - cy.wait(5000); - cy.byButtonText(probeName).scrollIntoView().click(); - }, - addReadinessProbe: () => { - addHealthChecksPage.clickProbeLink('Add Readiness probe'); - addHealthChecksPage.verifyHealthChecksForm(); - addHealthChecksPage.clickCheckIcon(); - addHealthChecksPage.verifySuccessText('Readiness probe added'); - }, - removeReadinessProbe: () => { - cy.wait(5000); - cy.byButtonText('Readiness probe added').parent().next().find('[role="img"]').click(); - }, - addLivenessProbe: () => { - cy.contains('Add Liveness probe').scrollIntoView().click(); - cy.get('div.odc-heath-check-probe-form').should('be.visible'); - addHealthChecksPage.clickCheckIcon(); - addHealthChecksPage.verifySuccessText('Liveness probe added'); - }, - addStartupProbe: () => { - cy.byButtonText('Add Startup probe').scrollIntoView().click(); - cy.get('div.odc-heath-check-probe-form').should('be.visible'); - addHealthChecksPage.clickCheckIcon(); - addHealthChecksPage.verifySuccessText('Startup probe added'); - }, -}; diff --git a/frontend/packages/dev-console/integration-tests/support/pages/app.ts b/frontend/packages/dev-console/integration-tests/support/pages/app.ts deleted file mode 100644 index 61ae7eb1795..00000000000 --- a/frontend/packages/dev-console/integration-tests/support/pages/app.ts +++ /dev/null @@ -1,447 +0,0 @@ -import { detailsPage } from '@console/cypress-integration-tests/views/details-page'; -import { modal } from '@console/cypress-integration-tests/views/modal'; -import { nav } from '@console/cypress-integration-tests/views/nav'; -import { topologyPO } from '@console/topology/integration-tests/support/page-objects/topology-po'; -import * as yamlView from '../../../../integration-tests/views/yaml-editor'; -import { devNavigationMenu, switchPerspective, pageTitle, adminNavigationBar } from '../constants'; -import { gitPO, yamlPO } from '../pageObjects/add-flow-po'; -import { adminNavigationMenuPO, formPO, devNavigationMenuPO } from '../pageObjects/global-po'; -import { userPreferencePO } from '../pageObjects/userPreference-po'; - -export const app = { - waitForDocumentLoad: () => { - cy.document().its('readyState').should('eq', 'complete'); - }, - waitForLoad: (timeout: number = 160000, skipInline = false) => { - // observe dashboard contains lots of loaders that only disappear when scrolled into view - // skip these, otherwise wait as normal - cy.url().then((url) => { - if (url.includes('/dev-monitoring/') || skipInline) { - cy.get('body').then((body) => { - body.find('.co-m-loader').each(function () { - if (!this.className.includes('co-m-loader--inline')) { - cy.wrap(this).should('not.exist'); - } - }); - }); - } else { - cy.get('.co-m-loader', { timeout }).should('not.exist'); - } - }); - cy.get('[class*="spinner"]', { timeout }).should('not.exist'); - cy.get('.skeleton-catalog--grid', { timeout }).should('not.exist'); - cy.get('.loading-skeleton--table', { timeout }).should('not.exist'); - cy.byTestID('skeleton-detail-view', { timeout }).should('not.exist'); - app.waitForDocumentLoad(); - }, - waitForNameSpacesToLoad: () => { - cy.request('/api/kubernetes/apis/project.openshift.io/v1/projects?limit=250').then((resp) => { - expect(resp.status).toEqual(200); - }); - app.waitForLoad(); - }, -}; - -export const sidePane = { - operatorClose: () => cy.get('button[aria-label="Close"]').click({ force: true }), - close: () => cy.byTestID('sidebar-close-button').click({ force: true }), -}; - -export const perspective = { - switchTo: (perspectiveName: switchPerspective) => { - nav.sidenav.switcher.changePerspectiveTo(perspectiveName); - app.waitForLoad(); - if (perspectiveName === switchPerspective.Developer) { - // Commenting below line, because due to this pipeline runs feature file is failing - // cy.testA11y('Developer perspective'); - } - nav.sidenav.switcher.shouldHaveText(perspectiveName); - cy.get('body').then(($body) => { - if ($body.find('[aria-label="Close drawer panel"]').length) { - if ($body.find('[data-test="Next button"]').length) { - cy.get('[aria-label="Close drawer panel"]').click(); - cy.get('button').contains('Leave').click(); - } else { - cy.get('[aria-label="Close drawer panel"]').click(); - } - } - }); - }, -}; - -export const navigateTo = (opt: devNavigationMenu) => { - switch (opt) { - case devNavigationMenu.Add: { - perspective.switchTo(switchPerspective.Developer); - cy.get(devNavigationMenuPO.add) - .click() - .then(() => { - cy.url().should('include', 'add'); - app.waitForLoad(); - cy.contains(pageTitle.Add).should('be.visible'); - // Bug: ODC-5119 is created related to Accessibility violation - Until bug fix, below line is commented to execute the scripts in CI - // cy.testA11y('Add Page in dev perspective'); - }); - break; - } - case devNavigationMenu.Topology: { - cy.get(devNavigationMenuPO.topology).should('exist').click({ force: true }); - cy.url().should('include', 'topology'); - app.waitForLoad(); - cy.url().then(($url) => { - if ($url.includes('view=list') && !$url.includes('all-namespace')) { - cy.log('Topology view is in list'); - cy.get(topologyPO.switcher).click({ force: true }); - } - }); - // Bug: ODC-5119 is created related to Accessibility violation - Until bug fix, below line is commented to execute the scripts in CI - // cy.testA11y('Topology Page in dev perspective'); - break; - } - case devNavigationMenu.GitOps: { - cy.get(devNavigationMenuPO.gitOps).click(); - detailsPage.titleShouldContain(pageTitle.GitOPs); - cy.testA11y('GitOps Page in dev perspective'); - break; - } - case devNavigationMenu.Observe: { - cy.get(devNavigationMenuPO.monitoring).click(); - detailsPage.titleShouldContain(pageTitle.Observe); - cy.testA11y('Monitoring Page in dev perspective'); - break; - } - case devNavigationMenu.Builds: { - cy.get(devNavigationMenuPO.builds).click(); - detailsPage.titleShouldContain(pageTitle.Builds); - cy.testA11y('Builds Page in dev perspective'); - break; - } - case devNavigationMenu.BuildConfigs: { - cy.get(devNavigationMenuPO.builds).click(); - detailsPage.titleShouldContain(pageTitle.BuildConfigs); - cy.testA11y('Builds Page in dev perspective'); - break; - } - case devNavigationMenu.Pipelines: { - cy.get(devNavigationMenuPO.pipelines, { timeout: 80000 }).click(); - detailsPage.titleShouldContain(pageTitle.Pipelines); - // Bug: ODC-5119 is created related to Accessibility violation - Until bug fix, below line is commented to execute the scripts in CI - // cy.testA11y('Pipelines Page in dev perspective'); - break; - } - case devNavigationMenu.Search: { - cy.get(devNavigationMenuPO.search).click(); - cy.get('h1').contains(pageTitle.Search); - // cy.testA11y('Search Page in dev perspective'); - break; - } - case devNavigationMenu.Helm: { - cy.get(devNavigationMenuPO.helm).click(); - detailsPage.titleShouldContain(pageTitle.Helm); - cy.testA11y('Helm Releases Page in dev perspective'); - break; - } - case devNavigationMenu.Project: { - cy.get(devNavigationMenuPO.project).click(); - detailsPage.titleShouldContain(Cypress.expose('NAMESPACE')); - cy.testA11y('Projects Page in dev perspective'); - break; - } - case devNavigationMenu.ConfigMaps: { - perspective.switchTo(switchPerspective.Developer); - cy.byTestID('draggable-pinned-resource-item').contains('ConfigMaps').click(); - detailsPage.titleShouldContain(pageTitle.ConfigMaps); - cy.testA11y('Config maps Page in dev perspective'); - break; - } - case devNavigationMenu.Secrets: { - cy.get(devNavigationMenuPO.secret).click(); - detailsPage.titleShouldContain(pageTitle.Secrets); - cy.testA11y('Secrets Page in dev perspective'); - break; - } - case devNavigationMenu.Environments: { - cy.get(devNavigationMenuPO.environments).click(); - detailsPage.titleShouldContain(pageTitle.Environments); - cy.testA11y('Environments Page in dev perspective'); - break; - } - case devNavigationMenu.Routes: { - cy.get('body').then(($body) => { - if ($body.text().includes('Routes')) { - cy.byTestID('draggable-pinned-resource-item').contains('Routes').click(); - } else { - cy.get(devNavigationMenuPO.search).click(); - cy.get('[aria-label="Options menu"]').click(); - cy.get('[placeholder="Resources"]').should('be.visible').type('route'); - cy.get('[data-filter-text="RTRoute"]').then(($el) => { - if ($el.text().includes('route.openshift.io/v1')) { - cy.wrap($el).contains('route.openshift.io/v1').click(); - } else { - cy.wrap($el).click(); - } - }); - cy.get('.co-search-group__pin-toggle').should('be.visible').click(); - cy.byTestID('draggable-pinned-resource-item') - .contains('Routes') - .should('be.visible') - .click(); - } - }); - detailsPage.titleShouldContain(pageTitle.Routes); - cy.testA11y('Routes Page in dev perspective'); - break; - } - case devNavigationMenu.Deployments: { - cy.get('body').then(($body) => { - if ($body.text().includes('Deployments')) { - cy.byTestID('draggable-pinned-resource-item').contains('Deployments').click(); - } else { - cy.get(devNavigationMenuPO.search).click(); - cy.get('[aria-label="Options menu"]').click(); - cy.get('[placeholder="Resources"]').should('be.visible').type('Deployment'); - cy.get('[data-filter-text="DDeployment"]').click(); - cy.get('.co-search-group__pin-toggle').should('be.visible').click(); - cy.wait(3000); - cy.byTestID('draggable-pinned-resource-item') - .contains('Deployments') - .should('be.visible') - .click(); - } - }); - detailsPage.titleShouldContain(pageTitle.Deployments); - cy.testA11y('Deployments Page in dev perspective'); - break; - } - case devNavigationMenu.Consoles: { - cy.get('body').then(($body) => { - if ($body.text().includes('Consoles')) { - cy.byTestID('draggable-pinned-resource-item').contains('Consoles').click(); - cy.byTestID('cluster').should('be.visible').click(); - } else { - cy.get(devNavigationMenuPO.search).click(); - cy.get('[aria-label="Options menu"]').click(); - cy.get('[placeholder="Resources"]').should('be.visible').type('console'); - cy.get('[data-filter-text="CConsole"]').then(($el) => { - if ($el.text().includes('operator.openshift.io')) { - cy.wrap($el).contains('operator.openshift.io').click(); - } else { - cy.wrap($el).click(); - } - }); - cy.get('.co-search-group__pin-toggle').should('be.visible').click(); - cy.byTestID('cluster').should('be.visible').click(); - } - }); - cy.testA11y('cluster Page in dev perspective'); - break; - } - case devNavigationMenu.Functions: { - cy.get(devNavigationMenuPO.functions).click(); - detailsPage.titleShouldContain(pageTitle.Functions); - cy.testA11y('Functions Page in dev perspective'); - break; - } - default: { - throw new Error('Option is not available'); - } - } -}; - -export const projectNameSpace = { - clickProjectDropdown: () => { - cy.byLegacyTestID('namespace-bar-dropdown', { timeout: 30000 }) - .should('exist') - .find('button') - .first() - .click(); - }, - selectCreateProjectOption: () => { - cy.document().then((doc) => { - if (doc.readyState === 'complete') { - projectNameSpace.clickProjectDropdown(); - cy.byTestDropDownMenu('#CREATE_RESOURCE_ACTION#').click(); - } - }); - }, - - enterProjectName: (projectName: string) => { - modal.shouldBeOpened(); - cy.get('#input-name').type(projectName); - }, - - selectOrCreateProject: (projectName: string) => { - app.waitForLoad(); - cy.url().then((url) => { - if (url.includes('add/all-namespaces')) { - cy.get(userPreferencePO.userMenu, { - timeout: 50000, - }).then(($ele) => { - if ($ele.text().includes('kube:admin')) { - cy.get('tr[data-test-rows="resource-row"]').should('have.length.at.least', 1); - } else if ($ele.text() !== 'Auth disabled') { - cy.get('[data-test="empty-box-body"]').should('have.text', 'No Projects found'); - } - }); - } - }); - projectNameSpace.clickProjectDropdown(); - cy.get('body').then(($body) => { - if ($body.find(userPreferencePO.userMenu).text().includes('kube:admin')) { - cy.byTestID('showSystemSwitch').check(); // Ensure that all projects are showing - cy.byTestID('dropdown-menu-item-link').should('have.length.gt', 5); - } - }); - // Bug: ODC-6164 - is created related to Accessibility violation - Until bug fix, below line is commented to execute the scripts in CI - // cy.testA11y('Create Project modal'); - cy.url().then(($url) => { - if ($url.includes('topology/all-namespaces')) { - cy.get('.odc-namespaced-page__content').should('be.visible'); - } else if ($url.includes('topology/ns')) { - cy.byLegacyTestID('item-filter').should('be.visible'); - } - }); - cy.byTestID('dropdown-text-filter').type(projectName); - cy.get('[data-test-id="namespace-bar-dropdown"] button > span') - .first() - .as('projectNameSpaceDropdown'); - app.waitForDocumentLoad(); - cy.get('[data-test="namespace-dropdown-menu"]') - .first() - .then(($el) => { - if ($el.find('[data-test="dropdown-menu-item-link"]').length === 0) { - cy.byTestDropDownMenu('#CREATE_RESOURCE_ACTION#').click(); - projectNameSpace.enterProjectName(projectName); - cy.byTestID('confirm-action').click(); - const namespaces: string[] = Cypress.expose('NAMESPACES') || []; - if (!namespaces.includes(projectName)) { - namespaces.push(projectName); - } - Cypress.expose('NAMESPACES', namespaces); - app.waitForLoad(); - } else { - cy.get('[data-test="namespace-dropdown-menu"]') - .find('[data-test="dropdown-menu-item-link"]') - .contains(projectName) - .click(); - cy.get('@projectNameSpaceDropdown').then(($el1) => { - if ($el1.text().includes(projectName)) { - cy.get('@projectNameSpaceDropdown').should('contain.text', projectName); - } else { - cy.byTestDropDownMenu('#CREATE_RESOURCE_ACTION#').click(); - projectNameSpace.enterProjectName(projectName); - cy.byTestID('confirm-action').click(); - const namespaces: string[] = Cypress.expose('NAMESPACES') || []; - if (!namespaces.includes(projectName)) { - namespaces.push(projectName); - } - Cypress.expose('NAMESPACES', namespaces); - app.waitForLoad(); - } - }); - } - }); - cy.get('@projectNameSpaceDropdown').should('have.text', `Project: ${projectName}`); - }, - - selectProjectOrDoNothing: (projectName: string) => { - projectNameSpace.clickProjectDropdown(); - cy.byTestID('showSystemSwitch').check(); - cy.byTestID('dropdown-menu-item-link').should('have.length.gt', 5); - cy.byTestID('dropdown-text-filter').type(projectName); - cy.get('[data-test="namespace-dropdown-menu"]').then(($el) => { - if ($el.find('[data-test="dropdown-menu-item-link"]').length !== 0) { - cy.byTestID('namespace-dropdown-menu') - .find('[data-test="dropdown-menu-item-link"]') - .contains(projectName) - .click(); - } else { - projectNameSpace.clickProjectDropdown(); - } - }); - }, - - selectProject: (projectName: string) => { - projectNameSpace.clickProjectDropdown(); - cy.byTestID('showSystemSwitch').check(); // Ensure that all projects are showing - cy.byTestID('dropdown-menu-item-link').should('have.length.gt', 5); - cy.byTestID('dropdown-text-filter').type(projectName); - cy.byTestID('namespace-dropdown-menu') - .find('[data-test="dropdown-menu-item-link"]') - .contains(projectName) - .click(); - cy.log(`User has selected namespace ${projectName}`); - }, - - verifyMessage: (message: string) => cy.get('h2').should('contain.text', message), -}; - -export const createForm = { - clickOnFormView: () => cy.get(formPO.configureVia.formView).click(), - clickOnYAMLView: () => cy.get(formPO.configureVia.yamlView).click(), - clickCreate: () => cy.get(formPO.create).should('be.enabled').click(), - clickCancel: () => cy.get(formPO.cancel).should('be.enabled').click(), - clickSave: () => cy.get(formPO.save).should('be.enabled').click(), - clickConfirm: () => cy.get(formPO.confirm).should('be.enabled').click(), - sectionTitleShouldContain: (sectionTitle: string) => - cy.get(gitPO.sectionTitle).should('have.text', sectionTitle), -}; - -export const yamlEditor = { - isLoaded: () => { - app.waitForLoad(); - cy.get(yamlPO.yamlEditor).should('be.visible'); - cy.window().its('monaco.editor.getModels').should('exist'); - }, - - clearYAMLEditor: () => { - cy.get(yamlPO.yamlEditor).click().focused().type('{ctrl}a').clear(); - }, - - setEditorContent: (yamlLocation: string) => { - cy.readFile(yamlLocation).then((str) => { - yamlView.setEditorContent(str); - }); - }, - - clickSave: () => { - cy.byTestID('save-changes').click(); - }, -}; - -export const kebabMenu = { - openKebabMenu: (name: string) => { - cy.get('input[data-test-id="item-filter"]').should('be.visible').clear().type(name); - // eslint-disable-next-line cypress/no-unnecessary-waiting - cy.wait(3000); - cy.get('.co-virtualized-table').should('be.visible'); - cy.get('.co-virtualized-table').within(() => { - cy.get('tr td:nth-child(1)').each(($el, index) => { - if ($el.text().includes(name)) { - cy.get('tbody tr') - .eq(index) - .find('[data-test-id="kebab-button"]') - .then(($ele1) => { - cy.wrap($ele1).click({ force: true }); - }); - } - }); - }); - }, -}; - -export const navigateToAdminMenu = (opt: adminNavigationBar) => { - switch (opt) { - case adminNavigationBar.Home: { - cy.get(adminNavigationMenuPO.home.main).click(); - break; - } - case adminNavigationBar.Workloads: { - cy.get(adminNavigationMenuPO.workloads.main).click(); - break; - } - default: { - throw new Error('Option is not available'); - } - } -}; diff --git a/frontend/packages/dev-console/integration-tests/support/pages/crw/authorizeAccess.ts b/frontend/packages/dev-console/integration-tests/support/pages/crw/authorizeAccess.ts deleted file mode 100644 index 7d2b0b48266..00000000000 --- a/frontend/packages/dev-console/integration-tests/support/pages/crw/authorizeAccess.ts +++ /dev/null @@ -1,5 +0,0 @@ -export const authorizeAccessPage = { - allowPermissions: () => { - cy.get('[name="approve"]').click(); - }, -}; diff --git a/frontend/packages/dev-console/integration-tests/support/pages/crw/keycloak.ts b/frontend/packages/dev-console/integration-tests/support/pages/crw/keycloak.ts deleted file mode 100644 index e61a394f9c6..00000000000 --- a/frontend/packages/dev-console/integration-tests/support/pages/crw/keycloak.ts +++ /dev/null @@ -1,16 +0,0 @@ -export const keycloakRegistrationPage = { - submitRegistrationForm: ( - username: string, - email: string, - firstName: string, - lastName: string, - ) => { - cy.get('#kc-update-profile-form').within(() => { - cy.get('#username').type(username); - cy.get('#email').type(email); - cy.get('#firstName').type(firstName); - cy.get('#lastName').type(lastName); - cy.get('.btn').click(); - }); - }, -}; diff --git a/frontend/packages/dev-console/integration-tests/support/pages/devworspace/devworkspacePage.ts b/frontend/packages/dev-console/integration-tests/support/pages/devworspace/devworkspacePage.ts deleted file mode 100644 index 8b480164fed..00000000000 --- a/frontend/packages/dev-console/integration-tests/support/pages/devworspace/devworkspacePage.ts +++ /dev/null @@ -1,5 +0,0 @@ -export const devWorkspacePage = { - verifyDevWsResourceStatus: (status: string) => { - cy.byTestID('resource-status').should('have.text', status); - }, -}; diff --git a/frontend/packages/dev-console/integration-tests/support/pages/functions/checkDeveloperPerspective.ts b/frontend/packages/dev-console/integration-tests/support/pages/functions/checkDeveloperPerspective.ts deleted file mode 100644 index 967bac9bba0..00000000000 --- a/frontend/packages/dev-console/integration-tests/support/pages/functions/checkDeveloperPerspective.ts +++ /dev/null @@ -1,64 +0,0 @@ -export const checkDeveloperPerspective = () => { - // Wait for page to be ready - cy.document().its('readyState').should('eq', 'complete'); - - cy.byLegacyTestID('perspective-switcher-toggle') - .should('be.visible') - .then(($toggle) => { - // Read text only from the toggle label, not from the dropdown menu items - // that PF appends inside the toggle element via popperProps.appendTo. - const $label = $toggle.find('.pf-v6-c-menu-toggle__text'); - const currentText = ($label.length ? $label.text() : $toggle.text()).trim(); - const isSinglePerspective = $toggle.attr('id') === 'only-one-perspective'; - - cy.log(`Current perspective: "${currentText}"`); - - // If already on Developer, we're done - if (currentText === 'Developer') { - cy.log('Already on Developer perspective'); - return; - } - - // If single-perspective mode (only Admin), enable Developer - if (isSinglePerspective) { - cy.log('Single-perspective mode, enabling Developer'); - cy.exec( - `oc patch console.operator.openshift.io/cluster --type='merge' -p '{"spec":{"customization":{"perspectives":[{"id":"dev","visibility":{"state":"Enabled"}}]}}}'`, - { failOnNonZeroExit: true }, - ); - cy.exec(`oc rollout status -w deploy/console -n openshift-console`, { - failOnNonZeroExit: true, - }); - cy.reload(true); - cy.document().its('readyState').should('eq', 'complete'); - } - - // Switch to Developer - cy.log('Switching to Developer perspective'); - cy.byLegacyTestID('perspective-switcher-toggle').click(); - - // Wait for menu to open - cy.byLegacyTestID('perspective-switcher-toggle', { timeout: 10000 }).should( - 'have.attr', - 'aria-expanded', - 'true', - ); - - // eslint-disable-next-line cypress/no-unnecessary-waiting - cy.wait(1500); - - // Click Developer option - cy.contains('[data-test-id="perspective-switcher-menu-option"]', 'Developer', { - timeout: 10000, - }).click(); - - // Verify we're on Developer: check .pf-v6-c-menu-toggle__text specifically - // because PF appends the dropdown menu inside the toggle element. - cy.byLegacyTestID('perspective-switcher-toggle', { timeout: 15000 }) - .find('.pf-v6-c-menu-toggle__text') - .should('contain.text', 'Developer'); - - // Wait for perspective to fully load - cy.document().its('readyState').should('eq', 'complete'); - }); -}; diff --git a/frontend/packages/dev-console/integration-tests/support/pages/functions/checkOperatorHub.ts b/frontend/packages/dev-console/integration-tests/support/pages/functions/checkOperatorHub.ts deleted file mode 100644 index fb7db52d79d..00000000000 --- a/frontend/packages/dev-console/integration-tests/support/pages/functions/checkOperatorHub.ts +++ /dev/null @@ -1,11 +0,0 @@ -export const checkOperatorvailabilityStatus = (operatorName: string) => { - cy.exec(`source ../../dev-console/integration-tests/testData/krew-install.sh ${operatorName}`, { - failOnNonZeroExit: false, - }).then(function (result) { - cy.log(`Operator availability check :`); - cy.log(result.stdout || result.stderr); - if (result.stdout.includes(`"${operatorName}" not found`)) { - throw new Error(`Failed to install ${operatorName} Operator - Operator not available.`); - } - }); -}; diff --git a/frontend/packages/dev-console/integration-tests/support/pages/functions/checkOperatorStatus.ts b/frontend/packages/dev-console/integration-tests/support/pages/functions/checkOperatorStatus.ts deleted file mode 100644 index b2503091b88..00000000000 --- a/frontend/packages/dev-console/integration-tests/support/pages/functions/checkOperatorStatus.ts +++ /dev/null @@ -1,205 +0,0 @@ -import { operatorNamespaces, operatorSubscriptions } from '../../constants'; -import { - createKnativeEventingUsingCLI, - createKnativeKafkaUsingCLI, - createKnativeServingUsingCLI, -} from './knativeSubscriptions'; - -export const checkRedHatIntegrationCamelKOperatorStatus = (retries: number = 5) => { - const namespace = operatorNamespaces.RedHatIntegrationCamelK; - const resourceName = 'camel-k-operator'; - if (retries === 0) { - throw new Error('Failed to install Red Hat Camel K Operator - Pod timeout'); - } else { - cy.exec( - `oc wait --for=condition=ready pod -l name=${resourceName} -n ${namespace} --timeout=300s`, - { - failOnNonZeroExit: false, - }, - ).then(function (result) { - if (result.stdout.includes('condition met')) { - cy.log(`Success: ${result.stdout}`); - } else { - cy.log(result.stderr); - cy.wait(30000); - checkRedHatIntegrationCamelKOperatorStatus(retries - 1); - } - }); - } -}; - -export const checkWebterminalOperatorStatus = (retries: number = 5) => { - const namespace = operatorNamespaces.WebTerminalOperator; - const resourceName = 'web-terminal-controller'; - if (retries === 0) { - throw new Error('Failed to install Webterminal Operator - Pod timeout'); - } else { - cy.exec( - `oc wait --for=condition=ready pod -l app.kubernetes.io/name=${resourceName} -n ${namespace} --timeout=300s`, - { - failOnNonZeroExit: false, - }, - ).then(function (result) { - if (result.stdout.includes('condition met')) { - cy.log(`Success: ${result.stdout}`); - } else { - cy.log(result.stderr); - cy.wait(30000); - checkWebterminalOperatorStatus(retries - 1); - } - }); - } -}; - -export const checkDevWorkspaceOperatorStatus = (retries: number = 5) => { - const namespace = operatorNamespaces.DevWorkspaceOperator; - const controllerResourceName = 'devworkspace-controller'; - const serverResourceName = 'devworkspace-webhook-server'; - - if (retries === 0) { - throw new Error('Failed to install devworkspace operator - Pod timeout'); - } else { - cy.exec( - `oc wait --for=condition=ready pod -l app.kubernetes.io/name=${controllerResourceName} -n ${namespace} --timeout=300s`, - { - failOnNonZeroExit: false, - }, - ).then(function (result) { - if (result.stdout.includes('condition met')) { - cy.log(`Success: ${result.stdout}`); - } else { - cy.log(result.stderr); - cy.wait(30000); - checkDevWorkspaceOperatorStatus(retries - 1); - } - }); - cy.exec( - `oc wait --for=condition=ready pod -l app.kubernetes.io/name=${serverResourceName} -n ${namespace} --timeout=300s`, - { - failOnNonZeroExit: false, - }, - ).then(function (result) { - if (result.stdout.includes('condition met')) { - cy.log(`Success: ${result.stdout}`); - } else { - cy.log(result.stderr); - cy.wait(30000); - checkDevWorkspaceOperatorStatus(retries - 1); - } - }); - } -}; - -export const checkShipwrightOperatorStatus = (retries: number = 5) => { - const namespace = operatorNamespaces.ShipwrightOperator; - const resourceName = operatorSubscriptions.ShipwrightOperator; - if (retries === 0) { - throw new Error('Failed to install Shipwright Operator - Pod timeout'); - } else { - cy.exec( - `oc wait --for=condition=ready pod -l app=${resourceName} -n ${namespace} --timeout=300s`, - { - failOnNonZeroExit: false, - }, - ).then(function (result) { - if (result.stdout.includes('condition met')) { - cy.log(`Success: ${result.stdout}`); - } else { - cy.log(result.stderr); - cy.wait(30000); - checkShipwrightOperatorStatus(retries - 1); - } - }); - } -}; - -export const checkBuildsForOpenshiftOperatorStatus = (retries: number = 5) => { - const namespace = operatorNamespaces.BuildsForOpenshiftOperator; - const resourceName = operatorSubscriptions.BuildsForOpenshiftOperator; - if (retries === 0) { - throw new Error('Failed to install Builds for Openshift Operator - Pod timeout'); - } else { - cy.exec( - `oc wait --for=condition=ready pod -l app=${resourceName} -n ${namespace} --timeout=300s`, - { - failOnNonZeroExit: false, - }, - ).then(function (result) { - if (result.stdout.includes('condition met')) { - cy.log(`Success: ${result.stdout}`); - } else { - cy.log(result.stderr); - cy.wait(30000); - checkBuildsForOpenshiftOperatorStatus(retries - 1); - } - }); - } -}; - -export const checkPipelineOperatorStatus = (retries: number = 5) => { - const namespace = operatorNamespaces.PipelinesOperator; - const resourceName = operatorSubscriptions.PipelinesOperator; - if (retries === 0) { - throw new Error('Failed to install Pipelines Operator - Pod timeout'); - } else { - cy.exec( - `oc wait --for=condition=ready pod -l app=${resourceName} -n ${namespace} --timeout=300s`, - { - failOnNonZeroExit: false, - }, - ).then(function (result) { - if (result.stdout.includes('condition met')) { - cy.log(`Success: ${result.stdout}`); - } else { - cy.log(result.stderr); - cy.wait(30000); - checkPipelineOperatorStatus(retries - 1); - } - }); - } -}; - -export const checkKnativeOperatorStatus = () => { - const checkInstanceStatus = (resourceName: string, instanceName: string, namespace: string) => { - cy.exec( - `oc wait ${resourceName} --for=condition=Ready --timeout=2m -n ${namespace} ${instanceName}`, - { - failOnNonZeroExit: false, - }, - ).then(function (result) { - if (result.stdout.includes('condition met')) { - cy.log(result.stdout); - } else if (resourceName === 'KnativeServing') { - createKnativeServingUsingCLI(); - } else if (resourceName === 'KnativeEventing') { - createKnativeEventingUsingCLI(); - } else if (resourceName === 'KnativeKafka') { - createKnativeKafkaUsingCLI(); - } - }); - }; - const checkKnativeServingStatus = () => { - const namespace = 'knative-serving'; - const instanceName = 'knative-serving'; - const resourceName = 'KnativeServing'; - checkInstanceStatus(resourceName, instanceName, namespace); - }; - - const checkKnativeEventingStatus = () => { - const namespace = 'knative-eventing'; - const instanceName = 'knative-eventing'; - const resourceName = 'KnativeEventing'; - checkInstanceStatus(resourceName, instanceName, namespace); - }; - - const checkKnativeKafkaStatus = () => { - const namespace = 'knative-eventing'; - const instanceName = 'knative-kafka'; - const resourceName = 'KnativeKafka'; - checkInstanceStatus(resourceName, instanceName, namespace); - }; - - checkKnativeServingStatus(); - checkKnativeEventingStatus(); - checkKnativeKafkaStatus(); -}; diff --git a/frontend/packages/dev-console/integration-tests/support/pages/functions/createBroker.ts b/frontend/packages/dev-console/integration-tests/support/pages/functions/createBroker.ts deleted file mode 100644 index ba0a0e1221b..00000000000 --- a/frontend/packages/dev-console/integration-tests/support/pages/functions/createBroker.ts +++ /dev/null @@ -1,40 +0,0 @@ -import { topologyPage } from '@console/topology/integration-tests/support/pages/topology/topology-page'; -import { addOptions } from '../../constants/add'; -import { devNavigationMenu } from '../../constants/global'; -import { topologyPO } from '../../pageObjects'; -import { addPage, gitPage } from '../add-flow'; -import { app, createForm, navigateTo } from '../app'; - -export const createBroker = (brokerName: string = 'broker-one') => { - navigateTo(devNavigationMenu.Add); - addPage.selectCardFromOptions(addOptions.Broker); - cy.get('#form-radiobutton-editorType-form-field').click(); - gitPage.enterWorkloadName(brokerName); - createForm.clickCreate().then(() => { - app.waitForLoad(); - cy.log(`Broker "${brokerName}" is created`); - }); -}; - -export const createBrokerIfNotExistsOnTopologyPage = (brokerName: string) => { - navigateTo(devNavigationMenu.Topology); - topologyPage.waitForLoad(); - cy.get('body').then(($body) => { - if ($body.find(topologyPO.emptyStateIcon).length) { - navigateTo(devNavigationMenu.Add); - createBroker(brokerName); - topologyPage.verifyWorkloadInTopologyPage(brokerName); - } else { - topologyPage.search(brokerName); - cy.get('body').then(($node) => { - if ($node.find(topologyPO.highlightNode).length) { - cy.log(`Broker Name: "${brokerName}" is already available`); - } else { - navigateTo(devNavigationMenu.Add); - createBroker(brokerName); - topologyPage.verifyWorkloadInTopologyPage(brokerName); - } - }); - } - }); -}; diff --git a/frontend/packages/dev-console/integration-tests/support/pages/functions/createChannel.ts b/frontend/packages/dev-console/integration-tests/support/pages/functions/createChannel.ts deleted file mode 100644 index 326700b795e..00000000000 --- a/frontend/packages/dev-console/integration-tests/support/pages/functions/createChannel.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { addOptions } from '../../constants/add'; -import { devNavigationMenu } from '../../constants/global'; -import { addPage, channelPage } from '../add-flow'; -import { app, createForm, navigateTo } from '../app'; - -export const createChannel = (channelName: string = 'channel-one') => { - navigateTo(devNavigationMenu.Add); - addPage.selectCardFromOptions(addOptions.Channel); - channelPage.selectChannelType(); - channelPage.enterChannelName(channelName); - createForm.clickCreate().then(() => { - app.waitForLoad(); - cy.log(`Channel "${channelName}" is created`); - }); -}; diff --git a/frontend/packages/dev-console/integration-tests/support/pages/functions/createEventSink.ts b/frontend/packages/dev-console/integration-tests/support/pages/functions/createEventSink.ts deleted file mode 100644 index 5c4cc282c72..00000000000 --- a/frontend/packages/dev-console/integration-tests/support/pages/functions/createEventSink.ts +++ /dev/null @@ -1,22 +0,0 @@ -import { addOptions } from '../../constants/add'; -import { devNavigationMenu } from '../../constants/global'; -import { addPage, createEventSinkPage, eventSinkPage, gitPage } from '../add-flow'; -import { app, createForm, navigateTo } from '../app'; - -export const createEventSink = ( - cardName: string = 'Log Sink', - target: string, - eventSinkName: string = 'event-sink-one', -) => { - navigateTo(devNavigationMenu.Add); - addPage.selectCardFromOptions(addOptions.EventSink); - eventSinkPage.search(cardName); - eventSinkPage.clickEventSourceType(cardName); - eventSinkPage.clickCreateEventSinkOnSidePane(); - createEventSinkPage.selectOutputTargetName(target); - gitPage.enterWorkloadName(eventSinkName); - createForm.clickCreate().then(() => { - app.waitForLoad(); - cy.log(`Event Sink "${eventSinkName}" is created`); - }); -}; diff --git a/frontend/packages/dev-console/integration-tests/support/pages/functions/createGitWorkload.ts b/frontend/packages/dev-console/integration-tests/support/pages/functions/createGitWorkload.ts deleted file mode 100644 index 88dd1ff15d3..00000000000 --- a/frontend/packages/dev-console/integration-tests/support/pages/functions/createGitWorkload.ts +++ /dev/null @@ -1,166 +0,0 @@ -import { detailsPage } from '@console/cypress-integration-tests/views/details-page'; -import { topologyPage } from '@console/topology/integration-tests/support/pages/topology'; -import { devNavigationMenu, addOptions, pageTitle } from '../../constants'; -import { formPO, topologyPO } from '../../pageObjects'; -import { addPage, gitPage } from '../add-flow'; -import { createForm, navigateTo } from '../app'; - -const selectImportFromGitQuickCreate = () => { - cy.get('[data-test="quick-create-dropdown"]').click(); - cy.get('[data-test="qc-import-from-git"] [role="menuitem"]') - .should('be.visible') - .click({ force: true }); - cy.testA11y('Import from Git Page'); - detailsPage.titleShouldContain(pageTitle.Git); -}; - -export const createGitWorkload = ( - gitUrl: string = 'https://github.com/sclorg/nodejs-ex.git', - componentName: string = 'nodejs-ex-git', - resourceType: string = 'Deployment', - appName: string = 'nodejs-ex-git-app', - isPipelineSelected: boolean = false, - isServerlessFunction: boolean = false, -) => { - selectImportFromGitQuickCreate(); - gitPage.enterGitUrl(gitUrl); - gitPage.verifyValidatedMessage(gitUrl); - gitPage.enterComponentName(componentName); - if (!isServerlessFunction) { - gitPage.selectResource(resourceType); - } - gitPage.enterAppName(appName); - if (isPipelineSelected === true) { - gitPage.selectAddPipeline(); - } - createForm.clickCreate().then(() => { - cy.get('.co-m-loader').should('not.exist'); - cy.get('body').then(($body) => { - if ($body.find(formPO.errorAlert).length !== 0) { - cy.get(formPO.errorAlert) - .find('.co-pre-line') - .then(($ele) => { - cy.log($ele.text()); - }); - } else { - cy.log(`Workload : "${componentName}" is created`); - } - }); - }); -}; - -export const createGitWorkloadIfNotExistsOnTopologyPage = ( - gitUrl: string = 'https://github.com/sclorg/nodejs-ex.git', - componentName: string = 'nodejs-ex-git', - resourceType: string = 'Deployment', - appName?: string, - isPipelineSelected: boolean = false, - isServerlessFunction: boolean = false, -) => { - navigateTo(devNavigationMenu.Topology); - topologyPage.waitForLoad(); - cy.get('body').then(($body) => { - if ($body.find(topologyPO.emptyStateIcon).length) { - cy.log(`Topology doesn't have workload "${componentName}", lets create it`); - createGitWorkload( - gitUrl, - componentName, - resourceType, - appName, - isPipelineSelected, - isServerlessFunction, - ); - topologyPage.verifyWorkloadInTopologyPage(componentName); - } else { - topologyPage.search(componentName); - cy.get('body').then(($node) => { - if ($node.find(topologyPO.highlightNode).length) { - cy.log(`knative service: ${componentName} is already created`); - } else { - createGitWorkload( - gitUrl, - componentName, - resourceType, - appName, - isPipelineSelected, - isServerlessFunction, - ); - topologyPage.verifyWorkloadInTopologyPage(componentName); - } - }); - } - }); -}; - -export const createGitWorkloadWithResourceLimit = ( - gitUrl: string = 'https://github.com/sclorg/nodejs-ex.git', - componentName: string = 'nodejs-ex-git', - resourceType: string = 'Deployment', - appName: string = 'nodejs-ex-git-app', - limitCPU: string = '100', - limitMemory: string = '100', - isPipelineSelected: boolean = false, -) => { - addPage.selectCardFromOptions(addOptions.ImportFromGit); - gitPage.enterGitUrl(gitUrl); - gitPage.verifyValidatedMessage(gitUrl); - gitPage.enterComponentName(componentName); - gitPage.selectResource(resourceType); - gitPage.enterAppName(appName); - cy.byLegacyTestID('import-git-form').contains('Resource limits').click(); - cy.get(topologyPO.resourceLimits.limitCPU).clear().type(limitCPU); - cy.get(topologyPO.resourceLimits.limitMemory).clear().type(limitMemory); - if (isPipelineSelected === true) { - gitPage.selectAddPipeline(); - } - createForm.clickCreate().then(() => { - cy.get('.co-m-loader').should('not.exist'); - cy.get('body').then(($body) => { - if ($body.find(formPO.errorAlert).length !== 0) { - cy.get(formPO.errorAlert) - .find('.co-pre-line') - .then(($ele) => { - cy.log($ele.text()); - }); - } else { - cy.log(`Workload : "${componentName}" is created`); - } - }); - }); -}; - -export const createGitWorkloadWithBuilderImage = ( - gitUrl: string = 'https://github.com/sclorg/nodejs-ex.git', - componentName: string = 'nodejs-ex-git', - resourceType: string = 'Deployment', - builderImage: string = 'nodejs', - appName: string = 'nodejs-ex-git-app', - isPipelineSelected: boolean = false, -) => { - addPage.selectCardFromOptions(addOptions.ImportFromGit); - gitPage.enterGitUrl(gitUrl); - gitPage.verifyValidatedMessage(gitUrl); - cy.get('.odc-import-strategy-section__edit-strategy-button').click(); - cy.byTestID('import-strategy Builder Image').click(); - cy.byTestID(`card ${builderImage}`).click(); - gitPage.enterComponentName(componentName); - gitPage.selectResource(resourceType); - gitPage.enterAppName(appName); - if (isPipelineSelected === true) { - gitPage.selectAddPipeline(); - } - createForm.clickCreate().then(() => { - cy.get('.co-m-loader').should('not.exist'); - cy.get('body').then(($body) => { - if ($body.find(formPO.errorAlert).length !== 0) { - cy.get(formPO.errorAlert) - .find('.co-pre-line') - .then(($ele) => { - cy.log($ele.text()); - }); - } else { - cy.log(`Workload : "${componentName}" is created`); - } - }); - }); -}; diff --git a/frontend/packages/dev-console/integration-tests/support/pages/functions/createHelmChartFromAddPage.ts b/frontend/packages/dev-console/integration-tests/support/pages/functions/createHelmChartFromAddPage.ts deleted file mode 100644 index 1fa3dd36cae..00000000000 --- a/frontend/packages/dev-console/integration-tests/support/pages/functions/createHelmChartFromAddPage.ts +++ /dev/null @@ -1,22 +0,0 @@ -import { detailsPage } from '@console/cypress-integration-tests/views/details-page'; -import { addOptions, devNavigationMenu, pageTitle } from '../../constants'; -import { catalogPage, addPage } from '../add-flow'; -import { navigateTo } from '../app'; - -export const createHelmChartFromAddPage = ( - releaseName: string = 'nodejs-release', - helmChartName: string = 'Nodejs', -) => { - navigateTo(devNavigationMenu.Add); - addPage.verifyCard('Helm Chart'); - addPage.selectCardFromOptions(addOptions.HelmChart); - detailsPage.titleShouldContain(pageTitle.HelmCharts); - catalogPage.isCardsDisplayed(); - catalogPage.search(helmChartName); - catalogPage.selectHelmChartCard(helmChartName); - catalogPage.verifyDialog(); - catalogPage.clickButtonOnCatalogPageSidePane(); - catalogPage.verifyCreateHelmReleasePage(); - catalogPage.enterReleaseName(releaseName); - catalogPage.clickOnInstallButton(); -}; diff --git a/frontend/packages/dev-console/integration-tests/support/pages/functions/createHelmRelease.ts b/frontend/packages/dev-console/integration-tests/support/pages/functions/createHelmRelease.ts deleted file mode 100644 index 1db076f6885..00000000000 --- a/frontend/packages/dev-console/integration-tests/support/pages/functions/createHelmRelease.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { addOptions } from '../../constants/add'; -import { devNavigationMenu } from '../../constants/global'; -import { addPage } from '../add-flow/add-page'; -import { catalogPage } from '../add-flow/catalog-page'; -import { navigateTo } from '../app'; - -export const createHelmRelease = (helmCardName: string) => { - navigateTo(devNavigationMenu.Add); - addPage.selectCardFromOptions(addOptions.HelmChart); - catalogPage.search(helmCardName); - catalogPage.selectHelmChartCard(helmCardName); - catalogPage.clickButtonOnCatalogPageSidePane(); - catalogPage.clickOnInstallButton(); -}; - -export const createHelmReleaseWithName = (helmCardName: string, releaseName: string) => { - navigateTo(devNavigationMenu.Add); - addPage.selectCardFromOptions(addOptions.HelmChart); - catalogPage.search(helmCardName); - catalogPage.selectHelmChartCard(helmCardName); - catalogPage.clickButtonOnCatalogPageSidePane(); - catalogPage.enterReleaseName(releaseName); - catalogPage.clickOnInstallButton(); -}; diff --git a/frontend/packages/dev-console/integration-tests/support/pages/functions/createOperatorBacked.ts b/frontend/packages/dev-console/integration-tests/support/pages/functions/createOperatorBacked.ts deleted file mode 100644 index 43bef60a223..00000000000 --- a/frontend/packages/dev-console/integration-tests/support/pages/functions/createOperatorBacked.ts +++ /dev/null @@ -1,35 +0,0 @@ -import { detailsPage } from '@console/cypress-integration-tests/views/details-page'; -import { addOptions, pageTitle } from '../../constants'; -import { formPO } from '../../pageObjects'; -import { addPage, catalogPage } from '../add-flow'; - -export const createOperatorBacked = ( - operatorName: string = 'nodejs-ex-git', - name: string = 'test123', -) => { - addPage.selectCardFromOptions(addOptions.OperatorBacked); - detailsPage.titleShouldContain(pageTitle.OperatorBacked); - catalogPage.isCardsDisplayed(); - catalogPage.search(operatorName); - catalogPage.verifySelectOperatorBackedCard(operatorName); - catalogPage.verifyDialog(); - catalogPage.clickButtonOnCatalogPageSidePane(); - catalogPage.verifyCreateOperatorBackedPage(operatorName); - catalogPage.enterOperatorBackedName(name); - cy.get('[data-test="create-dynamic-form"]') - .click() - .then(() => { - cy.get('.co-m-loader').should('not.exist'); - cy.get('body').then(($body) => { - if ($body.find(formPO.errorAlert).length !== 0) { - cy.get(formPO.errorAlert) - .find('.co-pre-line') - .then(($ele) => { - cy.log($ele.text()); - }); - } else { - cy.log(`Operator Backed Worload : "${name}" is created`); - } - }); - }); -}; diff --git a/frontend/packages/dev-console/integration-tests/support/pages/functions/index.ts b/frontend/packages/dev-console/integration-tests/support/pages/functions/index.ts deleted file mode 100644 index aaf4a0069f6..00000000000 --- a/frontend/packages/dev-console/integration-tests/support/pages/functions/index.ts +++ /dev/null @@ -1,9 +0,0 @@ -/* eslint-disable no-barrel-files/no-barrel-files */ -export * from './createGitWorkload'; -export * from './createHelmChartFromAddPage'; -export * from './createHelmRelease'; -export * from './installOperatorOnCluster'; -export * from './installOperatorOnClusterUsingCLI'; -export * from './createChannel'; -export * from './knativeSubscriptions'; -export * from './createOperatorBacked'; diff --git a/frontend/packages/dev-console/integration-tests/support/pages/functions/installCRW.ts b/frontend/packages/dev-console/integration-tests/support/pages/functions/installCRW.ts deleted file mode 100644 index bfdc8b1bd69..00000000000 --- a/frontend/packages/dev-console/integration-tests/support/pages/functions/installCRW.ts +++ /dev/null @@ -1,41 +0,0 @@ -import { detailsPage } from '@console/cypress-integration-tests/views/details-page'; -import { operators, pageTitle } from '../../constants'; -import { operatorsPO } from '../../pageObjects'; -import { app, projectNameSpace } from '../app'; -import { operatorsPage } from '../operators-page'; - -export const installCRW = () => { - operatorsPage.navigateToInstallOperatorsPage(); - projectNameSpace.selectProject('openshift-workspaces'); - operatorsPage.searchOperatorInInstallPage(operators.RedHatCodereadyWorkspaces); - cy.get(operatorsPO.installOperators.checlusterCRLink).should('be.visible').click(); - cy.get(operatorsPO.installOperators.title).should( - 'contain.text', - pageTitle.RedHatCodeReadyWorkspaces, - ); - // Make sure the page is properly loaded - app.waitForLoad(); - cy.get('body').then(($body) => { - if ($body.find('[role="grid"]').length) { - cy.log(`${pageTitle.RedHatCodeReadyWorkspaces} already installed.`); - } else { - cy.byTestID('item-create').click(); - detailsPage.titleShouldContain(pageTitle.CreateChecluster); - cy.byTestID('create-dynamic-form').click(); - } - }); -}; -export const waitForCRWToBeAvailable = () => { - operatorsPage.navigateToInstallOperatorsPage(); - projectNameSpace.selectProject('openshift-workspaces'); - cy.get(operatorsPO.installOperators.checlusterCRLink).should('be.visible').click(); - cy.get(operatorsPO.installOperators.title).should( - 'contain.text', - pageTitle.RedHatCodeReadyWorkspaces, - ); - cy.byTestOperandLink('codeready-workspaces').should('be.visible').click(); - cy.get(`[data-test-selector="details-item-value__Status"]`, { timeout: 900000 }).should( - 'include.text', - 'Available', - ); -}; diff --git a/frontend/packages/dev-console/integration-tests/support/pages/functions/installOperatorOnCluster.ts b/frontend/packages/dev-console/integration-tests/support/pages/functions/installOperatorOnCluster.ts deleted file mode 100644 index 7225247221b..00000000000 --- a/frontend/packages/dev-console/integration-tests/support/pages/functions/installOperatorOnCluster.ts +++ /dev/null @@ -1,252 +0,0 @@ -import { modal } from '@console/cypress-integration-tests/views/modal'; -import { detailsPage } from '../../../../../integration-tests/views/details-page'; -import { pageTitle, operators, switchPerspective } from '../../constants'; -import { operatorsPO } from '../../pageObjects'; -import { app, perspective, projectNameSpace, sidePane } from '../app'; -import { operatorsPage } from '../operators-page'; -import { installCRW, waitForCRWToBeAvailable } from './installCRW'; -import { - createKnativeEventing, - createKnativeServing, - createKnativeKafka, -} from './knativeSubscriptions'; - -const pipelinesPage = { - clickOnCreatePipeline: () => { - detailsPage.titleShouldContain(pageTitle.Pipelines); - app.waitForLoad(); - cy.get('button'); - cy.get('body').then(($body) => { - if ($body.find('#yaml-create').length > 0) { - cy.get('#yaml-create').click(); - } else { - cy.byTestID('tab-list-page-create').contains('Create').click(); - cy.get('[data-test-dropdown-menu="pipeline"]').click(); - } - }); - }, -}; - -export const installOperator = (operatorName: operators) => { - operatorsPage.navigateToOperatorHubPage(); - operatorsPage.searchOperator(operatorName); - operatorsPage.selectOperator(operatorName); - cy.get('body').then(($body) => { - if ($body.text().includes('Show community Operator')) { - cy.log('Installing community operator'); - modal.submit(); - modal.shouldBeClosed(); - } - }); - operatorsPage.verifySidePane(); - cy.get(operatorsPO.alertDialog).then(($sidePane) => { - if ($sidePane.find(operatorsPO.sidePane.install).length) { - cy.wait(20000); - cy.get(operatorsPO.sidePane.install).click({ force: true }); - cy.get(operatorsPO.installOperators.title).should('contain.text', pageTitle.InstallOperator); - if (operatorName === operators.WebTerminalOperator) { - cy.get(operatorsPO.warningAlert, { timeout: 3000 }).should('be.visible'); - } - cy.get(operatorsPO.operatorHub.install).click(); - cy.get(operatorsPO.operatorHub.installingOperatorModal).should('be.visible'); - app.waitForLoad(); - - // workaround for https://bugzilla.redhat.com/show_bug.cgi?id=2059865 - const waitForResult = (tries: number = 10) => { - if (tries < 1) { - return; - } - cy.wait(2000); - cy.get('body').then((body) => { - if (body.find(`[data-test="success-icon"]`).length > 0) { - cy.byTestID('success-icon').should('be.visible'); - } else if (body.find('[class*="alert"]').length > 0) { - cy.log('Installation flow interrupted, check the Installed Operators page for status'); - operatorsPage.navigateToInstallOperatorsPage(); - operatorsPage.searchOperatorInInstallPage(operatorName); - cy.contains('Succeeded', { timeout: 300000 }); - } else { - waitForResult(tries - 1); - } - }); - }; - waitForResult(); - } else { - cy.log(`${operatorName} Operator is already installed`); - sidePane.operatorClose(); - } - operatorsPage.navigateToInstallOperatorsPage(); - operatorsPage.verifyInstalledOperator(operatorName); - }); -}; - -// Conditional wait (recursive). -// Installs operator if it's not installed. -// Needs to be done this way, beacuse the operators list is not updated quickly enough after filtering. -const installIfNotInstalled = (operator: operators, tries: number = 4, polling: number = 500) => { - if (tries === 0) { - cy.log(`Operator ${operator} is already installed.`); - return; - } - cy.get('body', { - timeout: 50000, - }).then(($ele) => { - if ($ele.find(operatorsPO.installOperators.noOperatorsFound).length) { - cy.log(`Operator ${operator} was not yet installed.`); - installOperator(operator); - } else { - // "No operators found" element was not found. Wait and try again. - cy.wait(polling); - installIfNotInstalled(operator, tries - 1, polling); - } - }); -}; - -const waitForCRDs = (operator: operators) => { - switch (operator) { - case operators.PipelinesOperator: - cy.log(`Verify the CRD's for the "${operator}"`); - operatorsPage.navigateToCustomResourceDefinitions(); - cy.byTestID('name-filter-input').clear().type('Pipeline'); - cy.get('tr[data-test-rows="resource-row"]', { timeout: 300000 }).should( - 'have.length.within', - 4, - 6, - ); - cy.get('[data-test-id="TektonPipeline"]', { timeout: 80000 }).should('be.visible'); - cy.get('[data-test-id="PipelineRun"]', { timeout: 80000 }).should('be.visible'); - cy.get('[data-test-id="Pipeline"]', { timeout: 80000 }).should('be.visible'); - break; - - case operators.WebTerminalOperator: - cy.log(`Verify the CRD's for the "${operator}"`); - operatorsPage.navigateToCustomResourceDefinitions(); - cy.byTestID('name-filter-input').clear().type('DevWorkspace'); - cy.get('tr[data-test-rows="resource-row"]', { timeout: 300000 }).should( - 'have.length.within', - 4, - 6, - ); - cy.get('[data-test-id="DevWorkspace"]', { timeout: 80000 }).should('be.visible'); - cy.get('[data-test-id="DevWorkspaceOperatorConfig"]', { timeout: 80000 }).should( - 'be.visible', - ); - cy.get('[data-test-id="DevWorkspaceRouting"]', { timeout: 80000 }).should('be.visible'); - cy.get('[data-test-id="DevWorkspaceTemplate"]', { timeout: 80000 }).should('be.visible'); - break; - default: - cy.log(`waiting for CRC's is not applicable for this ${operator} operator`); - } -}; - -const waitForPipelineTasks = (retries: number = 30) => { - if (retries === 0) { - return; - } - cy.contains('h1', 'Pipeline builder').should('be.visible'); - cy.byTestID('loading-indicator').should('not.exist'); - cy.wait(500); - cy.get('[id="form-radiobutton-editorType-form-field"]').click(); - cy.get('body').then(($body) => { - if ($body.find(`[data-id="pipeline-builder"]`).length === 0) { - cy.wait(10000); - cy.reload(); - waitForPipelineTasks(retries - 1); - } - }); -}; - -const createShipwrightBuild = () => { - projectNameSpace.selectOrCreateProject(Cypress.expose('NAMESPACE')); - cy.get('body').then(($body) => { - if ($body.find(operatorsPO.installOperators.search)) { - cy.get(operatorsPO.installOperators.search).clear().type(operators.ShipwrightOperator); - } - }); - cy.get(operatorsPO.installOperators.shipwrightBuildLink).click({ force: true }); - cy.get('body').then(($body) => { - if ($body.text().includes('Page Not Found')) { - cy.reload(); - } - }); - detailsPage.titleShouldContain(pageTitle.ShipwrightBuild); - app.waitForLoad(); - cy.get('body').then(($body) => { - if ($body.find('[role="grid"]').length > 0) { - cy.log(`${pageTitle.ShipwrightBuild} already subscribed`); - } else { - cy.byTestID('item-create').click(); - detailsPage.titleShouldContain(pageTitle.ShipwrightBuild); - cy.byTestID('create-dynamic-form').click(); - cy.byLegacyTestID('details-actions').should('be.visible'); - cy.contains('Ready', { timeout: 150000 }).should('be.visible'); - } - }); -}; - -const performPostInstallationSteps = (operator: operators): void => { - switch (operator) { - case operators.ServerlessOperator: - cy.log(`Performing Serverless post installation steps`); - createKnativeServing(); - createKnativeEventing(); - createKnativeKafka(); - operatorsPage.navigateToOperatorHubPage(); - break; - case operators.RedHatCodereadyWorkspaces: - cy.log(`Performing CRW post-installation steps`); - installCRW(); - waitForCRWToBeAvailable(); - break; - case operators.PipelinesOperator: - cy.log(`Performing Pipelines post-installation steps`); - cy.request( - 'api/kubernetes/apis/operators.coreos.com/v1alpha1/namespaces/openshift-operators/subscriptions/openshift-pipelines-operator-rh', - ).then((resp) => { - expect(resp.status).toEqual(200); - }); - waitForCRDs(operators.PipelinesOperator); - cy.visit('/pipelines/ns/default'); - pipelinesPage.clickOnCreatePipeline(); - waitForPipelineTasks(); - break; - case operators.WebTerminalOperator: - cy.log(`Performing Web Terminal post-installation steps`); - waitForCRDs(operators.WebTerminalOperator); - break; - case operators.ShipwrightOperator: - cy.log(`Performing Shipwright Operator post-installation steps`); - createShipwrightBuild(); - break; - default: - cy.log(`Nothing to do in post-installation steps`); - } -}; - -export const verifyAndInstallOperator = (operator: operators, namespace?: string) => { - cy.log(`Installing operator: "${operator}"`); - perspective.switchTo(switchPerspective.Administrator); - operatorsPage.navigateToInstallOperatorsPage(); - if (namespace !== undefined) { - projectNameSpace.selectProjectOrDoNothing(namespace); - } - operatorsPage.searchOperatorInInstallPage(operator); - - installIfNotInstalled(operator); - performPostInstallationSteps(operator); -}; - -export const verifyAndInstallPipelinesOperator = () => { - perspective.switchTo(switchPerspective.Administrator); - verifyAndInstallOperator(operators.PipelinesOperator); -}; - -export const verifyAndInstallKnativeOperator = () => { - perspective.switchTo(switchPerspective.Administrator); - verifyAndInstallOperator(operators.ServerlessOperator); -}; - -export const verifyAndInstallGitopsPrimerOperator = () => { - perspective.switchTo(switchPerspective.Administrator); - verifyAndInstallOperator(operators.GitopsPrimer); -}; diff --git a/frontend/packages/dev-console/integration-tests/support/pages/functions/installOperatorOnClusterUsingCLI.ts b/frontend/packages/dev-console/integration-tests/support/pages/functions/installOperatorOnClusterUsingCLI.ts deleted file mode 100644 index de0c6372461..00000000000 --- a/frontend/packages/dev-console/integration-tests/support/pages/functions/installOperatorOnClusterUsingCLI.ts +++ /dev/null @@ -1,227 +0,0 @@ -import { - operatorNamespaces, - operatorSubscriptions, - operatorPackage, - operators, -} from '../../constants/global'; -import { checkOperatorvailabilityStatus } from './checkOperatorHub'; -import { - checkPipelineOperatorStatus, - checkKnativeOperatorStatus, - checkShipwrightOperatorStatus, - checkBuildsForOpenshiftOperatorStatus, - checkWebterminalOperatorStatus, - checkRedHatIntegrationCamelKOperatorStatus, - checkDevWorkspaceOperatorStatus, -} from './checkOperatorStatus'; -import { - createKnativeEventingUsingCLI, - createKnativeKafkaUsingCLI, - createKnativeServingUsingCLI, -} from './knativeSubscriptions'; -import { - checkShipwrightBuildStatus, - createBuildsForOpenshiftBuildUsingCLI, - createClusterBuildStrategiesUsingCLI, - createShipwrightBuildUsingCLI, -} from './shipwrightSubscriptions'; - -const checkOperatorStatus = (operator: operators) => { - switch (operator) { - case operators.PipelinesOperator: - checkPipelineOperatorStatus(); - break; - case operators.ServerlessOperator: - checkKnativeOperatorStatus(); - break; - case operators.ShipwrightOperator: - checkShipwrightOperatorStatus(); - break; - case operators.BuildsForOpenshiftOperator: - checkBuildsForOpenshiftOperatorStatus(); - break; - case operators.WebTerminalOperator: - checkWebterminalOperatorStatus(); - break; - case operators.DevWorkspaceOperator: - checkDevWorkspaceOperatorStatus(); - break; - case operators.RedHatIntegrationCamelK: - checkRedHatIntegrationCamelKOperatorStatus(); - break; - default: - throw new Error('Invalid Operator'); - } -}; - -const performPostInstallationSteps = (operator: operators): void => { - cy.log(`Performing ${operator} post-installation steps`); - switch (operator) { - case operators.PipelinesOperator: - checkPipelineOperatorStatus(); - break; - case operators.ServerlessOperator: - cy.wait(40000); - createKnativeServingUsingCLI(); - createKnativeEventingUsingCLI(); - createKnativeKafkaUsingCLI(); - break; - case operators.ShipwrightOperator: - checkOperatorStatus(operators.ShipwrightOperator); - checkOperatorStatus(operators.PipelinesOperator); - createShipwrightBuildUsingCLI(); - break; - case operators.BuildsForOpenshiftOperator: - checkOperatorStatus(operators.BuildsForOpenshiftOperator); - checkOperatorStatus(operators.PipelinesOperator); - createBuildsForOpenshiftBuildUsingCLI(); - checkShipwrightBuildStatus(); - createClusterBuildStrategiesUsingCLI(); - break; - case operators.WebTerminalOperator: - checkWebterminalOperatorStatus(); - break; - default: - cy.log(`Nothing to do in post-installation steps`); - } -}; - -const installOperatorUsingCLI = (operator: operators) => { - let yamlFile; - switch (operator) { - case operators.PipelinesOperator: - yamlFile = '../../integration-tests/testData/pipelinesOperatorSubscription.yaml'; - break; - case operators.ServerlessOperator: - yamlFile = - '../../knative-plugin/integration-tests/testData/serverlessOperatorSubscription.yaml'; - break; - case operators.ShipwrightOperator: - yamlFile = - '../../shipwright-plugin/integration-tests/testData/shipwrightOperatorSubscription.yaml'; - break; - case operators.BuildsForOpenshiftOperator: - yamlFile = - '../../shipwright-plugin/integration-tests/testData/buildsForOpenshiftOperatorInstallation/buildsSubscription.yaml'; - break; - case operators.DevWorkspaceOperator: - yamlFile = - '../../webterminal-plugin/integration-tests/testData/devworkspaceOperatorSubscription.yaml'; - break; - case operators.WebTerminalOperator: - yamlFile = - '../../webterminal-plugin/integration-tests/testData/webterminalOperatorSubscription.yaml'; - break; - case operators.RedHatIntegrationCamelK: - yamlFile = - '../../knative-plugin/integration-tests/testData/redhatCamelkOperatorSubscription.yaml'; - break; - default: - throw new Error('Invalid Operator'); - } - - cy.exec(`oc apply -f ${yamlFile}`, { - failOnNonZeroExit: false, - }).then(function (result) { - if (result.stderr) { - throw new Error(result.stderr); - } else { - cy.log(result.stdout); - } - }); - - performPostInstallationSteps(operator); -}; - -const checkSubscriptionStatus = (operator: operators) => { - let namespace; - let subscriptionName; - let operatorPackageName; - const resourceName = 'subscriptions.operators.coreos.com'; - const condition = 'CatalogSourcesUnhealthy=false'; - - switch (operator) { - case operators.PipelinesOperator: - operatorPackageName = operatorPackage.PipelinesOperator; - namespace = operatorNamespaces.PipelinesOperator; - subscriptionName = operatorSubscriptions.PipelinesOperator; - break; - case operators.ServerlessOperator: - operatorPackageName = operatorPackage.ServerlessOperator; - namespace = operatorNamespaces.ServerlessOperator; - subscriptionName = operatorSubscriptions.ServerlessOperator; - break; - case operators.ShipwrightOperator: - operatorPackageName = operatorPackage.ShipwrightOperator; - namespace = operatorNamespaces.ShipwrightOperator; - subscriptionName = operatorSubscriptions.ShipwrightOperator; - break; - case operators.BuildsForOpenshiftOperator: - operatorPackageName = operatorPackage.BuildsForOpenshiftOperator; - namespace = operatorNamespaces.BuildsForOpenshiftOperator; - subscriptionName = operatorSubscriptions.BuildsForOpenshiftOperator; - break; - case operators.DevWorkspaceOperator: - operatorPackageName = operatorPackage.DevWorkspaceOperator; - namespace = operatorNamespaces.DevWorkspaceOperator; - subscriptionName = operatorSubscriptions.DevWorkspaceOperator; - break; - case operators.WebTerminalOperator: - operatorPackageName = operatorPackage.WebTerminalOperator; - namespace = operatorNamespaces.WebTerminalOperator; - subscriptionName = operatorSubscriptions.WebTerminalOperator; - break; - case operators.RedHatIntegrationCamelK: - operatorPackageName = operatorPackage.RedHatIntegrationCamelK; - namespace = operatorNamespaces.RedHatIntegrationCamelK; - subscriptionName = operatorSubscriptions.RedHatIntegrationCamelK; - break; - default: - throw new Error('Invalid Operator'); - } - - cy.exec( - `oc wait ${resourceName} --for=condition=${condition} --timeout=10m -n ${namespace} ${subscriptionName}`, - { - failOnNonZeroExit: false, - }, - ).then(function (result) { - if (result.stdout.includes('condition met')) { - cy.log(`${operator} is installed in cluster, check operator status.`); - checkOperatorStatus(operator); - } else { - cy.log(`${operator} not installed, installing...`); - checkOperatorvailabilityStatus(operatorPackageName); - installOperatorUsingCLI(operator); - } - }); -}; - -const verifyAndInstallOperatorUsingCLI = (operator: operators) => { - checkSubscriptionStatus(operator); -}; - -export const installPipelinesOperatorUsingCLI = () => { - verifyAndInstallOperatorUsingCLI(operators.PipelinesOperator); -}; - -export const installKnativeOperatorUsingCLI = () => { - verifyAndInstallOperatorUsingCLI(operators.ServerlessOperator); -}; - -export const installShipwrightOperatorUsingCLI = () => { - verifyAndInstallOperatorUsingCLI(operators.ShipwrightOperator); -}; - -export const installBuildsForOpenshiftOperatorUsingCLI = () => { - verifyAndInstallOperatorUsingCLI(operators.BuildsForOpenshiftOperator); -}; - -export const installWebterminalOperatorUsingCLI = () => { - // verifyAndInstallOperatorUsingCLI(operators.DevWorkspaceOperator); - verifyAndInstallOperatorUsingCLI(operators.WebTerminalOperator); -}; - -export const installRedHatIntegrationCamelKOperatorUsingCLI = () => { - verifyAndInstallOperatorUsingCLI(operators.RedHatIntegrationCamelK); -}; diff --git a/frontend/packages/dev-console/integration-tests/support/pages/functions/knativeSubscriptions.ts b/frontend/packages/dev-console/integration-tests/support/pages/functions/knativeSubscriptions.ts deleted file mode 100644 index 65fac552e11..00000000000 --- a/frontend/packages/dev-console/integration-tests/support/pages/functions/knativeSubscriptions.ts +++ /dev/null @@ -1,153 +0,0 @@ -import { operators } from '@console/dev-console/integration-tests/support/constants/global'; -import { operatorsPO } from '@console/dev-console/integration-tests/support/pageObjects/operators-po'; -import { app, projectNameSpace } from '@console/dev-console/integration-tests/support/pages/app'; -import { detailsPage } from '../../../../../integration-tests/views/details-page'; -import { pageTitle } from '../../constants'; -import { operatorsPage } from '../operators-page'; - -export const createKnativeServing = () => { - projectNameSpace.selectProject('knative-serving'); - cy.get('body').then(($body) => { - if ($body.find(operatorsPO.installOperators.search)) { - cy.get(operatorsPO.installOperators.search).clear().type(operators.ServerlessOperator); - } - }); - cy.get(operatorsPO.installOperators.knativeServingLink).click({ force: true }); - cy.get('body').then(($body) => { - if ($body.text().includes('Page Not Found')) { - cy.reload(); - } - }); - detailsPage.titleShouldContain(pageTitle.KnativeServings); - app.waitForLoad(); - cy.get('body').then(($body) => { - if ($body.find('[role="grid"]').length > 0) { - cy.log(`${pageTitle.KnativeServings} already subscribed`); - } else { - cy.byTestID('item-create').click(); - detailsPage.titleShouldContain(pageTitle.CreateKnativeServing); - cy.byTestID('create-dynamic-form').click(); - cy.byLegacyTestID('details-actions').should('be.visible'); - cy.contains( - 'DependenciesInstalled, DeploymentsAvailable, InstallSucceeded, Ready, VersionMigrationEligible', - { timeout: 150000 }, - ).should('be.visible'); - } - }); -}; - -export const createKnativeEventing = () => { - projectNameSpace.selectProject('knative-eventing'); - cy.get('body').then(($body) => { - if ($body.find(operatorsPO.installOperators.search)) { - cy.get(operatorsPO.installOperators.search).clear().type(operators.ServerlessOperator); - } - }); - cy.get(operatorsPO.installOperators.knativeEventingLink).click({ force: true }); - cy.get('body').then(($body) => { - if ($body.text().includes('Page Not Found')) { - cy.reload(); - } - }); - detailsPage.titleShouldContain(pageTitle.KnativeEventings); - app.waitForLoad(); - cy.get('body').then(($body) => { - if ($body.find('[role="grid"]').length > 0) { - cy.log(`${pageTitle.KnativeEventings} already subscribed`); - } else { - cy.byTestID('item-create').click(); - detailsPage.titleShouldContain(pageTitle.CreateKnativeEventing); - cy.byTestID('create-dynamic-form').click(); - cy.byLegacyTestID('details-actions').should('be.visible'); - cy.contains( - 'DependenciesInstalled, DeploymentsAvailable, InstallSucceeded, Ready, VersionMigrationEligible', - { timeout: 150000 }, - ).should('be.visible'); - } - }); -}; - -export const createKnativeKafka = () => { - operatorsPage.navigateToInstallOperatorsPage(); - projectNameSpace.selectProject('knative-eventing'); - cy.get('body').then(($body) => { - if ($body.find(operatorsPO.installOperators.search)) { - cy.get(operatorsPO.installOperators.search).clear().type(operators.ServerlessOperator); - } - }); - cy.get(operatorsPO.installOperators.knativeKafkaLink).click({ force: true }); - cy.get('body').then(($body) => { - if ($body.text().includes('Page Not Found')) { - cy.reload(); - } - }); - detailsPage.titleShouldContain(pageTitle.KnativeKafka); - app.waitForLoad(); - cy.get('body').then(($body) => { - if ($body.find('[role="grid"]').length > 0) { - cy.log(`${pageTitle.KnativeKafka} already subscribed`); - } else { - cy.byTestID('item-create').click(); - detailsPage.titleShouldContain(pageTitle.CreateKnativeKafka); - cy.get('#root_spec_source_accordion-toggle').click(); - cy.get('#root_spec_source_enabled').click(); - cy.get('#root_spec_sink_accordion-toggle').click(); - cy.get('#root_spec_sink_enabled').click(); - cy.byTestID('create-dynamic-form').click(); - - cy.byLegacyTestID('details-actions').should('be.visible'); - cy.contains('InstallSucceeded', { timeout: 150000 }).should('be.visible'); - } - }); -}; - -export const createKnativeServingUsingCLI = (retries: number = 3) => { - const namespace = 'knative-serving'; - const yamlFile = '../../knative-plugin/integration-tests/testData/knative-serving.yaml'; - cy.exec(`oc apply -f ${yamlFile} -n ${namespace}`, { - failOnNonZeroExit: false, - }).then(function (result) { - cy.log(result.stdout || result.stderr); - if (result.stderr) { - if (retries === 0) { - throw new Error(result.stderr); - } - cy.wait(20000); - createKnativeServingUsingCLI(retries - 1); - } - }); -}; - -export const createKnativeEventingUsingCLI = (retries: number = 3) => { - const namespace = 'knative-eventing'; - const yamlFile = '../../knative-plugin/integration-tests/testData/knative-eventing.yaml'; - cy.exec(`oc apply -f ${yamlFile} -n ${namespace}`, { - failOnNonZeroExit: false, - }).then(function (result) { - cy.log(result.stdout || result.stderr); - if (result.stderr) { - if (retries === 0) { - throw new Error(result.stderr); - } - cy.wait(20000); - createKnativeEventingUsingCLI(retries - 1); - } - }); -}; - -export const createKnativeKafkaUsingCLI = (retries: number = 3) => { - const namespace = 'knative-eventing'; - const yamlFile = '../../knative-plugin/integration-tests/testData/knative-kafka.yaml'; - cy.exec(`oc apply -f ${yamlFile} -n ${namespace}`, { - failOnNonZeroExit: false, - }).then(function (result) { - cy.log(result.stdout || result.stderr); - if (result.stderr) { - if (retries === 0) { - throw new Error(result.stderr); - } - cy.wait(20000); - createKnativeKafkaUsingCLI(retries - 1); - } - }); -}; diff --git a/frontend/packages/dev-console/integration-tests/support/pages/functions/shipwrightSubscriptions.ts b/frontend/packages/dev-console/integration-tests/support/pages/functions/shipwrightSubscriptions.ts deleted file mode 100644 index e5632bbd598..00000000000 --- a/frontend/packages/dev-console/integration-tests/support/pages/functions/shipwrightSubscriptions.ts +++ /dev/null @@ -1,74 +0,0 @@ -export const createShipwrightBuildUsingCLI = (retries: number = 3) => { - const yamlFile = '../../shipwright-plugin/integration-tests/testData/sampleShipwrightBuild.yaml'; - cy.exec(`oc apply -f ${yamlFile}`, { - failOnNonZeroExit: false, - }).then(function (result) { - cy.log(result.stdout || result.stderr); - if (result.stderr) { - if (retries === 0) { - throw new Error(result.stderr); - } - cy.wait(20000); - createShipwrightBuildUsingCLI(retries - 1); - } - }); -}; - -export const createBuildsForOpenshiftBuildUsingCLI = (retries: number = 3) => { - const yamlFile = - '../../shipwright-plugin/integration-tests/testData/buildsForOpenshiftOperatorInstallation/openshiftBuilds.yaml'; - cy.exec(`oc apply -f ${yamlFile}`, { - failOnNonZeroExit: false, - }).then(function (result) { - cy.log(result.stdout || result.stderr); - if (result.stderr) { - if (retries === 0) { - throw new Error(result.stderr); - } - cy.wait(20000); - createBuildsForOpenshiftBuildUsingCLI(retries - 1); - } - }); -}; - -/* Check whether the ShipwrightBuild Resource is created successfully */ -export const checkShipwrightBuildStatus = (retries: number = 3) => { - if (retries === 0) { - throw new Error('Failed to install Builds for Openshift Operator - Pod timeout'); - } else { - cy.exec(`oc wait --for=condition=ready ShipwrightBuild/openshift-builds --timeout=300s`, { - failOnNonZeroExit: false, - }).then(function (result) { - if (result.stdout.includes('condition met')) { - cy.log(`Success: ${result.stdout}`); - } else { - cy.log(result.stderr); - cy.wait(30000); - checkShipwrightBuildStatus(retries - 1); - } - }); - } -}; - -/* Note: To be removed with the newer version of operator in the future */ -export const createClusterBuildStrategiesUsingCLI = (retries: number = 3) => { - const clusterBuildStrategies = [ - '../../shipwright-plugin/integration-tests/testData/buildsForOpenshiftOperatorInstallation/buildah.yaml', - '../../shipwright-plugin/integration-tests/testData/buildsForOpenshiftOperatorInstallation/s2i.yaml', - ]; - - for (const strategy of clusterBuildStrategies) { - cy.exec(`oc apply -f ${strategy}`, { - failOnNonZeroExit: false, - }).then(function (result) { - cy.log(result.stdout || result.stderr); - if (result.stderr) { - if (retries === 0) { - throw new Error(result.stderr); - } - cy.wait(20000); - createClusterBuildStrategiesUsingCLI(retries - 1); - } - }); - } -}; diff --git a/frontend/packages/dev-console/integration-tests/support/pages/importYaml.ts b/frontend/packages/dev-console/integration-tests/support/pages/importYaml.ts deleted file mode 100644 index e7e73799c1c..00000000000 --- a/frontend/packages/dev-console/integration-tests/support/pages/importYaml.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { yamlEditor } from './app'; - -export const importYaml = { - setYAMLEditorContent: (yamlLocation: string) => { - cy.get('[data-test="import-yaml"]').click(); - cy.get('.yaml-editor').should('be.visible'); - cy.get('div.monaco-scrollable-element.editor-scrollable.vs-dark') - .click() - .focused() - .type('{ctrl}a') - .clear(); - yamlEditor.setEditorContent(yamlLocation); - cy.get('[data-test="save-changes"]').click(); - }, -}; diff --git a/frontend/packages/dev-console/integration-tests/support/pages/index.ts b/frontend/packages/dev-console/integration-tests/support/pages/index.ts deleted file mode 100644 index 64975ea9b35..00000000000 --- a/frontend/packages/dev-console/integration-tests/support/pages/index.ts +++ /dev/null @@ -1,11 +0,0 @@ -/* eslint-disable no-barrel-files/no-barrel-files */ -export * from './add-flow/index'; -export * from '@console/topology/integration-tests/support/pages/topology'; -export * from '@console/topology/integration-tests/support/page-objects/export-applications-po'; -export * from './monitoring/index'; -export * from './addHealthChecks-page'; -export * from './app'; -export * from './modal'; -export * from './operators-page'; -export * from './functions/index'; -export * from './quickStartsPage'; diff --git a/frontend/packages/dev-console/integration-tests/support/pages/modal.ts b/frontend/packages/dev-console/integration-tests/support/pages/modal.ts deleted file mode 100644 index dcfe12c347f..00000000000 --- a/frontend/packages/dev-console/integration-tests/support/pages/modal.ts +++ /dev/null @@ -1,81 +0,0 @@ -import { eventSourcePO } from '../pageObjects'; - -export const editLabels = { - enterLabel: (labelName: string) => cy.byTestID('tags-input').type(labelName).type('{enter}'), - numberOfLabels: () => { - return cy.get('tags-input span.tag-item-content'); - }, - removeLabel: (labelName: string) => { - cy.get(`[aria-label="Close ${labelName}"]`).click(); - }, -}; - -export const addSubscription = { - enterSubscriberName: (name: string) => - cy.get('[id="form-input-formData-metadata-name-field"]').clear().type(name), - selectKnativeService: (knativeService: string = 'nodejs-ex-git') => { - cy.get('[id$="subscriber-ref-name-field"]').click(); - cy.get('[data-test="console-select-item"]').contains(knativeService).click(); - }, -}; - -export const editAnnotations = { - add: () => cy.byTestID('add-button').click(), - enterKey: (key: string) => { - cy.byTestID('pairs-list-name').last().type(key); - }, - enterValue: (value: string) => cy.byTestID('pairs-list-value').last().type(value), - removeAnnotation: (annotationKey: string) => { - cy.byTestID('pairs-list-name').each(($el, index) => { - if ($el.prop('value').includes(annotationKey)) { - cy.get('button[data-test="delete-button"]').eq(index).click(); - } - }); - }, -}; - -export const setTrafficDistribution = { - add: () => cy.byTestID('add-action').click(), - enterSplit: (split: string) => cy.get('[id$="percent-field"]').last().clear().type(split), - selectRevision: (revisionName: string) => { - cy.get('[id$="revisionName-field"]').click(); - cy.get(`[data-test-dropdown-menu^="${revisionName}"]`).click(); - }, -}; - -export const editApplicationGrouping = { - clickCreateApplication: () => { - cy.byTestDropDownMenu('#CREATE_APPLICATION_KEY#').click(); - }, - selectApplication: (appName: string) => { - cy.get('#form-dropdown-application-name-field').click(); - cy.get(`[id="${appName}-link"]`).click(); - }, - createApplication: (appName: string) => { - cy.get('#form-dropdown-application-name-field').click(); - editApplicationGrouping.clickCreateApplication(); - cy.byLegacyTestID('application-form-app-input').clear().type(appName); - }, - enterApplicationName: (appName: string) => { - cy.byLegacyTestID('application-form-app-input').type(appName); - }, -}; - -export const deleteRevision = { - verifyMessage: (message: string) => cy.get('[role="dialog"] p').should('contain.text', message), - clickOK: () => cy.byLegacyTestID('modal-cancel-action').click(), -}; - -export const moveSink = { - selectResource: (resourceName: string) => { - cy.get(eventSourcePO.sinkBinding.sink.resourceRadioButton).should('be.checked'); - cy.get(eventSourcePO.sinkBinding.sink.resource.resourceDropdown).click(); - cy.get(`[id*="${resourceName}-link"]`).click(); - }, - enterURI: (uri: string) => { - cy.get(eventSourcePO.sinkBinding.sink.uriRadioButton).should('be.checked'); - cy.byLegacyTestID('sink-section-uri').clear().type(uri); - }, - verifyResourceDropDown: () => - cy.get(eventSourcePO.sinkBinding.sink.resource.resourceDropdown).should('be.visible'), -}; diff --git a/frontend/packages/dev-console/integration-tests/support/pages/monitoring/index.ts b/frontend/packages/dev-console/integration-tests/support/pages/monitoring/index.ts deleted file mode 100644 index 6ce25c51cd6..00000000000 --- a/frontend/packages/dev-console/integration-tests/support/pages/monitoring/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -/* eslint-disable no-barrel-files/no-barrel-files */ -export * from './monitoring-page'; diff --git a/frontend/packages/dev-console/integration-tests/support/pages/monitoring/monitoring-page.ts b/frontend/packages/dev-console/integration-tests/support/pages/monitoring/monitoring-page.ts deleted file mode 100644 index 8facc4b43a4..00000000000 --- a/frontend/packages/dev-console/integration-tests/support/pages/monitoring/monitoring-page.ts +++ /dev/null @@ -1,33 +0,0 @@ -import { monitoringTabs } from '../../constants'; -import { monitoringPO } from '../../pageObjects'; - -export const detailsPage = { - isTabSelected: (tabSelector: string) => - cy.get(tabSelector).parent('li').should('have.class', 'active'), - selectTab: (tabSelector: string) => cy.get(tabSelector).click(), -}; - -export const monitoringPage = { - events: { - selectResources: (resourceName: string) => { - cy.selectValueFromAutoCompleteDropDown(monitoringPO.eventsTab.resources, resourceName); - }, - selectType: () => { - cy.byTestID('console-select-menu-toggle').click(); - cy.get('#all-link').click(); - // To Do - }, - }, - selectTab: (tabName: monitoringTabs | string) => { - switch (tabName) { - case 'Events': - case monitoringTabs.Events: - detailsPage.selectTab(monitoringPO.tabs.events); - cy.url().should('include', 'events'); - break; - default: - cy.log(`${tabName} is unable to click on monitoring page`); - break; - } - }, -}; diff --git a/frontend/packages/dev-console/integration-tests/support/pages/operators-page.ts b/frontend/packages/dev-console/integration-tests/support/pages/operators-page.ts deleted file mode 100644 index 0df6397c35c..00000000000 --- a/frontend/packages/dev-console/integration-tests/support/pages/operators-page.ts +++ /dev/null @@ -1,225 +0,0 @@ -import { detailsPage } from '@console/cypress-integration-tests/views/details-page'; -import { modal } from '@console/cypress-integration-tests/views/modal'; -import { operators, pageTitle } from '../constants'; -import { operatorsPO } from '../pageObjects'; -import { app } from './app'; - -export const operatorsPage = { - navigateToOperatorHubPage: () => { - cy.get(operatorsPO.nav.operatorHub).then(($nav) => { - if (!$nav.is(':visible')) { - cy.get(operatorsPO.nav.ecosystem).click(); - } - cy.get(operatorsPO.nav.operatorHub).click({ force: true }); - }); - detailsPage.titleShouldContain(pageTitle.OperatorHub); - cy.get('.skeleton-catalog--grid').should('not.exist'); - }, - - navigateToInstallOperatorsPage: () => { - cy.get(operatorsPO.nav.installedOperators).then(($nav) => { - if (!$nav.is(':visible')) { - cy.get(operatorsPO.nav.ecosystem).click(); - } - cy.get(operatorsPO.nav.installedOperators).click({ force: true }); - }); - app.waitForLoad(); - detailsPage.titleShouldContain(pageTitle.InstalledOperators); - }, - - navigateToEventingPage: () => { - cy.get(operatorsPO.nav.eventing).then(($nav) => { - if (!$nav.is(':visible')) { - cy.get(operatorsPO.nav.serverless).click(); - } - cy.get(operatorsPO.nav.eventing).click({ force: true }); - }); - detailsPage.titleShouldContain(pageTitle.Eventing); - }, - navigateToServingPage: () => { - cy.get(operatorsPO.nav.serving).then(($nav) => { - if (!$nav.is(':visible')) { - cy.get(operatorsPO.nav.serverless).click(); - } - cy.get(operatorsPO.nav.serving).click({ force: true }); - }); - detailsPage.titleShouldContain(pageTitle.Serving); - }, - navigateToCustomResourceDefinitions: () => { - cy.get(operatorsPO.nav.administration).click(); - cy.get(operatorsPO.nav.customResourceDefinitions).click({ force: true }); - detailsPage.titleShouldContain(pageTitle.CustomResourceDefinitions); - }, - - selectSourceType: (sourceType: string = 'redHat') => { - if (sourceType === 'redHat') { - cy.get(operatorsPO.operatorHub.redHatSourceType).scrollIntoView().click(); - } - }, - - searchOperator: (operatorName: string | operators) => { - cy.get(operatorsPO.search).should('be.visible').clear().type(operatorName); - }, - - searchOperatorInInstallPage: (operatorName: string | operators) => { - cy.get('.co-installed-operators').should('be.visible'); - cy.get('body').then(($body) => { - if ($body.find(operatorsPO.installOperators.noOperatorsDetails).length === 0) { - cy.get(operatorsPO.installOperators.search).clear().type(operatorName); - } else { - cy.log( - `${operatorName} operator is not installed in this cluster, so lets install it from operator Hub`, - ); - } - }); - }, - - verifySubscriptionPage: (operatorLogo: string) => - cy.get(operatorsPO.subscription.logo).should('have.text', operatorLogo), - - verifyInstalledOperator: (operatorName: string) => { - cy.get(operatorsPO.installOperators.search).should('be.visible').clear().type(operatorName); - cy.get(operatorsPO.installOperators.operatorStatus, { - timeout: 100000, - }).should('contain.text', 'Succeeded'); - }, - - verifyOperatorNotAvailable: (operatorName: string) => { - cy.get(operatorsPO.installOperators.search).clear().type(operatorName); - cy.get(operatorsPO.installOperators.noOperatorFoundMessage).should( - 'have.text', - 'No Operators Found', - ); - }, - - selectOperator: (opt: operators | string) => { - switch (opt) { - case 'OpenShift Pipelines Operator': - case operators.PipelinesOperator: { - cy.get(operatorsPO.operatorHub.pipelinesOperatorCard).click(); - break; - } - case 'Red Hat CodeReady Workspaces': - case operators.RedHatCodereadyWorkspaces: { - cy.get(operatorsPO.operatorHub.redHatCodeReadyWorkspacesCard).click(); - break; - } - case 'OpenShift Serverless Operator': - case operators.ServerlessOperator: { - cy.get(operatorsPO.operatorHub.serverlessOperatorCard).click(); - break; - } - case 'OpenShift Virtualization': - case operators.VirtualizationOperator: { - cy.get(operatorsPO.operatorHub.virtualizationOperatorCard).click(); - break; - } - case 'Red Hat Integration - AMQ Streams': - case operators.ApacheKafka: { - cy.get(operatorsPO.operatorHub.apacheKafkaOperatorCard).click(); - break; - } - case 'Red Hat Integration - Camel K': - case operators.RedHatIntegrationCamelK: { - cy.get(operatorsPO.operatorHub.redHatCamelKOperatorCard).click(); - break; - } - case 'Camel K Operator': - case operators.ApacheCamelKOperator: { - cy.get(operatorsPO.operatorHub.apacheCamelKOperatorCard).click(); - modal.shouldBeOpened(); - modal.submit(); - modal.shouldBeClosed(); - break; - } - case 'Eclipse Che': - case operators.EclipseCheOperator: { - cy.byTestID('eclipse-che-community-operators-openshift-marketplace').click(); - break; - } - case 'GitOps': - case operators.GitOpsOperator: { - cy.get(operatorsPO.operatorHub.gitOpsOperatorCard).click(); - break; - } - case 'Web Terminal': - case operators.WebTerminalOperator: { - cy.get(operatorsPO.operatorHub.webTerminalOperatorCard).click(); - break; - } - case 'gitops-primer': - case operators.GitopsPrimer: { - cy.get(operatorsPO.operatorHub.gitopsPrimer).click(); - break; - } - case 'Crunchy Postgres for Kubernetes': - case operators.CrunchyPostgresforKubernetes: { - cy.get(operatorsPO.operatorHub.CrunchyPostgresforKubernetes).click(); - break; - } - case 'Quay Container Security': - case operators.QuayContainerSecurity: { - cy.get(operatorsPO.operatorHub.quayContainerSecurity).click(); - break; - } - case 'Shipwright Operator': - case operators.ShipwrightOperator: { - cy.get(operatorsPO.operatorHub.shipwrightOperator).click(); - break; - } - case 'Redis Operator': - case operators.RedisOperator: { - cy.get(operatorsPO.operatorHub.redisOperatorCard).click(); - break; - } - case 'AMQ Streams': - case operators.AMQStreams: { - cy.get(operatorsPO.operatorHub.amqStreams).click(); - break; - } - case 'RHOAS': - case operators.RHOAS: { - cy.get(operatorsPO.operatorHub.rhoas).click(); - break; - } - case 'Jaeger': - case operators.Jaeger: { - cy.get(operatorsPO.operatorHub.jaeger).click(); - break; - } - default: { - throw new Error('operator is not available'); - } - } - }, - - verifySidePane: () => cy.get(operatorsPO.alertDialog).should('be.exist'), - - clickInstallOnSidePane: () => { - cy.get(operatorsPO.alertDialog).then(($sidePane) => { - if ($sidePane.find(operatorsPO.sidePane.install).length) { - cy.get(operatorsPO.sidePane.install).click({ force: true }); - } else { - cy.log('Operator is already installed'); - } - }); - }, - - clickUninstallOnSidePane: () => { - cy.get(operatorsPO.alertDialog).then(($sidePane) => { - if ($sidePane.find(operatorsPO.sidePane.uninstall).length) { - cy.get(operatorsPO.sidePane.uninstall).click(); - } else { - cy.log('Operator is not installed'); - } - }); - }, - - verifyOperatorInNavigationMenu: (operatorName: string) => { - cy.get(operatorsPO.nav.menuItems).should('have.length.greaterThan', 62); - cy.get(operatorsPO.nav.menuItems).contains(operatorName).should('be.visible'); - }, - - clickOnCreate: () => cy.byButtonText('Install').click(), - clickOnCancel: () => cy.byButtonText('Cancel').click(), -}; diff --git a/frontend/packages/dev-console/integration-tests/support/pages/quickStartsPage.ts b/frontend/packages/dev-console/integration-tests/support/pages/quickStartsPage.ts deleted file mode 100644 index 3b49b572614..00000000000 --- a/frontend/packages/dev-console/integration-tests/support/pages/quickStartsPage.ts +++ /dev/null @@ -1,110 +0,0 @@ -import { devNavigationMenu } from '../constants/global'; -import { - addPagePO, - quickStartLeaveModalPO, - quickStartSidebarPO, - quickStartsPO, -} from '../pageObjects'; -import { app, navigateTo } from './app'; - -function clickVisibleButton(el: string) { - cy.get(quickStartSidebarPO.quickStartSidebarBody).then(($button) => { - const isVisible = $button.find(el).is(':visible'); - if (isVisible) { - cy.get(el).click(); - clickVisibleButton(el); - } else { - cy.log('quick start is complete'); - } - }); -} - -function closeQuickStart() { - cy.get(quickStartSidebarPO.quickStartSidebarBody).should('be.visible'); - cy.get(quickStartSidebarPO.closePanel).should('be.visible').click(); - cy.get(quickStartLeaveModalPO.leaveModal).should('be.visible'); - cy.get(quickStartLeaveModalPO.leaveButton).should('be.visible').click(); -} - -export const quickStartsPage = { - quickStartsCatalog: () => { - navigateTo(devNavigationMenu.Add); - app.waitForDocumentLoad(); - cy.get(addPagePO.viewAllQuickStarts).click(); - cy.get(quickStartsPO.quickStartTitle).scrollIntoView().should('be.visible'); - app.waitForLoad(); - cy.get('.pfext-quick-start-catalog__gallery').should('be.visible'); - }, - filterByKeyword: (filterName: string) => { - cy.get(quickStartsPO.filterKeyword).scrollIntoView().click(); - cy.get(quickStartsPO.filterKeyword).type(filterName); - }, - cardPresent: (cardName: string) => { - cy.get(cardName).scrollIntoView().should('be.visible'); - }, - status: () => { - cy.get(quickStartsPO.statusFilter).scrollIntoView().click(); - app.waitForLoad(); - cy.get(quickStartsPO.statusDropdown).should('be.visible'); - }, - executeQuickStart: (quickStart: string) => { - cy.get(quickStart) - .parent() - .then(($el) => { - if ($el.find(quickStartsPO.cardStatus).is(':visible')) { - if ($el.text().includes('Complete')) { - cy.log('quick start is complete'); - } else { - cy.get(quickStart).scrollIntoView().click(); - app.waitForDocumentLoad(); - cy.get(quickStartSidebarPO.quickStartSidebarBody).should('be.visible'); - clickVisibleButton(quickStartSidebarPO.nextButton); - cy.get(quickStartSidebarPO.quickStartSidebarBody) - .find(quickStartSidebarPO.closeButton) - .click(); - cy.get(quickStart) - .parent() - .find(quickStartsPO.cardStatus) - .should('be.visible') - .contains('Complete'); - } - } else { - cy.get(quickStart).scrollIntoView().find('[data-test="title"]').click(); - app.waitForDocumentLoad(); - cy.get(quickStartSidebarPO.quickStartSidebarBody).should('be.visible'); - cy.get(quickStartSidebarPO.quickStartSidebarBody) - .find(quickStartSidebarPO.startButton) - .click(); - clickVisibleButton(quickStartSidebarPO.nextButton); - cy.get(quickStartSidebarPO.quickStartSidebarBody) - .find(quickStartSidebarPO.closeButton) - .click(); - cy.get(quickStart) - .parent() - .find(quickStartsPO.cardStatus) - .should('be.visible') - .contains('Complete'); - } - }); - }, - leaveQuickStartIncomplete: (quickStart: string) => { - cy.get(quickStart).scrollIntoView().click(); - app.waitForDocumentLoad(); - cy.get(quickStartSidebarPO.quickStartSidebarBody).should('be.visible'); - cy.get(quickStartSidebarPO.quickStartSidebarBody).find(quickStartSidebarPO.startButton).click(); - closeQuickStart(); - }, - finishFirstQuickStart: () => { - cy.get(addPagePO.buildWithGuidedDocumentationItems).first().click(); - cy.get(quickStartSidebarPO.restartSideNoteAction).click(); - cy.get('li[class*=nav-item] h3').then(($elements) => { - const noOfsteps = $elements.length; - cy.get(quickStartSidebarPO.startButton).click(); - for (let currentStep = 0; currentStep < noOfsteps; currentStep++) { - cy.get(quickStartSidebarPO.yesOptionCheckInput).click(); - cy.get(quickStartSidebarPO.nextButton).click(); - } - cy.get(quickStartSidebarPO.closeButton).click(); - }); - }, -}; diff --git a/frontend/packages/dev-console/integration-tests/support/step-definitions/addFlow/create-from-catalog.ts b/frontend/packages/dev-console/integration-tests/support/step-definitions/addFlow/create-from-catalog.ts deleted file mode 100644 index ec4da9ecc92..00000000000 --- a/frontend/packages/dev-console/integration-tests/support/step-definitions/addFlow/create-from-catalog.ts +++ /dev/null @@ -1,103 +0,0 @@ -import { Given, When, Then } from 'cypress-cucumber-preprocessor/steps'; -import { detailsPage } from '@console/cypress-integration-tests/views/details-page'; -import { addOptions, catalogTypes, pageTitle } from '../../constants'; -import { catalogPO } from '../../pageObjects'; -import { addPage, catalogPage, gitPage } from '../../pages'; - -When('user selects From Catalog card from add page', () => { - addPage.selectCardFromOptions(addOptions.SoftwareCatalog); -}); - -When('user searches {string} card from catalog page', (cardName: string) => { - catalogPage.search(cardName); -}); - -When('user selects {string} option from Type section', (catalogType: string) => { - catalogPage.selectCatalogType(catalogType as catalogTypes); -}); - -When('user searches and selects {string} card from catalog page', (cardName: string) => { - catalogPage.search(cardName); - cy.get(catalogPO.catalogTypes.template).should('be.checked'); - catalogPage.selectCardInCatalog(cardName); -}); - -When('user searches and selects Template card {string} from catalog page', (cardName: string) => { - catalogPage.search(cardName); - detailsPage.titleShouldContain(pageTitle.Templates).scrollIntoView().should('be.visible'); - catalogPage.selectCardInCatalog(cardName); -}); - -When( - 'user searches and selects Builder Image card {string} from catalog page', - (cardName: string) => { - catalogPage.search(cardName); - detailsPage.titleShouldContain(pageTitle.BuilderImages).should('be.visible'); - catalogPage.selectCardInCatalog(cardName); - }, -); - -When('user enters workload name as {string}', (name: string) => { - gitPage.enterWorkloadName(name); -}); - -When('user clicks Create Application button on side bar', () => { - cy.get(catalogPO.sidePane.createApplication).scrollIntoView().click({ force: true }); -}); - -When('user enters Git Repo url in s2i builder image page as {string}', (gitRepoUrl: string) => { - cy.get(catalogPO.s2I.gitRepoUrl).type(gitRepoUrl); -}); - -When('user clicks create button on Instantiate Template page', () => { - cy.get(catalogPO.create).scrollIntoView().click(); -}); - -Then( - 'user is able to see Operator Backed, Helm Charts, Builder Image, Template, Service Class types are not selected by default', - () => { - cy.get(catalogPO.catalogTypes.operatorBacked).should('not.be.checked'); - cy.get(catalogPO.catalogTypes.helmCharts).should('not.be.checked'); - cy.get(catalogPO.catalogTypes.builderImage).should('not.be.checked'); - cy.get(catalogPO.catalogTypes.template).should('not.be.checked'); - cy.get(catalogPO.catalogTypes.serviceClass).should('not.be.checked'); - }, -); - -Then('GroupBy filter is selected with default option A-Z', () => { - cy.get(catalogPO.groupBy).should('have.text', 'A-Z'); -}); - -Then('user is able to see cards with name containing {string}', (name: string) => { - cy.get(catalogPO.card).should('be.visible'); - catalogPage.verifyCardName(name); -}); - -Then('user is able to see cards related to {string}', (type: string) => { - cy.get(catalogPO.cardType).should('contain.text', type); -}); - -Then('user will be redirected to Operator Backed page from knative Serving page', () => { - detailsPage.titleShouldContain(pageTitle.OperatorBacked).should('be.visible'); -}); - -When('user enters Name as {string} in Instantiate Template page', (name: string) => { - cy.get('#NAME').clear().type(name); -}); - -When('user selects {string} card from catalog page', (cardName: string) => { - catalogPage.selectCardInCatalog(cardName); -}); - -When('user searches and selects {string} helm chart from catalog page', (helmChartName: string) => { - catalogPage.search(helmChartName); - catalogPage.selectHelmChartCard(helmChartName); -}); - -Given('user is at Templates page', () => { - catalogPage.selectCatalogType(catalogTypes.Template); -}); - -When('user selects Template category {string}', (templateCategoryTitle: string) => { - catalogPage.selectTemplateCategory(templateCategoryTitle); -}); diff --git a/frontend/packages/dev-console/integration-tests/support/step-definitions/addFlow/create-from-container-image.ts b/frontend/packages/dev-console/integration-tests/support/step-definitions/addFlow/create-from-container-image.ts deleted file mode 100644 index 30def63e536..00000000000 --- a/frontend/packages/dev-console/integration-tests/support/step-definitions/addFlow/create-from-container-image.ts +++ /dev/null @@ -1,122 +0,0 @@ -import { Given, When, Then } from 'cypress-cucumber-preprocessor/steps'; -import { detailsPage } from '@console/cypress-integration-tests/views/details-page'; -import { addOptions, pageTitle } from '../../constants'; -import { gitPO } from '../../pageObjects'; -import { addPage, containerImagePage, topologyPage, gitPage } from '../../pages'; - -Given('user is at Deploy Image page', () => { - addPage.selectCardFromOptions(addOptions.ContainerImage); -}); - -When('user enters Image name from external registry as {string}', (imageName: string) => { - containerImagePage.enterExternalRegistryImageName(imageName); -}); - -Then('git url {string} gets Validated', (gitUrl: string) => { - gitPage.verifyValidatedMessage(gitUrl); -}); - -Then('user can see the image name gets Validated', () => { - containerImagePage.verifyValidatedMessage(); -}); - -Then('application name displays as {string}', (appName: string) => { - gitPage.verifyAppName(appName); -}); - -Then( - 'name field auto populates with value {string} in Import from Docker file page', - (nodeName: string) => { - gitPage.verifyNodeName(nodeName); - gitPage.clickCancel(); - }, -); - -Then('advanced option Create a route to the application is selected', () => { - cy.get(gitPO.advancedOptions.createRoute).scrollIntoView().should('be.visible').and('be.checked'); - gitPage.clickCancel(); -}); - -When('user clicks Create button on Deploy Image page', () => { - gitPage.clickCreate(); -}); - -Then('node is displayed with name {string}', (nodeName: string) => { - topologyPage.verifyWorkloadInTopologyPage(nodeName); -}); - -When('user selects Project as {string} from internal registry', (projectName: string) => { - containerImagePage.selectProject(projectName); -}); - -When('user selects Image stream tag from internal registry', () => { - containerImagePage.selectInternalImageRegistry(); -}); - -When('user selects Image Stream as {string} from internal registry', (imageStream: string) => { - containerImagePage.selectImageStream(imageStream); -}); - -When('user selects tag as {string} from internal registry', (tag: string) => { - containerImagePage.selectTag(tag); -}); - -When('user clicks Cancel button on Deploy Image page', () => { - gitPage.clickCancel(); -}); - -When('user selects the {string} from Runtime Icon dropdown', (runTimeIcon: string) => { - containerImagePage.selectRunTimeIcon(runTimeIcon); -}); - -When('user selects a custom icon with URL {string}', (runTimeIcon: string) => { - containerImagePage.selectCustomIcon(runTimeIcon); -}); - -When('user selects the application {string} from Application dropdown', (appName: string) => { - containerImagePage.selectOrCreateApplication(appName); -}); - -Then( - 'user will see the deployed image {string} with {string} icon', - (imageName: string, runTimeIcon: string) => { - topologyPage.verifyWorkloadInTopologyPage(imageName); - topologyPage.verifyRunTimeIconForContainerImage(runTimeIcon); - }, -); - -Given( - 'user has deployed container Image {string} from external registry', - (externalRegistryName: string) => { - containerImagePage.createContainerImageFromExternalRegistry(externalRegistryName); - }, -); - -Given( - 'topology page has a deployed image {string} with Runtime Icon {string}', - (imageName: string, runTimeIcon: string) => { - topologyPage.verifyWorkloadInTopologyPage(imageName); - topologyPage.verifyRunTimeIconForContainerImage(runTimeIcon); - }, -); - -When('user right clicks on the node {string} to open context menu', (nodeName: string) => { - topologyPage.rightClickOnNode(nodeName); -}); - -When('user selects Edit imagename {string} option', (imageName: string) => { - cy.byTestActionID(`Edit ${imageName}`).click(); -}); - -When('user updates the Runtime icon to {string}', (runTimeIcon: string) => { - detailsPage.titleShouldContain(pageTitle.ContainerImage); - containerImagePage.selectRunTimeIcon(runTimeIcon); -}); - -Then( - 'user will see the deployment image {string} icon updated to {string} Icon', - (imageName: string, runTimeIcon: string) => { - topologyPage.verifyWorkloadInTopologyPage(imageName); - topologyPage.verifyRunTimeIconForContainerImage(runTimeIcon); - }, -); diff --git a/frontend/packages/dev-console/integration-tests/support/step-definitions/addFlow/create-from-databse.ts b/frontend/packages/dev-console/integration-tests/support/step-definitions/addFlow/create-from-databse.ts deleted file mode 100644 index 578dacb09ad..00000000000 --- a/frontend/packages/dev-console/integration-tests/support/step-definitions/addFlow/create-from-databse.ts +++ /dev/null @@ -1,16 +0,0 @@ -import { When } from 'cypress-cucumber-preprocessor/steps'; -import { addOptions } from '../../constants'; -import { addPage, gitPage, catalogPage } from '../../pages'; - -When('user clicks Database card', () => { - addPage.selectCardFromOptions(addOptions.Database); -}); - -When('user selects {string} database on Software Catalog', (database: string) => { - catalogPage.search(database); - catalogPage.selectCardInCatalog(database); -}); - -When('user clicks create button on Instantiate Template page', () => { - gitPage.clickCreate(); -}); diff --git a/frontend/packages/dev-console/integration-tests/support/step-definitions/addFlow/create-from-devfile.ts b/frontend/packages/dev-console/integration-tests/support/step-definitions/addFlow/create-from-devfile.ts deleted file mode 100644 index b238bde04d0..00000000000 --- a/frontend/packages/dev-console/integration-tests/support/step-definitions/addFlow/create-from-devfile.ts +++ /dev/null @@ -1,50 +0,0 @@ -import { When, Then, And } from 'cypress-cucumber-preprocessor/steps'; -import { gitPO, topologyPO } from '../../pageObjects'; -import { gitPage, topologyPage, devFilePage } from '../../pages'; - -When('user right clicks on topology empty graph', () => { - cy.get(topologyPO.graph.emptyGraph).rightclick(1, 1); -}); - -When('user selects {string} option from Add to Project context menu', (option: string) => { - cy.get(topologyPO.graph.contextMenuOptions.addToProject).focus().trigger('mouseover'); - cy.get(`[data-test-action="${option}"] button[role="menuitem"]`) - .should('be.visible') - .click({ force: true }); -}); - -When('user enters Git Repo url {string} in Devfile page', (gitUrl: string) => { - gitPage.enterGitUrl(gitUrl); - devFilePage.verifyValidatedMessage(gitUrl); -}); - -Then('user is able to see workload {string} in topology page', (workloadName: string) => { - topologyPage.verifyWorkloadInTopologyPage(workloadName); -}); - -When('user selects Try sample link', () => { - devFilePage.clickTrySample(); - devFilePage.verifyValidatedMessage('https://github.com/redhat-developer/devfile-sample'); - gitPage.enterAppName('devfile-sample-app'); - gitPage.enterWorkloadName('devfile-sample'); - cy.get(gitPO.gitRepoUrl).should( - 'have.value', - 'https://github.com/redhat-developer/devfile-sample', - ); -}); - -When('user clicks Create button on Devfile page', () => { - gitPage.clickCreate(); -}); - -When('user enters Name as {string} in DevFile page', (name: string) => { - gitPage.enterWorkloadName(name); -}); - -And('user can see under Services section {string}', (msg: string) => { - cy.get('[role="dialog"]').contains(msg); -}); - -And('user can see under Routes section {string}', (msg: string) => { - cy.get('[role="dialog"]').contains(msg); -}); diff --git a/frontend/packages/dev-console/integration-tests/support/step-definitions/addFlow/create-from-docker-file.ts b/frontend/packages/dev-console/integration-tests/support/step-definitions/addFlow/create-from-docker-file.ts deleted file mode 100644 index d82a5ea4328..00000000000 --- a/frontend/packages/dev-console/integration-tests/support/step-definitions/addFlow/create-from-docker-file.ts +++ /dev/null @@ -1,45 +0,0 @@ -import { Given, When, Then } from 'cypress-cucumber-preprocessor/steps'; -import { addOptions } from '../../constants'; -import { gitPage, addPage, devFilePage } from '../../pages'; - -Given('user is on Import from Git form', () => { - addPage.selectCardFromOptions(addOptions.ImportFromGit); -}); - -When('user enters Git Repo URL as {string}', (gitUrl: string) => { - gitPage.enterGitUrl(gitUrl); - devFilePage.verifyValidatedMessage(gitUrl); -}); - -When('user enters Git Repo URL as {string} in Import from Git form', (gitUrl: string) => { - gitPage.enterGitUrl(gitUrl); - devFilePage.verifyValidatedMessage(gitUrl); -}); - -When('user selects {string} in Resource type section', (resourceType: string) => { - gitPage.selectResource(resourceType); -}); - -When('user selects {string} in Target Port section', (targetPort: string) => { - gitPage.selectTargetPortForRoutingWithPort(targetPort); -}); - -When('user clicks Cancel button on Add page', () => { - gitPage.clickCancel(); -}); - -Then('application name displays as {string}', (appName: string) => { - gitPage.verifyAppName(appName); -}); - -Then( - 'name field auto populates with value {string} in Import from Git form', - (nodeName: string) => { - gitPage.verifyNodeName(nodeName); - gitPage.clickCancel(); - }, -); - -When('user enters Name as {string} in Docker file page', (name: string) => { - gitPage.enterComponentName(name); -}); diff --git a/frontend/packages/dev-console/integration-tests/support/step-definitions/addFlow/create-from-git.ts b/frontend/packages/dev-console/integration-tests/support/step-definitions/addFlow/create-from-git.ts deleted file mode 100644 index 2a03f1ef322..00000000000 --- a/frontend/packages/dev-console/integration-tests/support/step-definitions/addFlow/create-from-git.ts +++ /dev/null @@ -1,290 +0,0 @@ -import { Given, When, Then } from 'cypress-cucumber-preprocessor/steps'; -import { detailsPage } from '@console/cypress-integration-tests/views/details-page'; -import { addOptions, buildConfigOptions, messages, resources } from '../../constants'; -import { gitPO } from '../../pageObjects'; -import { - gitPage, - addPage, - topologyPage, - addHealthChecksPage, - topologySidePane, - app, -} from '../../pages'; -import { dockerfilePage } from '../../pages/add-flow/dockerfile-page'; - -Given('user is at Import from Git form', () => { - addPage.selectCardFromOptions(addOptions.ImportFromGit); -}); - -When('user enters Git Repo URL as {string}', (gitUrl: string) => { - gitPage.enterGitUrl(gitUrl); - gitPage.verifyValidatedMessage(gitUrl); -}); - -Then('git url {string} gets Validated', (gitUrl: string) => { - gitPage.verifyValidatedMessage(gitUrl); -}); - -When('user selects Git Type as {string}', (gitType: string) => { - gitPage.selectGitType(gitType); -}); - -When('user selects Import Strategy as Builder Image', () => { - cy.byTestID('import-strategy-Builder Image').click(); -}); - -When('user selects {string} builder image', (builderImage: string) => { - gitPage.selectBuilderImage(builderImage); -}); -Then('builder image is detected', () => { - gitPage.verifyBuilderImageDetectedMessage(); -}); - -Then('builder image version drop down is displayed', () => { - gitPage.verifyBuilderImageVersion(); -}); - -Then('Application name displays as {string}', (appName: string) => { - gitPage.verifyAppName(appName); -}); - -Then('Name displays as {string}', (nodeName: string) => { - gitPage.verifyNodeName(nodeName); -}); - -Then('user can see toast notification saying {string} created successfully', (message: string) => { - gitPage.notificationVerify(message); -}); - -When('user selects Build option as {string} in Build section', (buildOption: string) => { - gitPage.selectBuildOption(buildOption); -}); - -When('user selects resource type as {string}', (resourceType: string) => { - gitPage.selectResource(resourceType); -}); - -Then( - 'user can see the created workload {string} is linked to existing application {string}', - (workloadName: string, appName: string) => { - topologyPage.verifyWorkloadInTopologyPage(workloadName); - topologyPage.getAppNode(appName).click({ force: true }); - cy.get('[role="dialog"]').should('contain', 'DeploymentConfig'); - topologySidePane.verifyResource(workloadName); - }, -); - -When('user enters Application name as {string}', (appName: string) => { - gitPage.enterAppName(appName); -}); - -When('user enters Name as {string}', (name: string) => { - gitPage.enterComponentName(name); -}); - -When('user enters Name as {string} in General section', (name: string) => { - gitPage.enterComponentName(name); -}); - -When('user unselects the advanced option Create a route to the application', () => { - gitPage.unselectRoute(); -}); - -When('user enters name as {string} in General section', (name: string) => { - gitPage.enterComponentName(name); -}); - -When('user enters Name as {string} in General section of Dockerfile page', (name: string) => { - dockerfilePage.enterName(name); -}); - -When('user clicks {string} link in Advanced Options section', (linkName: string) => { - cy.byButtonText(linkName).click(); -}); - -When('user enters {string} in Additional Route labels section', (labelName: string) => { - gitPage.enterRouteLabels(labelName); -}); - -When('user enters Hostname as {string}', (hostName: string) => { - gitPage.enterRoutingHostName(hostName); -}); - -When('user enters Path as {string}', (path: string) => { - gitPage.enterRoutingPath(path); -}); - -When('user selects default Target Port', () => { - gitPage.selectTargetPortForRouting(); -}); - -When('user enters name as {string} in General section', (name: string) => { - gitPage.enterComponentName(name); -}); - -When( - 'user unselects Configure a webhook build trigger checkbox in build configuration section', - () => { - gitPage.uncheckBuildConfigOption(buildConfigOptions.webhookBuildTrigger); - }, -); - -When( - 'user unselects Automatically build a new image when the builder image changes checkbox in build configuration section', - () => { - gitPage.uncheckBuildConfigOption(buildConfigOptions.automaticBuildImage); - }, -); - -When( - 'user unselects Launch the first build when the build configuration is created checkbox in build configuration section', - () => { - gitPage.uncheckBuildConfigOption(buildConfigOptions.launchBuildOnCreatingBuildConfig); - }, -); - -When('user enters Name as {string} in Environment Variables section', (envName: string) => { - gitPage.enterBuildConfigEnvName(envName); -}); - -When('user enters Value as {string} in Environment Variables section', (envValue: string) => { - gitPage.enterBuildConfigEnvValue(envValue); -}); - -Then('build does not get started for {string}', (nodeName: string) => { - topologyPage.verifyOrOpenSidebar(nodeName); - cy.get('div.build-overview li > span').should( - 'contain.text', - 'No Builds found for this Build Config.', - ); -}); - -When('user verify the Auto deploy when new image is available checkbox is selected', () => { - gitPage.verifyDeploymentOptionIsChecked(); -}); - -When( - 'user enters Name as {string} in Environment Variables Runtime only section', - (envName: string) => { - gitPage.enterDeploymentEnvName(envName); - }, -); - -When( - 'user enters Value as {string} in Environment Variables Runtime only section', - (envValue: string) => { - gitPage.enterDeploymentEnvValue(envValue); - }, -); - -When('user enters CPU Request as {string} in CPU section', (cpuRequestValue: string) => { - gitPage.enterResourceLimitCPURequest(cpuRequestValue); -}); - -When('user enters CPU Limits as {string} in CPU section', (cpuLimitValue: string) => { - gitPage.enterResourceLimitCPULimit(cpuLimitValue); -}); - -When('user enters Memory Request as {string} in Memory section', (memoryRequestValue: string) => { - gitPage.enterResourceLimitMemoryRequest(memoryRequestValue); -}); - -When('user enters Memory Limit as {string} in Memory section', (memoryLimitValue: string) => { - gitPage.enterResourceLimitMemoryLimit(memoryLimitValue); -}); - -When('user enters number of replicas as {string} in Replicas section', (replicaCount: string) => { - gitPage.enterScalingReplicaCount(replicaCount); -}); - -When('user fills the Readiness Probe details', () => { - addHealthChecksPage.addReadinessProbe(); -}); - -When('user fills the Liveness Probe details', () => { - addHealthChecksPage.addLivenessProbe(); -}); - -When('user fills the Startup Probe details', () => { - addHealthChecksPage.addStartupProbe(); -}); - -When('user enters label as {string}', (labelName: string) => { - gitPage.enterLabels(labelName); -}); - -Then('user can see the toast notification containg the route value {string}', (message: string) => { - cy.get(gitPO.resourceCreationAlert).find('a').contains(message); -}); - -Then('public url is not created for node {string} in the workload sidebar', (nodeName: string) => { - topologyPage.verifyWorkloadInTopologyPage(nodeName); - topologyPage.verifyOrOpenSidebar(nodeName); - topologySidePane.selectTab('Resources'); - topologySidePane.verifySection('Routes'); - cy.get('[role="dialog"] h2') - .contains('Routes') - .next('span') - .should('contain.text', messages.addFlow.noRoutesFound); -}); - -Then( - 'the route of application {string} contains {string} in the Routes section of the workload sidebar', - (nodeName: string, routeName: string) => { - topologyPage.verifyWorkloadInTopologyPage(nodeName); - topologyPage.verifyOrOpenSidebar(nodeName); - topologySidePane.selectTab('Resources'); - topologySidePane.verifySection('Routes'); - cy.byLegacyTestID('route-link').should('contain.text', routeName); - }, -); - -Then( - 'verify the label {string} in side bar of application node {string}', - (labelName: string, nodeName: string) => { - topologyPage.verifyOrOpenSidebar(nodeName); - topologySidePane.selectTab('Details'); - topologySidePane.verifyLabel(labelName); - }, -); - -Then( - 'user is able to see label {string} in Route details page for deployment {string}', - (labelName: string, nodeName: string) => { - topologySidePane.selectTab('Resources'); - topologySidePane.selectResource(resources.Routes, 'aut-addflow-git', nodeName); - app.waitForLoad(); - detailsPage.labelShouldExist(labelName); - }, -); -Then('user is able to see Secure Route checkbox is checked', () => { - cy.get(gitPO.advancedOptions.routing.secureRoute).should('be.checked'); -}); - -Then('user is able to see {string} value is selected in TLS termination', (value: string) => { - cy.get(gitPO.advancedOptions.routing.tlsTermination).should('have.text', value); -}); - -Then('user is able to see {string} value is selected in Insecure traffic', (value: string) => { - cy.get(gitPO.advancedOptions.routing.insecureTraffic).should('have.text', value); -}); - -Then('devfile import strategy is disabled', () => { - gitPage.checkIfDevfileImportStrategyDisabled(); -}); - -When('user clicks on Edit import strategy', () => { - gitPage.clickEditImportStrategy(); -}); - -When('user enters Devfile Path as {string}', (devfilePath: string) => { - gitPage.enterDevfilePath(devfilePath); -}); - -Then('user see message {string}', (message: string) => { - gitPage.checkDevFileHelpText(message); -}); - -Then('user clicks on Create button for creating sample', () => { - cy.waitUntilEnabled('[data-test-id="submit-button"]').click(); -}); diff --git a/frontend/packages/dev-console/integration-tests/support/step-definitions/addFlow/create-from-gitea.ts b/frontend/packages/dev-console/integration-tests/support/step-definitions/addFlow/create-from-gitea.ts deleted file mode 100644 index 91dea64f37f..00000000000 --- a/frontend/packages/dev-console/integration-tests/support/step-definitions/addFlow/create-from-gitea.ts +++ /dev/null @@ -1,46 +0,0 @@ -import { Given, Then, When } from 'cypress-cucumber-preprocessor/steps'; -import { gitPage } from '../../pages'; - -/* - INFORMATION REGARDING GITEA SERVER - ================================== - Gitea Helm chart used: https://github.com/redhat-cop/helm-charts/tree/main/charts/gitea - - Gitea Server URL: http://gitea. - Gitea Server Username: dev - Gitea Server Password: 123456 - - Pre-loaded Repositories: - - [Gitea Username/Repository Name] = [Corresponding Cloned GitHub Repository URL] - - ["dev/nodejs"]="https://github.com/johnpapa/node-hello.git" - - ["dev/dockerfile-node"]="https://github.com/Lucifergene/knative-do-demo" - - ["dev/devfile"]="https://github.com/nodeshift-starters/devfile-sample" - - ["dev/pac"]="https://github.com/Lucifergene/oc-pipe" - - ["dev/serv-func"]="https://github.com/Lucifergene/oc-func" -*/ - -Given('user has installed Gitea Server with pre-loaded repositories', () => { - cy.exec(`oc apply -f testData/add-flow/gitea-setup.yaml`); - cy.wait(15000); - cy.exec( - `oc wait job.batch --for=condition=Complete=True --timeout=13m -n gitea gitea-install-job`, - { timeout: 220000 }, - ); -}); - -When('user enters Gitea Repo Name as {string}', (repoName: string) => { - cy.exec('oc whoami --show-console', { - failOnNonZeroExit: false, - }).then(function (result) { - const consoleUrl = result.stdout; - const giteaUrl = consoleUrl.replace('https://console-openshift-console', 'http://gitea'); - const gitUrl = `${giteaUrl}/dev/${repoName}`; - gitPage.enterGitUrl(gitUrl); - gitPage.verifyValidatedMessage(gitUrl); - }); -}); - -Then('user deletes the Gitea Server', () => { - cy.exec(`oc delete -f testData/add-flow/gitea-setup.yaml`); - cy.wait(30000); -}); diff --git a/frontend/packages/dev-console/integration-tests/support/step-definitions/addFlow/create-from-operator-backed.ts b/frontend/packages/dev-console/integration-tests/support/step-definitions/addFlow/create-from-operator-backed.ts deleted file mode 100644 index 1a5c4b9d0eb..00000000000 --- a/frontend/packages/dev-console/integration-tests/support/step-definitions/addFlow/create-from-operator-backed.ts +++ /dev/null @@ -1,104 +0,0 @@ -import { Given, When, Then } from 'cypress-cucumber-preprocessor/steps'; -import { detailsPage } from '@console/cypress-integration-tests/views/details-page'; -import { operators } from '@console/dev-console/integration-tests/support/constants/global'; -import { verifyAndInstallOperator } from '@console/dev-console/integration-tests/support/pages'; -import { - devNavigationMenu, - addOptions, - pageTitle, - catalogCards, - switchPerspective, -} from '../../constants'; -import { catalogPO } from '../../pageObjects'; -import { perspective, catalogPage, addPage, navigateTo, topologyPage } from '../../pages'; - -const d = new Date(); -const timestamp = d.getTime(); - -Given('user is at OperatorBacked page', () => { - perspective.switchTo(switchPerspective.Developer); - navigateTo(devNavigationMenu.Add); - addPage.selectCardFromOptions(addOptions.OperatorBacked); -}); - -When('user selects knative Serving card', () => { - catalogPage.selectKnativeServingCard(); -}); - -When('user clicks Create button in side bar', () => { - catalogPage.clickButtonOnCatalogPageSidePane(); -}); - -When('user enters name as {string} in Create knative Serving page', (name: string) => { - cy.get(catalogPO.createKnativeServing.logo).should('be.visible'); - cy.get(catalogPO.createKnativeServing.name).clear().type(name); -}); - -When('user clicks create button in Create knative Serving page', () => { - cy.get('button[type="submit"]').click(); -}); - -When('user clicks cancel button in Create knative Serving page', () => { - cy.get(catalogPO.createKnativeServing.logo).should('be.visible'); - cy.byButtonText('Cancel').click(); -}); - -Then( - 'user is able to see workload {string} in topology page from knative Serving page', - (name: string) => { - topologyPage.verifyWorkloadInTopologyPage(`${name}-${timestamp}`); - }, -); - -Then('user will be redirected to Software Catalog page', () => { - detailsPage.titleShouldContain(pageTitle.SoftwareCatalog); -}); - -When('user selects knative Kafka card', () => { - catalogPage.selectCardInCatalog(catalogCards.knativeKafka); -}); - -Given('user has installed Service Binding operator', () => { - verifyAndInstallOperator(operators.ServiceBinding); -}); - -Given('user has installed Crunchy Postgres for Kubernetes operator', () => { - verifyAndInstallOperator(operators.CrunchyPostgresforKubernetes); -}); - -Given('user enters {string} in Filter by keyword', (filterName: string) => { - cy.get(catalogPO.filterKeyword).scrollIntoView().click(); - cy.get(catalogPO.filterKeyword).type(filterName); -}); - -Then( - 'user will see {string} label associated with {string} card', - (labelName: string, catalogName: string) => { - cy.get(`[data-test^="OperatorBackedService-${catalogName}"]`).within(() => { - cy.get(catalogPO.batchLabel).should('be.visible').contains(labelName); - }); - }, -); - -Then( - 'user will see {string} label in {string} sidebar', - (labelName: string, catalogName: string) => { - cy.get(`[data-test^="OperatorBackedService-${catalogName}"]`).click(); - cy.get(catalogPO.batchLabel).should('be.visible').contains(labelName); - }, -); - -When('user selects Bindable checkbox under Service Binding', () => { - cy.get(catalogPO.bindingFilterBindable).within(() => { - cy.get(catalogPO.filterCheckBox).click(); - }); -}); - -Then('user will see Bindable cards', () => { - cy.get(catalogPO.batchLabel).should('contain.text', 'Bindable'); -}); - -Then('user can see infotip associated with the Service Binding filter', () => { - cy.get(catalogPO.filterInfoTip).click(); - cy.get(catalogPO.filterInfoTipContent).should('be.visible'); -}); diff --git a/frontend/packages/dev-console/integration-tests/support/step-definitions/addFlow/create-from-sample.ts b/frontend/packages/dev-console/integration-tests/support/step-definitions/addFlow/create-from-sample.ts deleted file mode 100644 index 3c0cd71f80b..00000000000 --- a/frontend/packages/dev-console/integration-tests/support/step-definitions/addFlow/create-from-sample.ts +++ /dev/null @@ -1,19 +0,0 @@ -import { When } from 'cypress-cucumber-preprocessor/steps'; -import { detailsPage } from '@console/cypress-integration-tests/views/details-page'; -import { addOptions } from '../../constants'; -import { addPage, app, samplesPage, verifyAddPage } from '../../pages'; - -When('user clicks on the Samples card', () => { - verifyAddPage.verifyAddPageCard('Samples'); - addPage.selectCardFromOptions(addOptions.Samples); -}); - -When('user selects {string} sample from Samples', (sample: string) => { - samplesPage.search(sample); - samplesPage.selectCardInSamples(sample); -}); - -When('user is able to see the form header name as {string}', (formName) => { - app.waitForLoad(); - detailsPage.titleShouldContain(formName); -}); diff --git a/frontend/packages/dev-console/integration-tests/support/step-definitions/addFlow/create-from-sidebar.ts b/frontend/packages/dev-console/integration-tests/support/step-definitions/addFlow/create-from-sidebar.ts deleted file mode 100644 index 69944a80a39..00000000000 --- a/frontend/packages/dev-console/integration-tests/support/step-definitions/addFlow/create-from-sidebar.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { When } from 'cypress-cucumber-preprocessor/steps'; -import { catalogPage, sidePaneObj } from '../../pages'; - -When('user clicks on the Create button on side bar', () => { - catalogPage.clickButtonOnCatalogPageSidePane(); -}); - -When('user will see the information of all the chart versions together', () => { - sidePaneObj.verifyChartVersion(); -}); diff --git a/frontend/packages/dev-console/integration-tests/support/step-definitions/addFlow/create-from-yaml.ts b/frontend/packages/dev-console/integration-tests/support/step-definitions/addFlow/create-from-yaml.ts deleted file mode 100644 index c9734208cd2..00000000000 --- a/frontend/packages/dev-console/integration-tests/support/step-definitions/addFlow/create-from-yaml.ts +++ /dev/null @@ -1,27 +0,0 @@ -import { Given, When } from 'cypress-cucumber-preprocessor/steps'; -import { detailsPage } from '@console/cypress-integration-tests/views/details-page'; -import { addOptions, devNavigationMenu } from '../../constants'; -import { addPage, yamlPage, navigateTo } from '../../pages'; -import { app, yamlEditor } from '../../pages/app'; - -Given('user is at Import YAML page', () => { - navigateTo(devNavigationMenu.Add); - addPage.selectCardFromOptions(addOptions.YAML); -}); - -When('user clicks create button on YAML page', () => { - yamlPage.clickOnCreateButton(); - app.waitForLoad(); - detailsPage.sectionHeaderShouldExist('Deployment details'); - detailsPage.titleShouldContain('shell-app'); -}); - -When('user clicks on cancel button', () => { - yamlPage.clickOnCancelButton(); -}); - -When('user enters the {string} file data to YAML Editor', (yamlFile: string) => { - yamlEditor.isLoaded(); - yamlEditor.clearYAMLEditor(); - yamlEditor.setEditorContent(yamlFile); -}); diff --git a/frontend/packages/dev-console/integration-tests/support/step-definitions/addFlow/export-application.ts b/frontend/packages/dev-console/integration-tests/support/step-definitions/addFlow/export-application.ts deleted file mode 100644 index 73a3ed34446..00000000000 --- a/frontend/packages/dev-console/integration-tests/support/step-definitions/addFlow/export-application.ts +++ /dev/null @@ -1,84 +0,0 @@ -import { When, Then, Given } from 'cypress-cucumber-preprocessor/steps'; -import { devNavigationMenu } from '../../constants/global'; -import { - topologyHelper, - exportApplication, - exportModalButton, - createGitWorkloadIfNotExistsOnTopologyPage, - closeExportNotification, -} from '../../pages'; -import { navigateTo } from '../../pages/app'; -import { checkDeveloperPerspective } from '../../pages/functions/checkDeveloperPerspective'; - -Given( - 'user has created {string} workload in {string} application', - (nodeName: string, appName: string) => { - createGitWorkloadIfNotExistsOnTopologyPage( - 'https://github.com/sclorg/nodejs-ex.git', - nodeName, - 'Deployment', - appName, - ); - topologyHelper.verifyWorkloadInTopologyPage(nodeName); - }, -); - -Given('user is at Add page', () => { - checkDeveloperPerspective(); - navigateTo(devNavigationMenu.Add); -}); - -When('user navigates to Add page', () => { - navigateTo(devNavigationMenu.Add); -}); - -When('user navigates to Topology page', () => { - navigateTo(devNavigationMenu.Topology); -}); - -When('user clicks on Export Application option', () => { - cy.byTestID('item export-application').should('be.visible').click(); -}); - -When('user clicks on Ok button on Export Application modal to start the export', () => { - cy.get('.pf-v6-c-modal-box__body').contains('Do you want to export your application?'); - cy.byTestID('close-btn').should('be.visible').click(); -}); - -When('user clicks on Export Application option again', () => { - navigateTo(devNavigationMenu.Add); - cy.byTestID('item export-application').should('be.visible').click(); -}); - -Then('user can see a toast message saying {string}', (message: string) => { - cy.get(exportApplication.infoTip, { timeout: 5000 }).then(($elements) => { - return $elements.text().includes(message); - }); -}); - -Then( - 'user can see a toast message saying {string} with download option and close button', - (message: string) => { - cy.get(exportApplication.infoTip).should('not.exist'); - cy.get(exportApplication.infoTip, { timeout: 120000 }).then(($elements) => { - return $elements.text().includes(message); - }); - cy.byTestID('download-export').contains('Download'); - closeExportNotification(); - }, -); - -Then('user can see primer deployment created in topology', () => { - topologyHelper.verifyWorkloadInTopologyPage('primer', { timeout: 80000 }); -}); - -Then( - 'user can see {string} link, {string}, {string}, and {string} button', - (el1, el2, el3, el4) => { - cy.get(exportModalButton(el1)).should('be.visible'); - cy.get(exportModalButton(el2)).should('be.visible'); - cy.get(exportModalButton(el3)).should('be.visible'); - cy.get(exportModalButton(el4)).should('be.visible'); - cy.get(exportModalButton('Ok')).click(); - }, -); diff --git a/frontend/packages/dev-console/integration-tests/support/step-definitions/addFlow/helm-chart-repositories.ts b/frontend/packages/dev-console/integration-tests/support/step-definitions/addFlow/helm-chart-repositories.ts deleted file mode 100644 index a5c971e02f1..00000000000 --- a/frontend/packages/dev-console/integration-tests/support/step-definitions/addFlow/helm-chart-repositories.ts +++ /dev/null @@ -1,98 +0,0 @@ -import { Given, When, Then } from 'cypress-cucumber-preprocessor/steps'; -import { addOptions, devNavigationMenu } from '../../constants'; -import { addPagePO, helmChartRepositoriesPO } from '../../pageObjects'; -import { addPage, createForm, navigateTo } from '../../pages'; -import { helmChartRepository } from '../../pages/add-flow/helm-chart-repository'; -import { checkDeveloperPerspective } from '../../pages/functions/checkDeveloperPerspective'; - -Given('user is at Add page', () => { - checkDeveloperPerspective(); - navigateTo(devNavigationMenu.Add); -}); - -Then('user can see Helm Chart repositories card on the Add page', () => { - cy.get(addPagePO.helmChartRepositoriesCard).should('be.visible'); -}); - -When('user selects Helm Chart repositories card from Add page', () => { - addPage.selectCardFromOptions(addOptions.HelmChartRepositories); -}); - -When('user switches to YAML', () => { - cy.get(helmChartRepositoriesPO.yaml.yamlSwitcher).should('be.visible').click(); -}); - -Then('user can see YAML view', () => { - cy.get(helmChartRepositoriesPO.yaml.yamlEditor).should('be.visible'); - cy.get(helmChartRepositoriesPO.cancelButton).should('be.enabled').click(); -}); - -When('user selects Helm Chart card on the Add page', () => { - addPage.selectCardFromOptions(addOptions.HelmChart); -}); - -When('user clicks {string} link in Helm Charts catalog description', (linkText: string) => { - cy.byTestID('help-text').within(() => { - cy.get('a').contains(linkText).click(); - }); -}); - -Then('user can see {string} form', (title: string) => { - cy.get(helmChartRepositoriesPO.formTitle).should('have.text', title); - cy.get(helmChartRepositoriesPO.cancelButton).should('be.enabled').click(); -}); - -Given('user is at Create Helm Chart Repository page', () => { - navigateTo(devNavigationMenu.Add); - addPage.selectCardFromOptions(addOptions.HelmChartRepositories); -}); - -When('user selects Form view', () => { - cy.get(`[data-test="form-view-input"]`).click(); -}); - -Then('user enters Chart repository name as helm-test2', () => { - cy.get(helmChartRepositoriesPO.name).should('be.visible').clear().type('helm-test2'); -}); - -When('user selects cluster-scoped scope type', () => { - cy.get(`[data-test="HelmChartRepository-view-input"]`).should('be.visible').click(); -}); - -When('user enters Chart repository name as {string}', (name: string) => { - cy.get(helmChartRepositoriesPO.name).should('be.visible').clear().type(name); -}); - -When('user enters Display name as {string}', (displayName: string) => { - cy.get(helmChartRepositoriesPO.displayName) - .scrollIntoView() - .should('be.visible') - .clear() - .type(displayName); -}); - -When('user enters Description as {string}', (description: string) => { - cy.get(helmChartRepositoriesPO.description) - .scrollIntoView() - .should('be.visible') - .clear() - .type(description); -}); - -When('user enters URL as {string}', (url: string) => { - cy.get(helmChartRepositoriesPO.url).scrollIntoView().should('be.visible').clear().type(url); -}); - -When('user clicks on Create button', () => { - createForm.clickCreate(); -}); - -Then( - 'user can see {string} for resource {string} and type {string} under Chart Repositories in Helm Charts catalog page', - (repo: string, resourceName: string, type: string) => { - let helmRepo = repo.toLowerCase().split(' ').join('-'); - helmRepo = helmRepo.replace(/([A-Z,a-z]+)([0-9])/g, '$1-$2'); - cy.get(`[data-test="chartRepositoryTitle-${helmRepo}"]`).should('be.visible'); - helmChartRepository.deleteChartRepository(resourceName, type); - }, -); diff --git a/frontend/packages/dev-console/integration-tests/support/step-definitions/addFlow/page-details.ts b/frontend/packages/dev-console/integration-tests/support/step-definitions/addFlow/page-details.ts deleted file mode 100644 index 338c4fcfd24..00000000000 --- a/frontend/packages/dev-console/integration-tests/support/step-definitions/addFlow/page-details.ts +++ /dev/null @@ -1,182 +0,0 @@ -import { Given, When, Then } from 'cypress-cucumber-preprocessor/steps'; -import { devNavigationMenu, switchPerspective, addOptions } from '../../constants'; -import { addPagePO, operatorsPO } from '../../pageObjects'; -import { - navigateTo, - perspective, - addPage, - operatorsPage, - gitPage, - verifyAddPage, -} from '../../pages'; - -Given('cluster is not installed with any operators', () => { - perspective.switchTo(switchPerspective.Administrator); - operatorsPage.navigateToInstallOperatorsPage(); - cy.get(operatorsPO.installOperators.noOperatorFoundMessage).should( - 'have.text', - 'No Operators Found', - ); -}); - -When('user selects Add option from left side navigation menu', () => { - navigateTo(devNavigationMenu.Add); -}); - -Then( - 'page contains Import From Git, Container Image, YAML, From Catalog, Database, Helm Chart cards', - () => { - addPage.verifyCard(addOptions.ImportFromGit); - addPage.verifyCard(addOptions.ContainerImage); - addPage.verifyCard(addOptions.YAML); - addPage.verifyCard(addOptions.SoftwareCatalog); - addPage.verifyCard(addOptions.Database); - addPage.verifyCard(addOptions.HelmChart); - }, -); - -Then('user is able to see message {string} on Add page', (message: string) => { - gitPage.verifyNoWorkLoadsText(message); -}); - -Then('user is able to see Pipeline card on Git form', () => { - addPage.verifyCard('Pipeline'); -}); - -Then('user is able to see {string} card on Add page', (cardName: string) => { - addPage.verifyCard(cardName); -}); - -Then('user will see Getting started resources', () => { - cy.get(addPagePO.gettingStarted).should('be.visible'); -}); - -Then('user will see Create Application using Samples', () => { - cy.byTestID('card samples').should('be.visible'); -}); - -Then('user will see Build with guided documentation', () => { - cy.byTestID('card quick-start').should('be.visible'); -}); - -Then('user will see Explore new developer features', () => { - cy.byTestID('card developer-features').should('be.visible'); -}); - -Then( - 'user will see Create Application using Samples, Build with guided documentation and Explore new developer features under Getting started resources section', - () => { - cy.get(addPagePO.gettingStarted).should('be.visible'); - cy.byTestID('card samples').should('be.visible'); - cy.byTestID('card quick-start').should('be.visible'); - cy.byTestID('card developer-features').should('be.visible'); - }, -); - -Then( - 'user will see All services, Database, Operator Backed and Helm Chart options under Software Catalog section', - () => { - verifyAddPage.verifyAddPageCard('Software Catalog'); - verifyAddPage.verifyAddPageCard('All services'); - verifyAddPage.verifyAddPageCard('Database'); - verifyAddPage.verifyAddPageCard('Operator Backed'); - verifyAddPage.verifyAddPageCard('Helm Chart'); - }, -); - -Then('user will see Import from Git card under Git Repository section', () => { - verifyAddPage.verifyAddPageCard('Git Repository'); - verifyAddPage.verifyAddPageCard('Import from Git'); -}); - -Then('user will see Import YAML, Upload JAR file under From Local Machine section', () => { - verifyAddPage.verifyAddPageCard('Import YAML'); - verifyAddPage.verifyAddPageCard('Upload JAR file'); - verifyAddPage.verifyAddPageCard('From Local Machine'); -}); - -Then('user will see {string} card', (addPageCard: string) => { - verifyAddPage.verifyAddPageCard(addPageCard); -}); - -Then('user will see {string} option', (addPageOption: string) => { - verifyAddPage.verifyAddPageCard(addPageOption); -}); - -Given('add page Details toggle shows {string}', (label: string) => { - // Just waiting until the switch with all options is shown. - // This doesn't ensure that the right label is shown because its hidden via CSS! - cy.get(addPagePO.detailsOnOffSwitch).find('span').should('contain', label); - // Check the checkbox checked value and change it if needed. - cy.get(addPagePO.detailsOnOffSwitch).then((s) => { - const toggleIsChecked = s.find('input:checked').length > 0; - const toggleShouldBeChecked = label === 'Details on'; - cy.log(`toggleIsChecked: ${toggleIsChecked}, toggleShouldBeChecked: ${toggleShouldBeChecked}`); - if (toggleIsChecked !== toggleShouldBeChecked) { - cy.get(addPagePO.detailsOnOffSwitch).click(); - } - }); -}); - -When('user clicks Details toggle', () => { - cy.get(addPagePO.detailsOnOffSwitch).click(); -}); - -Then('user will see Detail toggle label {string}', (label: string) => { - cy.get(addPagePO.detailsOnOffSwitch) - // find both switch labels (one for checked=on and one for unchecked=off) - .find('span') - // they are hidden via a CSS rule like - // .pf-v6-c-switch__input:not(:checked)~.pf-m-on { display: none; } - // .pf-v6-c-switch__input:checked~.pf-m-off { display: none; } - .filter((_, element) => getComputedStyle(element).display !== 'none') - .should('contain', label); -}); - -Then('user will not see description of option on cards', () => { - cy.get(addPagePO.cardDetails).should('not.exist'); -}); - -Then('user will see description of each option on each card', () => { - cy.get(addPagePO.cardDetails).should('have.length.at.least', 5); -}); - -Given('user has hidden Getting Started Resources from View', () => { - cy.get('.ocs-getting-started-expandable-section').then(($el) => { - if ($el.hasClass('pf-m-expanded')) { - cy.get(addPagePO.toogleGettingStarted).click(); - } else { - cy.log('Getting Started card is hidden'); - } - }); -}); - -Given('user has Getting Started Resources shown in Add page', () => { - cy.get('.ocs-getting-started-expandable-section').then(($el) => { - if ($el.hasClass('pf-m-expanded')) { - cy.log('Getting Started card can be seen'); - } else { - cy.get(addPagePO.toogleGettingStarted).click(); - } - }); -}); - -Then('user will not see Getting started resources card', () => { - cy.get(addPagePO.gettingStarted).parent().should('have.attr', 'hidden'); -}); - -When('user clicks on Show getting started resources link', () => { - cy.get(addPagePO.toogleGettingStarted).click(); -}); - -Then('user will see Getting started resources card', () => { - cy.get(addPagePO.gettingStarted).should('be.visible'); -}); - -When('user clicks on close Show getting started resources link', () => { - cy.get(addPagePO.closeButton).click(); -}); - -Then('user will not see Show getting started resources link', () => { - cy.get(addPagePO.restoreGettingStarted).should('not.exist'); -}); diff --git a/frontend/packages/dev-console/integration-tests/support/step-definitions/addFlow/quick-search-add.ts b/frontend/packages/dev-console/integration-tests/support/step-definitions/addFlow/quick-search-add.ts deleted file mode 100644 index 3dc683d6ce3..00000000000 --- a/frontend/packages/dev-console/integration-tests/support/step-definitions/addFlow/quick-search-add.ts +++ /dev/null @@ -1,88 +0,0 @@ -import { Given, When, Then } from 'cypress-cucumber-preprocessor/steps'; -import { operators } from '@console/dev-console/integration-tests/support/constants/global'; -import { verifyAndInstallOperator } from '@console/dev-console/integration-tests/support/pages'; -import { catalogPO, gitPO, quickSearchAddPO, quickStartSidebarPO } from '../../pageObjects'; -import { devFilePage, gitPage, topologyPage } from '../../pages'; -import { addQuickSearch } from '../../pages/add-flow/add-quick-search'; - -When('user clicks Add to project button', () => { - cy.get(quickSearchAddPO.quickSearchButton).should('be.visible').click(); -}); - -Then('user can see Add to project search bar', () => { - cy.get(quickSearchAddPO.quickSearchBar).should('be.visible'); -}); - -When('user enters {string} in Add to project search bar', (node: string) => { - addQuickSearch.enterNodeName(node); -}); - -When('user selects {string} option of {string}', (option: string, type: string) => { - addQuickSearch.selectQuickOption(option, type); -}); - -Then( - 'user will see {string} label associated with {string}', - (labelName: string, catalogName: string) => { - cy.get(`[data-test^="item-name-${catalogName}-Operator Backed"]`).click(); - cy.get(catalogPO.catalogBatch).should('be.visible').contains(labelName); - }, -); - -When('user clicks on {string}', (buttonName: string) => { - cy.log(buttonName, 'is clicked'); - cy.get(quickSearchAddPO.quickSearchCreateButton).should('be.visible').click(); -}); - -When('user clicks on create with default values in Instantiate Template form', () => { - cy.get(catalogPO.create).scrollIntoView().click(); -}); - -Then( - 'user can see {string} and {string} workload in topology view', - (workloadName1: string, workloadName2: string) => { - topologyPage.verifyWorkloadInTopologyPage(workloadName1); - topologyPage.verifyWorkloadInTopologyPage(workloadName2); - }, -); - -When('user clicks on View all software catalog items link', () => { - cy.get(quickSearchAddPO.viewInSoftwareCatalog).scrollIntoView().click(); -}); - -Then('user will see Catalog with {string} text filter', (filterWord: string) => { - cy.get(catalogPO.search).should('be.visible'); - cy.get(catalogPO.search).should('have.value', filterWord); -}); - -Then('user will see {string}', (searchResult: string) => { - cy.get(quickSearchAddPO.quickSearchNoResults).contains(searchResult); -}); - -Then('{string} quick start displays in the Add page', (quickStartName: string) => { - cy.get(quickStartSidebarPO.quickStartSidebar).should('be.visible').contains(quickStartName); -}); - -When('user clicks on Create button in the Import from Git page', () => { - const gitUrl = 'https://github.com/nodeshift-starters/devfile-sample.git'; - devFilePage.verifyValidatedMessage(gitUrl); - gitPage.enterAppName('devfile-sample-git-app'); - gitPage.enterWorkloadName('devfile-sample-git'); - cy.get(gitPO.gitRepoUrl).should('have.value', gitUrl); - gitPage.clickCreate(); -}); - -Then( - 'user is taken to the Topology page with {string} workload created', - (workloadName: string) => { - topologyPage.verifyWorkloadInTopologyPage(workloadName); - }, -); - -Given('user has installed Service Binding operator', () => { - verifyAndInstallOperator(operators.ServiceBinding); -}); - -Given('user has installed Crunchy Postgres for Kubernetes operator', () => { - verifyAndInstallOperator(operators.CrunchyPostgresforKubernetes); -}); diff --git a/frontend/packages/dev-console/integration-tests/support/step-definitions/addFlow/resource-quota-warning.ts b/frontend/packages/dev-console/integration-tests/support/step-definitions/addFlow/resource-quota-warning.ts deleted file mode 100644 index 07d17103235..00000000000 --- a/frontend/packages/dev-console/integration-tests/support/step-definitions/addFlow/resource-quota-warning.ts +++ /dev/null @@ -1,70 +0,0 @@ -import { Given, When, Then } from 'cypress-cucumber-preprocessor/steps'; -import { detailsPage } from '@console/cypress-integration-tests/views/details-page'; -import { listPage } from '@console/cypress-integration-tests/views/list-page'; -import { modal } from '@console/cypress-integration-tests/views/modal'; -import * as yamlView from '@console/cypress-integration-tests/views/yaml-editor'; -import { devNavigationMenu } from '@console/dev-console/integration-tests/support/constants'; -import { - navigateTo, - createGitWorkloadIfNotExistsOnTopologyPage, - topologyHelper, - app, -} from '@console/dev-console/integration-tests/support/pages'; - -const deteleResourceQuota = () => { - detailsPage.isLoaded(); - detailsPage.clickPageActionFromDropdown('Delete ResourceQuota'); - modal.shouldBeOpened(); - modal.submit(); - modal.shouldBeClosed(); -}; - -Given('user has created workload with resource type deployment', () => { - createGitWorkloadIfNotExistsOnTopologyPage( - 'https://github.com/sclorg/nodejs-ex.git', - 'ex-node-js', - 'deployment', - 'nodejs-ex-git-app', - ); - topologyHelper.verifyWorkloadInTopologyPage('ex-node-js'); -}); - -Given('user has created two resource quotas using {string} file', (yamlLocation) => { - cy.exec(`oc apply -f ${yamlLocation} -n ${Cypress.expose('NAMESPACE')}`); - app.waitForDocumentLoad(); -}); - -When('user navigates to Add page', () => { - app.waitForDocumentLoad(); - navigateTo(devNavigationMenu.Add); -}); - -When('user clicks on link to view resource quota details', () => { - cy.byTestID('resource-quota-warning').click(); -}); - -Then('user is redirected to resource quota details page', () => { - cy.get('h2').should('contain.text', 'ResourceQuota details'); - deteleResourceQuota(); -}); - -Then('user is redirected to resource quota list page', () => { - listPage.rows.shouldBeLoaded(); -}); - -When( - 'user creates resource quota {string} by entering {string} file data', - (resourceQuotaName: string, yamlLocation: string) => { - cy.get('[data-test="quick-create-dropdown"]').click(); - cy.get('[data-test="qc-import-yaml"]').click(); - cy.get('.yaml-editor').should('be.visible'); - cy.readFile(yamlLocation).then((str) => { - const myArray = str.split('---'); - resourceQuotaName === 'resourcequota1' - ? yamlView.setEditorContent(myArray[0]) - : yamlView.setEditorContent(myArray[1]); - }); - cy.get('[data-test="save-changes"]').click(); - cy.get('h2').should('contain.text', 'ResourceQuota details'); - }, -); diff --git a/frontend/packages/dev-console/integration-tests/support/step-definitions/addFlow/sharing.ts b/frontend/packages/dev-console/integration-tests/support/step-definitions/addFlow/sharing.ts deleted file mode 100644 index eb754945f06..00000000000 --- a/frontend/packages/dev-console/integration-tests/support/step-definitions/addFlow/sharing.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { Given, When, Then } from 'cypress-cucumber-preprocessor/steps'; -import { detailsPage } from '@console/cypress-integration-tests/views/details-page'; -import { addOptions, devNavigationMenu } from '../../constants'; -import { addPage, navigateTo } from '../../pages'; -import { checkDeveloperPerspective } from '../../pages/functions/checkDeveloperPerspective'; - -Given('user is at Add page', () => { - checkDeveloperPerspective(); - navigateTo(devNavigationMenu.Add); -}); - -When('user clicks on Sharing card in Add page', () => { - addPage.selectCardFromOptions(addOptions.Sharing); -}); - -Then('user can see {string} page', (name: string) => { - detailsPage.titleShouldContain(name); -}); diff --git a/frontend/packages/dev-console/integration-tests/support/step-definitions/addFlow/software-catalog-details.ts b/frontend/packages/dev-console/integration-tests/support/step-definitions/addFlow/software-catalog-details.ts deleted file mode 100644 index f83f28a9d0f..00000000000 --- a/frontend/packages/dev-console/integration-tests/support/step-definitions/addFlow/software-catalog-details.ts +++ /dev/null @@ -1,46 +0,0 @@ -import { When, Then } from 'cypress-cucumber-preprocessor/steps'; -import { addOptions, catalogTypes } from '../../constants'; -import { catalogPO } from '../../pageObjects'; -import { addPage, catalogPage } from '../../pages'; - -When('user clicks on From Catalog card', () => { - addPage.selectCardFromOptions(addOptions.SoftwareCatalog); -}); - -When('user clicks on Event Sources type', () => { - catalogPage.selectCatalogType(catalogTypes.EventSources); -}); - -When('user clicks on Helm Charts type', () => { - catalogPage.selectCatalogType(catalogTypes.HelmCharts); -}); - -Then('user will see All Items already selected', () => { - cy.byTestID('catalog-heading').should('contain.text', 'All items'); -}); - -Then('user will see CICD, Databases, Languages, Middleware, Other categories', () => { - catalogPage.verifyCategories(); -}); - -Then('user will see {string}, {string}, {string}, {string} types', (el1, el2, el3, el4: string) => { - catalogPage.verifyTypes(el1); - catalogPage.verifyTypes(el2); - catalogPage.verifyTypes(el3); - catalogPage.verifyTypes(el4); -}); - -Then('user will see Filter by Keyword field', () => { - cy.get(catalogPO.search).should('have.attr', 'placeholder', 'Filter by keyword...'); -}); - -Then('user will see A-Z, Z-A sort by dropdown', () => { - cy.get('.co-catalog-page__sort').click(); - cy.byTestDropDownMenu('asc').should('be.visible'); - cy.byTestDropDownMenu('desc').should('be.visible'); - cy.get('.co-catalog-page__sort').click(); -}); - -Then('user will see the cards of Helm Charts', () => { - catalogPage.verifyHelmChartCardsAvailable(); -}); diff --git a/frontend/packages/dev-console/integration-tests/support/step-definitions/addFlow/upload-JAR-file.ts b/frontend/packages/dev-console/integration-tests/support/step-definitions/addFlow/upload-JAR-file.ts deleted file mode 100644 index 3feae352643..00000000000 --- a/frontend/packages/dev-console/integration-tests/support/step-definitions/addFlow/upload-JAR-file.ts +++ /dev/null @@ -1,56 +0,0 @@ -import { Given, Then, When } from 'cypress-cucumber-preprocessor/steps'; -import { addOptions } from '../../constants'; -import { gitPO, uploadJarFilePO } from '../../pageObjects'; -import { addPage, gitPage } from '../../pages'; -import { uploadJarFilePage } from '../../pages/add-flow/upload-jar-file-page'; - -When('user clicks on the Upload JAR file card', () => { - addPage.selectCardFromOptions(addOptions.UploadJARFile); -}); - -When('user clicks on Browse in JAR file section', () => { - uploadJarFilePage.clickBrowse(); -}); - -When('user selects appropriate Build image version', () => { - uploadJarFilePage.selectBuilderImageVersion(''); -}); - -When( - 'user gives Application name as {string} and workload Name as {string}', - (appName: string, workloadName: string) => { - gitPage.enterAppName(appName); - gitPage.enterComponentName(workloadName); - }, -); - -When('user clicks create button', () => { - gitPage.clickCreate(); -}); - -Then( - 'user is able to see Upload jar file, Optional java commands, Run time Icon and Builder Image version fields displayed in JAR section', - () => { - cy.get(uploadJarFilePO.jar.jarFile).should('be.visible'); - cy.get(uploadJarFilePO.jar.optionalJavaCommands).should('be.visible'); - cy.get(uploadJarFilePO.jar.runTimeIcon).should('be.visible'); - cy.get(uploadJarFilePO.jar.builderImageVersion).should('be.visible'); - }, -); - -Then('Application Name, Name fields displayed in General section', () => { - cy.get(gitPO.appName).should('be.visible'); - cy.get(gitPO.nodeName).should('be.visible'); -}); - -Then('Advanced options sections are displayed', () => { - cy.get(gitPO.sectionTitle).contains('Advanced options').scrollIntoView().should('be.visible'); -}); - -Given('user is at Upload JAR file form', () => { - addPage.selectCardFromOptions(addOptions.UploadJARFile); -}); - -Then('Create button is in disabled state', () => { - cy.byLegacyTestID('submit-button').should('be.disabled'); -}); diff --git a/frontend/packages/dev-console/integration-tests/support/step-definitions/build-config/edit-build-config.ts b/frontend/packages/dev-console/integration-tests/support/step-definitions/build-config/edit-build-config.ts deleted file mode 100644 index f0b68571862..00000000000 --- a/frontend/packages/dev-console/integration-tests/support/step-definitions/build-config/edit-build-config.ts +++ /dev/null @@ -1,196 +0,0 @@ -import { When, Then, Given } from 'cypress-cucumber-preprocessor/steps'; -import { devNavigationMenu } from '../../constants'; -import { actionsMenu, devNavigationMenuPO, formPO, search } from '../../pageObjects'; -import { eventSourcePO, gitPO, helmChartRepositoriesPO } from '../../pageObjects/add-flow-po'; -import { buildConfigPO } from '../../pageObjects/buildConfig-po'; -import { createGitWorkload, navigateTo, yamlEditor } from '../../pages'; - -Given('user has created a deployment workload {string}', (componentName: string) => { - navigateTo(devNavigationMenu.Add); - createGitWorkload( - 'https://github.com/sclorg/nodejs-ex.git', - componentName, - 'Deployment', - 'nodejs-ex-git-app', - ); -}); - -When('user navigates to build tab', () => { - cy.get(devNavigationMenuPO.builds).click(); - cy.get(buildConfigPO.resourceTitle).should('be.visible'); -}); - -When('user clicks on kebab menu for {string} build config', (nodeName: string) => { - cy.get(search).type(nodeName); - cy.get(buildConfigPO.kebabButton).eq(0).click(); -}); - -When('user clicks on Edit BuildConfig', () => { - cy.byTestActionID('Edit BuildConfig').click(); -}); - -Then('user will see the Name field', () => { - cy.byTestID('section name').should('be.visible'); - cy.get(buildConfigPO.nameField).should('be.disabled'); -}); - -Then('user will see the Git repository url field', () => { - cy.get(gitPO.gitRepoUrl).should('be.visible'); -}); - -Then('user will see the Image configuration section', () => { - cy.byTestID('section images').should('be.visible'); -}); - -Then('user will see the Environment Variables section', () => { - cy.byTestID('section environment-variables').scrollIntoView().should('be.visible'); -}); - -Given('user is at Edit Build Config page of deployment {string}', (nodeName: string) => { - navigateTo(devNavigationMenu.Builds); - cy.get(search).type(nodeName); - cy.get(buildConfigPO.kebabButton).eq(0).click(); - cy.byTestActionID('Edit BuildConfig').click(); - cy.get(helmChartRepositoriesPO.formTitle).should('be.visible').contains('Edit BuildConfig'); -}); - -When('user clicks on Advanced option {string}', (optionName: string) => { - cy.byTestID('section advanced-options').scrollIntoView(); - cy.byButtonText(optionName).click(); -}); - -Then('user will see section {string}', (sectionName: string) => { - cy.byTestID(`section ${sectionName.toLowerCase()}`).should('be.visible'); -}); - -When('user switches to YAML view', () => { - cy.get(helmChartRepositoriesPO.yaml.yamlSwitcher).click(); - cy.byTestID(helmChartRepositoriesPO.yaml.yamlEditor).should('be.visible'); -}); - -When('user changes spec.output.to.name to {string}', (yamlLocation: string) => { - yamlEditor.isLoaded(); - cy.get('div.monaco-scrollable-element.editor-scrollable.vs-dark') - .click() - .focused() - .type('{ctrl}a') - .clear(); - cy.readFile(yamlLocation).then((str) => { - yamlEditor.setEditorContent(str); - }); - cy.get('[data-test-id="submit-button"]').click(); -}); - -When('user switches to Form view', () => { - cy.get(eventSourcePO.formView).click(); - cy.get(helmChartRepositoriesPO.yaml.yamlEditor).should('not.be.visible'); -}); - -When('user changes Git Rpository URL to {string} menu of build config', (gitRepoUrl: string) => { - cy.get(gitPO.gitRepoUrl).clear().type(gitRepoUrl); - cy.get(gitPO.gitRepoUrl).should('have.value', gitRepoUrl); -}); - -When( - 'user selects imagestream {string} and tag {string} in Build From section in Image Configuration', - (imageStream: string, imageStreamTag: string) => { - cy.get(buildConfigPO.buildFrom.imageStreamDropdown).click(); - cy.get(eventSourcePO.createSinkBinding.resourceSearchField).type(imageStream); - cy.get(eventSourcePO.createSinkBinding.resourceDropDownItem).eq(0).click(); - cy.get(buildConfigPO.buildFrom.imageStreamTagDropdown).click(); - cy.get(eventSourcePO.createSinkBinding.resourceSearchField).type(imageStreamTag); - cy.get(eventSourcePO.createSinkBinding.resourceDropDownItem).eq(1).click(); - }, -); - -When( - 'user enters Name and Value as {string} and {string} respectively in Environment Variables', - (name: string, value: string) => { - cy.get(gitPO.advancedOptions.deployment.envName).scrollIntoView().type(name); - cy.get(gitPO.advancedOptions.deployment.envValue).scrollIntoView().type(value); - }, -); - -When('user selects External container image option from Build from dropdown', () => { - cy.get(buildConfigPO.buildFrom.buildTypeDropdown).click(); - cy.byTestDropDownMenu('dockerImage').click(); -}); - -When('user enters image registry as {string}', (containerImage: string) => { - cy.get(buildConfigPO.imageRegistryField).clear().type(containerImage); -}); - -When('user click Save button on Edit build Config page', () => { - cy.get(formPO.create).click(); -}); - -Then( - 'user will see Git Repository as {string} and Build from as {string} imagestream', - (gitRepoUrl: string, imageStream: string) => { - cy.byTestSelector('details-item-value__Git repository').should('have.text', gitRepoUrl); - cy.byTestSelector('details-item-value__Build from') - .byTestID(imageStream) - .should('have.text', imageStream); - }, -); - -Given('user has applied the yaml {string}', (yamlFile: string) => { - const yamlFileName = `testData/yamls/BuildConfig/${yamlFile}`; - navigateTo(devNavigationMenu.Add); - cy.byTestID('item import-yaml').click(); - yamlEditor.isLoaded(); - yamlEditor.setEditorContent(yamlFileName); - cy.get(formPO.save).click(); -}); - -When('user clicks on action menu of build config', () => { - cy.get(actionsMenu).click(); - cy.get(buildConfigPO.actionItems).should('be.visible'); -}); - -When('user selects the option Edit BuildConfig', () => { - cy.byTestActionID('Edit BuildConfig').click(); -}); - -When('user clicks Show advanced Git options', () => { - cy.contains('Show advanced Git options').click(); - cy.get(gitPO.advancedOptions.buildConfig.advanceGitOptions).should('be.visible'); -}); - -When('user changes value of Context Dir to {string}', (dir: string) => { - cy.get(buildConfigPO.contentDirectoryField).clear().type(dir); -}); - -Then('user will see Context dir as {string}', (dir: string) => { - cy.byTestSelector('details-item-value__Context dir').should('have.text', dir); -}); - -When('user click Save button on a Edit build Config page', () => { - cy.get(formPO.create).click(); -}); - -When('user goes to Environment tab', () => { - // user is not redirected automatically, user has to naviagte back to the tab - cy.get(buildConfigPO.environmentTab).click(); -}); - -Then( - 'user will see Name as {string} and and Value as {string} in Environment Variables', - (name: string, value: string) => { - cy.get(gitPO.advancedOptions.buildConfig.envName) - .scrollIntoView() - .should('be.visible') - .should('have.value', name); - cy.get(gitPO.advancedOptions.buildConfig.envValue) - .scrollIntoView() - .should('be.visible') - .should('have.value', value); - }, -); - -When('And user goes to Environment tab', () => { - cy.get(helmChartRepositoriesPO.cancelButton).click(); - cy.get(buildConfigPO.environmentTab).click(); - cy.get(gitPO.advancedOptions.buildConfig.envName).scrollIntoView().should('be.visible'); - cy.get(gitPO.advancedOptions.buildConfig.envValue).scrollIntoView().should('be.visible'); -}); diff --git a/frontend/packages/dev-console/integration-tests/support/step-definitions/common/addFlow.ts b/frontend/packages/dev-console/integration-tests/support/step-definitions/common/addFlow.ts deleted file mode 100644 index 927b4df5d19..00000000000 --- a/frontend/packages/dev-console/integration-tests/support/step-definitions/common/addFlow.ts +++ /dev/null @@ -1,173 +0,0 @@ -import { Given, When, Then, And } from 'cypress-cucumber-preprocessor/steps'; -import { detailsPage } from '@console/cypress-integration-tests/views/details-page'; -import { - switchPerspective, - devNavigationMenu, - pageTitle, - addOptions, - resources, -} from '../../constants'; -import { topologyPO } from '../../pageObjects'; -import { - gitPage, - addPage, - createGitWorkload, - catalogPage, - topologyPage, - topologyHelper, - perspective, - navigateTo, - topologySidePane, - app, - createGitWorkloadIfNotExistsOnTopologyPage, - verifyAndInstallGitopsPrimerOperator, -} from '../../pages'; -import { checkDeveloperPerspective } from '../../pages/functions/checkDeveloperPerspective'; - -Given('user is at Add page', () => { - checkDeveloperPerspective(); - navigateTo(devNavigationMenu.Add); -}); - -Given('user is at Topology page', () => { - navigateTo(devNavigationMenu.Topology); -}); - -Given( - 'user has created workload {string} with resource type {string}', - (componentName: string, resourceType: string = 'Deployment') => { - createGitWorkloadIfNotExistsOnTopologyPage( - 'https://github.com/sclorg/nodejs-ex.git', - componentName, - resourceType, - 'nodejs-ex-git-app', - ); - topologyHelper.verifyWorkloadInTopologyPage(componentName); - }, -); - -Given('user has opened application {string} in topology page', (componentName: string) => { - cy.get('body').then(($body) => { - if ($body.find(topologyPO.graph.workload).length > 0) { - topologyPage.verifyWorkloadInTopologyPage(componentName); - topologyPage.clickWorkloadUrl(componentName); - } else { - createGitWorkload( - 'https://github.com/sclorg/nodejs-ex.git', - componentName, - 'Deployment', - 'dancer-ex-git-app', - ); - } - }); - topologyPage.verifyWorkloadInTopologyPage(componentName); -}); - -Given('user is at Software Catalog page', () => { - perspective.switchTo(switchPerspective.Developer); - navigateTo(devNavigationMenu.Add); - addPage.selectCardFromOptions(addOptions.SoftwareCatalog); -}); - -Given('user is at Software Catalog page in admin page', () => { - perspective.switchTo(switchPerspective.Administrator); - cy.get('[data-quickstart-id="qs-nav-home"]').should('be.visible').click(); - cy.byLegacyTestID('developer-catalog-header').should('exist').click({ force: true }); -}); - -When('user clicks Instantiate Template button on side bar', () => { - catalogPage.clickButtonOnCatalogPageSidePane(); -}); - -When('user navigates to Add page', () => { - navigateTo(devNavigationMenu.Add); -}); - -When('user clicks Create button on Add page', () => { - gitPage.clickCreate(); -}); - -Then('user will be redirected to Add page', () => { - // detailsPage.titleShouldContain(pageTitle.Add); - cy.get('[data-test="page-heading"] h1').should('contain.text', pageTitle.Add); -}); - -When('user clicks Cancel button on Add page', () => { - gitPage.clickCancel(); -}); - -Then('user can see {string} card on the Add page', (cardName: string) => { - addPage.verifyCard(cardName); -}); - -When('user selects {string} card from add page', (cardName: string) => { - addPage.selectCardFromOptions(cardName); -}); - -When('user enters run command for {string} as {string}', (envKey: string, value: string) => { - addPage.setBuildEnvField(envKey, value); -}); - -Then( - 'user is able to navigate to Build {string} for deployment {string}', - (build: string, name: string) => { - topologyPage.clickOnNode(name); - topologySidePane.selectTab('Resources'); - topologySidePane.selectResource(resources.Builds, 'aut-addflow-git', build); - }, -); - -And( - 'see environment variable {string} with value {string} in Environment tab of details page', - (envKey: string, envVal: string) => { - app.waitForLoad(); - detailsPage.selectTab('Environment'); - app.waitForLoad(); - cy.get(`input[data-test="pairs-list-name"][value="${envKey}"]`).should('have.length', 1); - cy.get(`input[data-test="pairs-list-value"][value="${envVal}"]`).should('have.length', 1); - }, -); - -Then( - 'the environment variable {string} has value {string} in the advanced options of the Build section in the Import from Git page', - (envKey: string, envVal: string) => { - gitPage.verifyBuildConfigEnv(envKey, envVal); - }, -); - -Then( - 'the environment variable {string} has value {string} in the advanced options of the Deployment section in the Import from Git page', - (envKey: string, envVal: string) => { - gitPage.verifyDeploymentEnv(envKey, envVal); - }, -); - -Given('user has installed Gitops primer Operator', () => { - verifyAndInstallGitopsPrimerOperator(); -}); - -When('user navigates to catalog all namespaces page', () => { - cy.visit('/catalog/all-namespaces'); - app.waitForLoad(); -}); - -Then('user will see {string} page heading', (heading: string) => { - cy.get('[data-test="page-heading"] h1').should('contain.text', heading); -}); - -Then('user will see {string} help text', (helpText: string) => { - cy.contains(helpText).should('be.visible'); -}); - -Then('user will not see catalog tiles or items', () => { - cy.get('.catalog-tile-pf').should('not.exist'); - cy.get('[class$="catalog-tile"]').should('not.exist'); -}); - -Then('user will see catalog tiles or items', () => { - catalogPage.isCardsDisplayed(); -}); - -Then('user will not see {string} help text', (helpText: string) => { - cy.contains(helpText).should('not.exist'); -}); diff --git a/frontend/packages/dev-console/integration-tests/support/step-definitions/common/common.ts b/frontend/packages/dev-console/integration-tests/support/step-definitions/common/common.ts deleted file mode 100644 index b2aad6d4e9a..00000000000 --- a/frontend/packages/dev-console/integration-tests/support/step-definitions/common/common.ts +++ /dev/null @@ -1,94 +0,0 @@ -import { Given, When, Then } from 'cypress-cucumber-preprocessor/steps'; -import { detailsPage } from '@console/cypress-integration-tests/views/details-page'; -import { modal } from '@console/cypress-integration-tests/views/modal'; -import { switchPerspective, devNavigationMenu, adminNavigationMenu } from '../../constants'; -import { perspective, projectNameSpace, navigateTo, app } from '../../pages'; -import { checkDeveloperPerspective } from '../../pages/functions/checkDeveloperPerspective'; - -Given('user has logged in as a basic user', () => { - cy.logout(); - const idp = Cypress.expose('BRIDGE_HTPASSWD_IDP') || 'test'; - const username = Cypress.expose('BRIDGE_HTPASSWD_USERNAME') || 'test'; - cy.env(['BRIDGE_HTPASSWD_PASSWORD']).then(({ BRIDGE_HTPASSWD_PASSWORD }) => { - cy.login(idp, username, BRIDGE_HTPASSWD_PASSWORD || 'test'); - }); - app.waitForLoad(); -}); - -Given('user is at developer perspective', () => { - checkDeveloperPerspective(); - app.waitForLoad(); -}); - -Given('user has only admin perspective enabled', () => { - cy.exec( - `oc patch console.operator.openshift.io/cluster --type='merge' -p '{"spec":{"customization":{"perspectives":[{"id":"dev","visibility":{"state":"Disabled"}}]}}}'`, - { failOnNonZeroExit: true }, - ).then((result) => { - cy.log(result.stdout); - cy.log(result.stderr); - }); - cy.exec(` oc rollout status -w deploy/console -n openshift-console`, { - failOnNonZeroExit: true, - }).then((result) => { - cy.log(result.stderr); - }); -}); - -Given('user has created namespace starts with {string}', (projectName: string) => { - const d = new Date(); - const timestamp = d.getTime(); - projectNameSpace.selectOrCreateProject(`${projectName}-${timestamp}-ns`); - cy.testA11y('Developer perspective display after creating or selecting project'); -}); - -Given('user has created or selected namespace {string}', (projectName: string) => { - Cypress.expose('NAMESPACE', projectName); - projectNameSpace.selectOrCreateProject(`${projectName}`); -}); - -Given('user is at Monitoring page', () => { - navigateTo(devNavigationMenu.Observe); -}); - -Given('user is at namespace {string}', (projectName: string) => { - Cypress.expose('NAMESPACE', projectName); - projectNameSpace.selectOrCreateProject(projectName); -}); - -When('user switches to developer perspective', () => { - perspective.switchTo(switchPerspective.Developer); -}); - -When('user selects {string} option from Actions menu', (option: string) => { - cy.byTestActionID(option).click(); -}); - -Then('modal with {string} appears', (header: string) => { - modal.modalTitleShouldContain(header); -}); - -Then('user will be redirected to Pipelines page', () => { - detailsPage.titleShouldContain(adminNavigationMenu.pipelines); -}); - -When('user clicks create button', () => { - cy.get('button[type="submit"]').click(); -}); - -Given('user has selected namespace {string}', (projectName: string) => { - projectNameSpace.selectProject(projectName); -}); - -When('user clicks on {string} link', (buttonName: string) => { - cy.byButtonText(buttonName).click(); -}); - -When('user is at namespace {string}', (projectName: string) => { - perspective.switchTo(switchPerspective.Developer); - projectNameSpace.selectOrCreateProject(projectName); -}); - -When('user refreshes the page', () => { - cy.reload(); -}); diff --git a/frontend/packages/dev-console/integration-tests/support/step-definitions/common/masthead.ts b/frontend/packages/dev-console/integration-tests/support/step-definitions/common/masthead.ts deleted file mode 100644 index 17e8f972085..00000000000 --- a/frontend/packages/dev-console/integration-tests/support/step-definitions/common/masthead.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { Then, When } from 'cypress-cucumber-preprocessor/steps'; - -When('user clicks on Application button in Masthead', () => { - cy.byLegacyTestID('application-launcher').should('be.visible').click(); -}); - -Then('{string} entry is present in Application menu in Masthead', (entry: string) => { - cy.byTestID('application-launcher-item').should('have.text', entry); -}); diff --git a/frontend/packages/dev-console/integration-tests/support/step-definitions/common/monitoring.ts b/frontend/packages/dev-console/integration-tests/support/step-definitions/common/monitoring.ts deleted file mode 100644 index cff6f233bcf..00000000000 --- a/frontend/packages/dev-console/integration-tests/support/step-definitions/common/monitoring.ts +++ /dev/null @@ -1,23 +0,0 @@ -import { Given, When } from 'cypress-cucumber-preprocessor/steps'; -import { devNavigationMenu, monitoringTabs } from '../../constants'; -import { navigateTo, monitoringPage } from '../../pages'; - -Given('user is on Observe page', () => { - navigateTo(devNavigationMenu.Observe); -}); - -Given('user is at the Observe dashboard', () => { - navigateTo(devNavigationMenu.Observe); -}); - -When('user navigates to Observe page', () => { - navigateTo(devNavigationMenu.Observe); -}); - -When('user clicks on {string} tab', (tabName: string) => { - monitoringPage.selectTab(tabName); -}); - -Given('user is on Metrics tab', () => { - monitoringPage.selectTab(monitoringTabs.Metrics); -}); diff --git a/frontend/packages/dev-console/integration-tests/support/step-definitions/common/operatorParam.ts b/frontend/packages/dev-console/integration-tests/support/step-definitions/common/operatorParam.ts deleted file mode 100644 index 3e7a3ee56e8..00000000000 --- a/frontend/packages/dev-console/integration-tests/support/step-definitions/common/operatorParam.ts +++ /dev/null @@ -1,30 +0,0 @@ -/** - * This file is responsible for defining new parameter that can be then used - * in Feature files. This parameter represents and operator and it feeds data - * from `operators` enum (frontend/packages/dev-console/integration-tests/support/constants/global.ts) - */ - -import { defineParameterType } from 'cypress-cucumber-preprocessor/steps'; -import { operators } from '../../constants'; - -const getOperatorsValues = (): string[] => { - const operatorsValues: string[] = []; - for (const operator in operators) { - if (operators.hasOwnProperty(operator)) { - operatorsValues.push(operators[operator as keyof typeof operators]); - } - } - return operatorsValues; -}; - -defineParameterType({ - name: 'operator', - regexp: new RegExp(getOperatorsValues().join('|')), - transformer: (s) => { - const keys = Object.keys(operators).filter((x) => operators[x as keyof typeof operators] === s); - if (keys.length > 0) { - return operators[keys[0] as keyof typeof operators]; - } - throw new Error(`Given key is not part of "operators" enum.`); - }, -}); diff --git a/frontend/packages/dev-console/integration-tests/support/step-definitions/common/operators.ts b/frontend/packages/dev-console/integration-tests/support/step-definitions/common/operators.ts deleted file mode 100644 index 2c86a16219a..00000000000 --- a/frontend/packages/dev-console/integration-tests/support/step-definitions/common/operators.ts +++ /dev/null @@ -1,42 +0,0 @@ -import { Given } from 'cypress-cucumber-preprocessor/steps'; -import { operators } from '../../constants'; -import { - installPipelinesOperatorUsingCLI, - installKnativeOperatorUsingCLI, - installShipwrightOperatorUsingCLI, - verifyAndInstallOperator, - installWebterminalOperatorUsingCLI, -} from '../../pages'; - -Given('user has installed Web Terminal operator', () => { - installWebterminalOperatorUsingCLI(); -}); - -Given('user has installed OpenShift Serverless Operator', () => { - installKnativeOperatorUsingCLI(); -}); - -Given('user has installed OpenShift Pipelines Operator', () => { - installPipelinesOperatorUsingCLI(); -}); - -Given( - '{operator} operator is installed on the cluster in {string} namespace', - (operator: operators, namespace: string) => { - cy.logout(); - cy.login(); // make sure we are logged in as kubeadmin - verifyAndInstallOperator(operator, namespace); - }, -); - -Given('user has installed Quay Container Security Operator', () => { - verifyAndInstallOperator(operators.QuayContainerSecurity); -}); - -Given('user has installed Shipwright Operator', () => { - installShipwrightOperatorUsingCLI(); -}); - -Given('user with basic rights has installed Web Terminal operator', () => { - installWebterminalOperatorUsingCLI(); -}); diff --git a/frontend/packages/dev-console/integration-tests/support/step-definitions/common/project-creation.ts b/frontend/packages/dev-console/integration-tests/support/step-definitions/common/project-creation.ts deleted file mode 100644 index 9049cf475aa..00000000000 --- a/frontend/packages/dev-console/integration-tests/support/step-definitions/common/project-creation.ts +++ /dev/null @@ -1,33 +0,0 @@ -import { When, Then } from 'cypress-cucumber-preprocessor/steps'; -import { modal } from '@console/cypress-integration-tests/views/modal'; -import { topologyPage, projectNameSpace } from '../../pages'; - -When('user enters project name as {string} in Create Project modal', (projectName: string) => { - const d = new Date(); - const timestamp = d.getTime(); - projectNameSpace.enterProjectName(`${projectName}-${timestamp}-ns`); - const finalName = `${projectName}-${timestamp}-ns`; - Cypress.expose('NAMESPACE', finalName); - const namespaces: string[] = Cypress.expose('NAMESPACES') || []; - if (!namespaces.includes(finalName)) { - namespaces.push(finalName); - } - Cypress.expose('NAMESPACES', namespaces); -}); - -When('user clicks Create button present in Create Project modal', () => { - modal.submit(); -}); - -Then('modal will get closed', () => { - modal.shouldBeClosed(); -}); - -Then('topology page displays with the empty state', () => { - topologyPage.verifyNoWorkLoadsText('No resources found'); -}); - -When('user selects the Create Project option from Projects dropdown on top navigation bar', () => { - projectNameSpace.selectCreateProjectOption(); - cy.testA11y('Create Project Modal'); -}); diff --git a/frontend/packages/dev-console/integration-tests/support/step-definitions/common/topology.ts b/frontend/packages/dev-console/integration-tests/support/step-definitions/common/topology.ts deleted file mode 100644 index 4da483d66cd..00000000000 --- a/frontend/packages/dev-console/integration-tests/support/step-definitions/common/topology.ts +++ /dev/null @@ -1,43 +0,0 @@ -import { Given, When, Then } from 'cypress-cucumber-preprocessor/steps'; -import { devNavigationMenu } from '@console/dev-console/integration-tests/support/constants/global'; -import { app, navigateTo } from '@console/dev-console/integration-tests/support/pages/app'; -import { topologyPage } from '@console/topology/integration-tests/support/pages/topology/topology-page'; -import { topologySidePane } from '@console/topology/integration-tests/support/pages/topology/topology-side-pane-page'; -import { pageTitle } from '../../constants'; - -Given('user is at the Topology page', () => { - navigateTo(devNavigationMenu.Topology); - topologyPage.verifyTopologyPage(); -}); - -When('user navigates to Topology page', () => { - navigateTo(devNavigationMenu.Topology); - app.waitForLoad(); - topologyPage.verifyTopologyPage(); -}); - -Then('user is able to see workload {string} in topology page list view', (workloadName: string) => { - topologyPage.verifyWorkloadInTopologyPage(workloadName); -}); - -Then('user is able to see workload {string} in topology page', (workloadName: string) => { - topologyPage.verifyWorkloadInTopologyPage(workloadName); -}); - -Then('user will be redirected to Topology page', () => { - topologyPage.verifyTopologyPage(); -}); - -When('user clicks on workload {string}', (workloadName: string) => { - topologyPage.waitForLoad(); - topologyPage.componentNodeClick(workloadName); -}); - -Then('user can see sidebar opens with Resources tab selected by default', () => { - topologySidePane.verifySelectedTab('Resources'); -}); - -Then('side bar is displayed with the pipelines section', () => { - topologySidePane.verifyTab('Resources'); - topologySidePane.verifySection(pageTitle.PipelineRuns); -}); diff --git a/frontend/packages/dev-console/integration-tests/support/step-definitions/consoleConfiguration/pinned-resources.ts b/frontend/packages/dev-console/integration-tests/support/step-definitions/consoleConfiguration/pinned-resources.ts deleted file mode 100644 index 691efd91b78..00000000000 --- a/frontend/packages/dev-console/integration-tests/support/step-definitions/consoleConfiguration/pinned-resources.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { Then } from 'cypress-cucumber-preprocessor/steps'; - -Then( - 'user will see {string} and {string} pinned on the Developer Perspective navigation', - (el1: string, el2: string) => { - cy.get('[data-test="draggable-pinned-resource-item"]').contains(el1).should('be.visible'); - cy.get('[data-test="draggable-pinned-resource-item"]').contains(el2).should('be.visible'); - }, -); diff --git a/frontend/packages/dev-console/integration-tests/support/step-definitions/crw/crw-basic.ts b/frontend/packages/dev-console/integration-tests/support/step-definitions/crw/crw-basic.ts deleted file mode 100644 index 39ab3f188ec..00000000000 --- a/frontend/packages/dev-console/integration-tests/support/step-definitions/crw/crw-basic.ts +++ /dev/null @@ -1,44 +0,0 @@ -import { Then, When } from 'cypress-cucumber-preprocessor/steps'; -import { submitButton } from '@console/cypress-integration-tests/views/form'; -import { authorizeAccessPage } from '../../pages/crw/authorizeAccess'; -import { keycloakRegistrationPage } from '../../pages/crw/keycloak'; - -When('user clicks on Codeready Workspaces in Application menu in Masthead', () => { - cy.byTestID('application-launcher-item') - .should('have.attr', 'target', '_blank') - .invoke('removeAttr', 'target') - .click(); -}); - -Then('user is redirected to Codeready Workspaces Dashboard', () => { - const idp = Cypress.expose('BRIDGE_HTPASSWD_IDP') || 'test'; - const username = Cypress.expose('BRIDGE_HTPASSWD_USERNAME') || 'test'; - cy.env(['BRIDGE_HTPASSWD_PASSWORD']).then(({ BRIDGE_HTPASSWD_PASSWORD }) => { - const password = BRIDGE_HTPASSWD_PASSWORD || 'test'; - cy.byLegacyTestID('login').should('be.visible'); - cy.contains(idp).should('be.visible').click(); - cy.get('#inputUsername').type(username); - cy.get('#inputPassword').type(password); - cy.get(submitButton).click(); - cy.url().then((url) => { - if (url.includes('oauth')) { - authorizeAccessPage.allowPermissions(); - keycloakRegistrationPage.submitRegistrationForm( - username, - 'some@mail.com', - username, - username, - ); - } - }); - - const crwUrl = Cypress.config('baseUrl')?.replace( - 'console-openshift-console', - 'codeready-openshift-workspaces', - ); - - cy.url().should('equal', `${crwUrl}/dashboard/#/create-workspace?tab=quick-add`); - cy.get('[class*="spinner"]').should('not.exist'); - cy.get('h1[class*="title"]').should('have.text', 'Create Workspace'); - }); -}); diff --git a/frontend/packages/dev-console/integration-tests/support/step-definitions/getting-started/getting-started-tour-dev-perspective.ts b/frontend/packages/dev-console/integration-tests/support/step-definitions/getting-started/getting-started-tour-dev-perspective.ts deleted file mode 100644 index cd8f4c0bcf9..00000000000 --- a/frontend/packages/dev-console/integration-tests/support/step-definitions/getting-started/getting-started-tour-dev-perspective.ts +++ /dev/null @@ -1,65 +0,0 @@ -import { Given, When, Then } from 'cypress-cucumber-preprocessor/steps'; -import { devNavigationMenu, switchPerspective } from '../../constants/global'; -import { gettingStartedPO } from '../../pageObjects'; -import { navigateTo, perspective, topologyPage } from '../../pages'; - -When('user sees first screen as {string}', (HeaderText: string) => { - cy.get(gettingStartedPO.guidedTour.model).contains(HeaderText); -}); - -When('user clicks on Get started button', () => { - cy.get(gettingStartedPO.guidedTour.primaryFooterItem).contains('Get started').click(); -}); - -When('user sees the next screen appears as {string}', (HeaderText: string) => { - cy.get(gettingStartedPO.guidedTour.popover).contains(HeaderText); -}); - -When('user clicks on the {string} button on the guided tour modal', (buttonText: string) => { - cy.get(gettingStartedPO.guidedTour.model).find('button').contains(buttonText).click('center'); -}); - -When('user clicks on the {string} button', (buttonText: string) => { - cy.get(gettingStartedPO.guidedTour.popover).find('button').contains(buttonText).click('center'); -}); - -When('user sees the final screen appears as {string}', (HeaderText: string) => { - cy.get(gettingStartedPO.guidedTour.model).contains(HeaderText); -}); - -Then('user is in the topology view in the developer perspective', () => { - topologyPage.verifyTopologyPage(); -}); - -Given('user is in developer perspective', () => { - perspective.switchTo(switchPerspective.Developer); -}); - -When( - 'user sees the button labels as {string} & {string} and "Close" button on top-right corner', - (secondryLabel: string, primaryLabel: string) => { - cy.get(gettingStartedPO.guidedTour.primaryFooterItem).contains(primaryLabel); - cy.get(gettingStartedPO.guidedTour.secondaryFooterItem).contains(secondryLabel); - cy.get(gettingStartedPO.guidedTour.closeButton).should('be.visible'); - }, -); - -When('user clicks on Close button', () => { - cy.get(gettingStartedPO.guidedTour.closeButton).click(); -}); - -When('user is in the Add page in developer perspective', () => { - perspective.switchTo(switchPerspective.Developer); - navigateTo(devNavigationMenu.Add); -}); - -When('user opens help menu on top right', () => { - cy.byTestID('help-dropdown-toggle').should('be.visible').click(); -}); -When('user clicks on the {string} option', (menuOption: string) => { - cy.get('[role="menu"]').contains(menuOption).click(); -}); - -Then('user is taken to the first screen again', () => { - cy.get(gettingStartedPO.guidedTour.model).contains('Welcome to the Developer Perspective!'); -}); diff --git a/frontend/packages/dev-console/integration-tests/support/step-definitions/getting-started/sample-card-add-page.ts b/frontend/packages/dev-console/integration-tests/support/step-definitions/getting-started/sample-card-add-page.ts deleted file mode 100644 index 129689bd464..00000000000 --- a/frontend/packages/dev-console/integration-tests/support/step-definitions/getting-started/sample-card-add-page.ts +++ /dev/null @@ -1,153 +0,0 @@ -import { Given, When, Then } from 'cypress-cucumber-preprocessor/steps'; -import { detailsPage } from '@console/cypress-integration-tests/views/details-page'; -import { addOptions, devNavigationMenu } from '../../constants'; -import { addPagePO, samplesPO } from '../../pageObjects'; -import { - addPage, - app, - navigateTo, - projectNameSpace, - samplesPage, - topologyPage, - verifyAddPage, -} from '../../pages'; -import { checkDeveloperPerspective } from '../../pages/functions/checkDeveloperPerspective'; - -Given('user is at developer perspective', () => { - checkDeveloperPerspective(); -}); - -Given('user has created or selected namespace {string}', (projectName: string) => { - projectNameSpace.selectOrCreateProject(`${projectName}`); -}); - -Given('user is at Add page', () => { - checkDeveloperPerspective(); - navigateTo(devNavigationMenu.Add); -}); - -When('user clicks on the {string} link', () => { - cy.get(addPagePO.viewAllSamples).click(); -}); - -When('user is redirected to Samples Page', () => { - cy.get('[data-test="page-heading"] h1').contains('Sample'); -}); - -When('user clicks on the Samples card', () => { - verifyAddPage.verifyAddPageCard('Samples'); - addPage.selectCardFromOptions(addOptions.Samples); -}); - -When('user selects {string} sample from Samples', (sample: string) => { - samplesPage.search(sample); - samplesPage.selectCardInSamples(sample); -}); - -When('user is able to see the form header name as {string}', (formName) => { - app.waitForLoad(); - detailsPage.titleShouldContain(formName); -}); - -Then('form is filled with default values', () => { - cy.get('input[name="git.url"]') - .invoke('attr', 'value') - .then((text) => { - if (text !== undefined) { - return true; - } - return false; - }); - cy.byLegacyTestID('git-form-input-url').should('be.disabled'); -}); - -Then('user will see builder image below builder image version dropdown', () => { - cy.get('img[alt="Icon"]').should('be.visible'); -}); - -Then('user is able to see different sample applications', () => { - cy.get('[data-test*="Devfile"]').first().should('be.visible'); - cy.get('[data-test*="BuilderImage"]').first().should('be.visible'); -}); - -Then('sample applications are based on the builder images', () => { - cy.get('[data-test^="BuilderImage"]').then((elements) => { - if (elements.length >= 1) { - return true; - } - return false; - }); -}); - -When('user clicks on the Create button', () => { - app.waitForLoad(); - cy.byLegacyTestID('submit-button').click(); -}); - -When('user selects a sample card', () => { - cy.get('[class*="catalog"]').first().click(); -}); - -Then('user will see the name section', () => { - cy.byLegacyTestID('application-form-app-name').should('be.visible'); -}); - -Then('user will see builder image version dropdown', () => { - cy.byTestID('console-select-menu-toggle').should('be.visible'); -}); - -Then('user will see git url is ineditable field', () => { - cy.byLegacyTestID('git-form-input-url').should('be.visible'); -}); - -Then('user will see create and cancel button', () => { - cy.byLegacyTestID('submit-button').should('be.visible'); - cy.byLegacyTestID('reset-button').should('be.visible'); -}); - -Given('user is in Add flow of dev perspective', () => { - navigateTo(devNavigationMenu.Add); -}); - -When('user assign a new name as {string} in the name section', (workload: string) => { - cy.byLegacyTestID('application-form-app-name').clear().type(workload); -}); - -When('user changes the builder image version from dropdown to {string}', (version: string) => { - cy.byTestID('console-select-menu-toggle').should('be.visible').click(); - cy.byTestID('console-select-item').contains(version).click(); -}); - -Then( - 'user is taken to topology with a {string} deployment workload created inside sample application', - (workloadName: string) => { - topologyPage.verifyTopologyPage(); - topologyPage.verifyWorkloadInTopologyPage(workloadName); - }, -); - -Given('user is at Samples page', () => { - navigateTo(devNavigationMenu.Add); - cy.get(addPagePO.viewAllSamples).click(); -}); - -When('user clicks on the {string} card', (sample: string) => { - samplesPage.selectCardInSamples(sample); -}); - -When( - 'user assigns a name {string} in the Name section of Import from Devfile form', - (name: string) => { - app.waitForLoad(); - cy.wait(10000); - cy.get(samplesPO.form.name).clear().type(name); - }, -); - -Then( - 'user is taken to Topology page with deployment workload {string} created', - (workloadName: string) => { - topologyPage.verifyTopologyPage(); - topologyPage.verifyWorkloadInTopologyPage(workloadName); - }, -); diff --git a/frontend/packages/dev-console/integration-tests/support/step-definitions/guided-tours/developer-hub-installation-with-helm-charts.ts b/frontend/packages/dev-console/integration-tests/support/step-definitions/guided-tours/developer-hub-installation-with-helm-charts.ts deleted file mode 100644 index dba5a1e01a6..00000000000 --- a/frontend/packages/dev-console/integration-tests/support/step-definitions/guided-tours/developer-hub-installation-with-helm-charts.ts +++ /dev/null @@ -1,237 +0,0 @@ -import { Given, Then, When } from 'cypress-cucumber-preprocessor/steps'; -import { - devNavigationMenuPO, - quickSearchAddPO, - quickStartCard, - quickStartLeaveModalPO, - quickStartSidebarPO, -} from '../../pageObjects'; -import { app } from '../../pages'; - -Given('Build with guided documentation card is present in Add page', () => { - cy.byTestID('card quick-start').should('be.visible'); -}); - -When('user click on Add to project icon', () => { - cy.get(quickSearchAddPO.quickSearchButton).click(); -}); - -When('user clicks on Start button from the quick search result', () => { - cy.get(quickSearchAddPO.quickSearchCreateButton).click(); -}); - -When('user types {string} in input box', (tourName: string) => { - cy.get(quickSearchAddPO.quickSearchInput).type(tourName); -}); - -When( - 'user see the tour will start with link to four steps present as a sidepane with close button', - () => { - cy.get(quickStartSidebarPO.quickStartSidebar).should('be.visible'); - cy.get('[class*="quick-start-task-header__title"]').then(($elements) => { - return $elements.length === 3; - }); - }, -); - -When( - 'user clicks on the {string} link on the card to see the tour will start with link to four steps present as a sidepane with close button', - (tourName: string) => { - cy.get(quickStartCard(tourName)).click(); - cy.get(quickStartSidebarPO.quickStartSidebar).contains(tourName); - cy.get('[class*="quick-start-task-header__title"]').then(($elements) => { - return $elements.length === 4; - }); - cy.get(quickStartSidebarPO.closePanel).should('be.visible'); - }, -); - -When( - 'user clicks on the "Start" tour option to see {string} step to install Red Hat Developer Hub', - (stepName: string) => { - cy.get(quickStartSidebarPO.startButton).click(); - cy.get(quickStartSidebarPO.quickStartSidebar).get('h3').contains(stepName); - cy.byLegacyTestID('quick-start-task-subtitle').contains('1 of 4'); - }, -); - -When('user clicks on next button twice', () => { - cy.get(quickStartSidebarPO.nextButton).click(); - app.waitForLoad(); - cy.get(quickStartSidebarPO.nextButton).click(); -}); - -When('user clicks on next button', () => { - cy.get(quickStartSidebarPO.nextButton).click(); -}); - -When( - 'user selects Yes option for alert titled {string} asking to {string}', - (alert: string, message: string) => { - cy.byTestID('quickstart drawer').contains(alert); - cy.byTestID('quickstart drawer').contains(message); - cy.get(quickStartSidebarPO.yesOptionCheckInput).click(); - }, -); - -When('user selects Yes option on alert titled {string}', (alert: string) => { - cy.get(quickStartSidebarPO.quickStartSidebar).contains(alert); - cy.get(quickStartSidebarPO.yesOptionCheckInput).click(); -}); - -When( - 'user clicks on next to see {string} step started for upgrading developer installation', - (stepName: string) => { - cy.get(quickStartSidebarPO.nextButton).click(); - cy.get(quickStartSidebarPO.quickStartSidebar).get('h3').contains(stepName); - }, -); - -When( - 'user clicks on next to see {string} optional step to modify developer hub instance URL', - (stepName: string) => { - cy.get(quickStartSidebarPO.nextButton).click(); - cy.get(quickStartSidebarPO.quickStartSidebar).get('h3').contains(stepName); - }, -); - -When( - 'user clicks on next to see {string} optional step to add developer hub to Openshift Console menu', - (stepName: string) => { - cy.get(quickStartSidebarPO.nextButton).click(); - cy.get(quickStartSidebarPO.quickStartSidebar).get('h3').contains(stepName); - }, -); - -When('user clicks on next to see next step {string} started', (stepName: string) => { - cy.get(quickStartSidebarPO.nextButton).click(); - cy.get(quickStartSidebarPO.quickStartSidebar).get('h3').contains(stepName); -}); - -When('user sees the message saying {string}', (message: string) => { - cy.get(quickStartSidebarPO.quickStartSidebar).contains(message); -}); - -When('user sees "Close", "Back" and "Restart"', () => { - cy.get(quickStartSidebarPO.closePanel).should('be.visible'); - cy.get(quickStartSidebarPO.backButton).should('be.visible'); - cy.get(quickStartSidebarPO.restartSideNoteAction).should('be.visible'); -}); - -When('user clicks on the link {string} on the card', (link: string) => { - cy.byTestID('item all-quick-starts').contains(link).click(); -}); - -When( - 'user sees Complete label marked on {string} card after clicking on "close" button to close the sidepane', - (tourName: string) => { - cy.get(quickStartSidebarPO.closePanel).click(); - cy.get(quickStartCard(tourName)).byTestID('status').contains('Complete'); - }, -); - -When('user clicks on the link {string} on the card', (linkString: string) => { - cy.byTestID('item all-quick-starts').contains(linkString).click(); -}); - -Given('user is at Quick Starts catalog page', () => { - cy.get(devNavigationMenuPO.add).click(); - cy.byTestID('item all-quick-starts').click(); -}); - -When('user clicks on the Start tour option to see {string} step is started', (stepName: string) => { - cy.get(quickStartSidebarPO.quickStartSidebar).contains(stepName); - cy.get(quickStartSidebarPO.quickStartSidebar).byTestID('Start button').click(); -}); - -When('user clicks on the {string} card', (tourName: string) => { - cy.reload(); - cy.get(quickStartCard(tourName)).click('topRight'); -}); - -When( - 'user selects No option on alert appears "Check your work" asking to verify that your application was successfully created', - () => { - cy.get(quickStartSidebarPO.noOptionCheckInput).click(); - }, -); - -Then('user sees that the alert is saying {string}', (alert: string) => { - cy.get(quickStartSidebarPO.quickStartSidebar).contains(alert); -}); - -When('user clicks "close" button to close the sidepane back to tour page', () => { - cy.byTestID('Close button').click(); -}); - -When('user sees alert titled {string} asking to {string}', (alert: string, message: string) => { - cy.get(quickStartSidebarPO.quickStartSidebar).contains(alert); - cy.get(quickStartSidebarPO.quickStartSidebar).contains(message); -}); - -When('user clicks back button to go back to previous step', () => { - cy.get(quickStartSidebarPO.backButton).click(); -}); - -When('user clicks on Close button', () => { - cy.byTestID('Close button').click(); -}); - -Then('user sees Complete label marked on {string} card', (tourName: string) => { - cy.get(quickStartCard(tourName)).byTestID('status').contains('Complete'); -}); - -When('user closes the close button', () => { - cy.get(quickStartSidebarPO.closePanel).click(); -}); - -When('user clicks on Leave button on modal {string}', (modelString: string) => { - cy.get('[role="dialog"]').contains(modelString); - cy.get(quickStartLeaveModalPO.leaveButton).click(); -}); - -Then( - 'user sees that the tour has started again with Yes option selected for the alert titled {string} in step 1', - (alert: string) => { - cy.byLegacyTestID('quick-start-task-subtitle').contains('1 of 4'); - cy.get(quickStartSidebarPO.quickStartSidebar).contains(alert); - cy.get(quickStartSidebarPO.yesOptionCheckInput).should('be.checked'); - }, -); - -When( - 'user clicks on third step {string} from the link to four steps present in the card', - (stepName: string) => { - cy.get(quickStartSidebarPO.quickStartSidebar).contains('h3', stepName).click(); - }, -); - -When('user clicks on second step {string}', (stepName: string) => { - cy.get(quickStartSidebarPO.quickStartSidebar).contains('h3', stepName).click(); -}); - -When('user clicks on first step {string} step', (stepName: string) => { - cy.get(quickStartSidebarPO.quickStartSidebar).contains('h3', stepName).click(); -}); - -When( - 'user clicks on next to see step {string} with {string} alert', - (stepName: string, alert: string) => { - cy.get(quickStartSidebarPO.nextButton).click(); - cy.get(quickStartSidebarPO.quickStartSidebar).contains('h3', stepName); - cy.get(quickStartSidebarPO.quickStartSidebar).contains(alert); - }, -); - -When( - 'user clicks on next to see step {string} with {string} alert', - (stepName: string, alert: string) => { - cy.get(quickStartSidebarPO.nextButton).click(); - cy.get(quickStartSidebarPO.quickStartSidebar).contains('h3', stepName); - cy.get(quickStartSidebarPO.quickStartSidebar).contains(alert); - }, -); - -When('user selects Yes option in alert titled {string}', (title: string) => { - cy.get(quickStartSidebarPO.quickStartSidebar).contains(title); -}); diff --git a/frontend/packages/dev-console/integration-tests/support/step-definitions/guided-tours/getting-started-serverless.ts b/frontend/packages/dev-console/integration-tests/support/step-definitions/guided-tours/getting-started-serverless.ts deleted file mode 100644 index 7e6ca9d1949..00000000000 --- a/frontend/packages/dev-console/integration-tests/support/step-definitions/guided-tours/getting-started-serverless.ts +++ /dev/null @@ -1,243 +0,0 @@ -import { Given, Then, When } from 'cypress-cucumber-preprocessor/steps'; -import { - devNavigationMenuPO, - quickSearchAddPO, - quickStartCard, - quickStartLeaveModalPO, - quickStartSidebarPO, -} from '../../pageObjects'; -import { app } from '../../pages'; - -Given('Build with guided documentation card is present in Add page', () => { - cy.byTestID('card quick-start').should('be.visible'); -}); - -When('user click on Add to project icon', () => { - cy.get(quickSearchAddPO.quickSearchButton).click(); -}); - -When('user clicks on Start button from the quick search result', () => { - cy.get(quickSearchAddPO.quickSearchCreateButton).click(); -}); - -When('user types {string} in input box', (tourName: string) => { - cy.get(quickSearchAddPO.quickSearchInput).type(tourName); -}); - -When( - 'user sees the tour will start with a link to the three steps present as a sidebar with a start button', - () => { - cy.get(quickStartSidebarPO.quickStartSidebar).should('be.visible'); - cy.get('[class*="quick-start-task-header__title"]').then(($elements) => { - return $elements.length === 3; - }); - }, -); - -When( - 'user clicks on the {string} link on the card to see the tour will start with link to three steps present as a sidepane with close button', - (tourName: string) => { - cy.get(quickStartCard(tourName)).click(); - cy.byTestID('quickstart drawer').contains(tourName); - cy.get('[class*="quick-start-task-header__title"]').then(($elements) => { - return $elements.length === 3; - }); - cy.get(quickStartSidebarPO.closePanel).should('be.visible'); - }, -); - -When( - 'user clicks on the Start button to see {string} step for installing serverless steps', - (stepName: string) => { - cy.get(quickStartSidebarPO.startButton).click(); - cy.byTestID('quickstart drawer').get('h3').contains(stepName); - cy.byLegacyTestID('quick-start-task-subtitle').contains('1 of 3'); - }, -); - -When('user clicks on next button twice', () => { - cy.get(quickStartSidebarPO.nextButton).click(); - app.waitForLoad(); - cy.get(quickStartSidebarPO.nextButton).click(); -}); - -When('user clicks on next button', () => { - cy.get(quickStartSidebarPO.nextButton).should('be.visible').click(); -}); - -When( - 'user clicks on next to see an alert appears {string} asking to verify that the Serverless Operator was successfully installed', - (stepName: string) => { - cy.get(quickStartSidebarPO.nextButton).should('be.visible').click(); - cy.byTestID('quickstart drawer').contains(stepName); - }, -); - -When( - 'user clicks on next to see an alert appears {string} step to create the Knative Serving application program interface', - (stepName: string) => { - cy.byTestID('quickstart drawer').contains(stepName); - }, -); - -When( - 'user clicks on next to see {string} step to create the Knative Serving application program interface', - (stepName: string) => { - cy.get(quickStartSidebarPO.nextButton).should('be.visible').click(); - cy.byTestID('quickstart drawer').get('h3').contains(stepName); - }, -); - -When( - 'user clicks on next to see {string} step to create the Knative Eventing application program interface', - (stepName: string) => { - cy.get(quickStartSidebarPO.nextButton).should('be.visible').click(); - cy.byTestID('quickstart drawer').get('h3').contains(stepName); - }, -); - -When('user sees the message saying {string}', (message: string) => { - cy.byTestID('quickstart drawer').contains(message); -}); - -When('user sees "Close", "Back" and "Restart"', () => { - cy.get(quickStartSidebarPO.closePanel).should('be.visible'); - cy.get(quickStartSidebarPO.backButton).should('be.visible'); - cy.get(quickStartSidebarPO.restartSideNoteAction).should('be.visible'); -}); - -When('user sees Complete label marked on {string} card', (tourName: string) => { - cy.get(quickStartCard(tourName)).byTestID('status').contains('Complete'); -}); - -When('user clicks on the link {string} on the card', (link: string) => { - cy.byTestID('item all-quick-starts').contains(link).click(); -}); - -When( - 'user selects Yes option for alert titled {string} asking to {string}', - (alert: string, promptMessage: string) => { - cy.byTestID('quickstart drawer').contains(alert); - cy.byTestID('quickstart drawer').contains(promptMessage); - cy.get(quickStartSidebarPO.yesOptionCheckInput).click(); - }, -); - -Then('user clicks "Restart" to reset the guided documentation status', () => { - cy.byTestID('quickstart drawer').get(quickStartSidebarPO.restartSideNoteAction).click(); -}); - -Given('user is at Quick Starts catalog page', () => { - cy.get(devNavigationMenuPO.add).click(); - cy.byTestID('item all-quick-starts').click(); -}); - -When('user clicks on the {string} card', (tourName: string) => { - cy.reload(); - cy.get(quickStartCard(tourName)).click('topRight'); -}); - -When('user clicks on the Start tour option to see {string} step is started', (stepName: string) => { - cy.byTestID('quickstart drawer').contains(stepName); - cy.byTestID('quickstart drawer').byTestID('Start button').click(); -}); - -When('user selects No option', () => { - cy.get(quickStartSidebarPO.noOptionCheckInput).click(); -}); - -Then('user sees that the alert is saying {string}', (alertString: string) => { - cy.byTestID('quickstart drawer').contains(alertString); -}); - -When('user clicks on next on {string} step', (stepName: string) => { - cy.byTestID('quickstart drawer').contains(stepName); - cy.byLegacyTestID('quick-start-task-subtitle').should('be.visible'); - cy.get(quickStartSidebarPO.nextButton).should('be.visible').click(); -}); - -When('user clicks on next on {string} alert', (alert: string) => { - cy.byTestID('quickstart drawer').contains(alert); - cy.get(quickStartSidebarPO.nextButton).should('be.visible').click(); -}); - -When( - 'user selects Yes option for the alert {string} asking to {string}', - (alert: string, promptMessage: string) => { - cy.byTestID('quickstart drawer').contains(alert); - cy.get(quickStartSidebarPO.yesOptionCheckInput).click(); - cy.byTestID('quickstart drawer').contains(promptMessage); - }, -); - -When( - 'user clicks on next to see "Create the Knative Eventing API" step is started', - (stepName: string) => { - cy.get(quickStartSidebarPO.nextButton).should('be.visible').click(); - cy.byTestID('quickstart drawer').contains('h3', stepName); - }, -); - -When('user clicks "close" button to close the sidepane', () => { - cy.get(quickStartSidebarPO.closePanel).click(); -}); - -When( - 'user sees alert titled {string} asking to {string}', - (alert: string, promptMessage: string) => { - cy.byTestID('quickstart drawer').contains(alert); - cy.byTestID('quickstart drawer').contains(promptMessage); - }, -); - -When('user clicks "Back" button to go back to previous {string} alert', (alert: string) => { - cy.get(quickStartSidebarPO.backButton).click(); - cy.byTestID('quickstart drawer').contains(alert); -}); - -When('user clicks "close" button to close the sidepane back to tour page', () => { - cy.byTestID('Close button').click(); -}); - -Then('user sees Complete label marked on {string} card', (tourName: string) => { - cy.get(quickStartCard(tourName)).byTestID('status').contains('Complete'); -}); - -When('user sees {string} step is started', (stepName: string) => { - cy.byTestID('quickstart drawer').contains('h3', stepName); -}); - -When('user closes the close button', () => { - cy.get(quickStartSidebarPO.closePanel).click(); -}); - -When('user clicks on Leave button on modal {string}', (modelString: string) => { - cy.get('[role="dialog"]').contains(modelString); - cy.get(quickStartLeaveModalPO.leaveButton).click(); -}); - -Then('user sees the tour will start from the step {string}', (stepName: string) => { - cy.byTestID('content').contains(stepName); - cy.byLegacyTestID('quick-start-task-subtitle').contains('1 of 3'); -}); - -When('user clicks on the Restart button', () => { - cy.get(quickStartSidebarPO.restartSideNoteAction).click(); -}); - -Then('user sees that the tour has started again', () => { - cy.byTestID('quickstart drawer').contains('In this quick start, you will complete 3 task'); - cy.get(quickStartSidebarPO.startButton).should('be.visible'); - cy.get(quickStartSidebarPO.nextButton).should('not.exist'); - cy.get(quickStartSidebarPO.closeButton).should('not.exist'); -}); - -When('user clicks on first step {string}', (stepName: string) => { - cy.byTestID('quickstart drawer').contains('h3', stepName).click(); -}); - -Then('user sees step {string} with Check your work alert', (stepName: string) => { - cy.byTestID('quickstart drawer').contains('h3', stepName); - cy.byLegacyTestID('quick-start-task-subtitle').contains('2 of 3'); - cy.get('[role="alert"]').contains('Check your work'); -}); diff --git a/frontend/packages/dev-console/integration-tests/support/step-definitions/health-checks/add-health-checks-topology-sidebar.ts b/frontend/packages/dev-console/integration-tests/support/step-definitions/health-checks/add-health-checks-topology-sidebar.ts deleted file mode 100644 index cde1cb56397..00000000000 --- a/frontend/packages/dev-console/integration-tests/support/step-definitions/health-checks/add-health-checks-topology-sidebar.ts +++ /dev/null @@ -1,61 +0,0 @@ -import { Given, When, Then } from 'cypress-cucumber-preprocessor/steps'; -import { detailsPage } from '@console/cypress-integration-tests/views/details-page'; -import { nav } from '@console/cypress-integration-tests/views/nav'; -import { devNavigationMenu, switchPerspective } from '../../constants'; -import { topologyPO } from '../../pageObjects'; -import { navigateTo, perspective, topologyHelper, topologySidePane } from '../../pages'; - -Given('user selects type as {string}', (type: string) => { - cy.byTestID('console-select-menu-toggle').should('be.visible').click(); - cy.byTestID('console-select-item').contains(type).should('be.visible').click(); - cy.get('body').then(($el) => { - if ($el.find('[data-test="console-select-menu-toggle"]').text().includes('Container command')) { - cy.get('[placeholder="argument"]').should('be.visible').type('example'); - } - }); -}); - -When( - 'user searches and clicks on the workload {string} to open the sidebar', - (workloadName: string) => { - topologyHelper.search(workloadName); - cy.get(topologyPO.highlightNode, { timeout: 5000 }).should('be.visible').click(); - topologySidePane.verify(); - }, -); - -When('user can see workload {string} in topology page', (name: string) => { - topologyHelper.search(name); - cy.get(topologyPO.highlightNode, { timeout: 5000 }).should('be.visible'); -}); - -When( - 'user will see all 3 Probes added on the Add Health Checks page for {string} {string}', - (type: string, name: string) => { - cy.log( - `/k8s/ns/${Cypress.expose('NAMESPACE')}/${type}/${name}/containers/${name}/health-checks`, - ); - cy.visit( - `/k8s/ns/${Cypress.expose('NAMESPACE')}/${type}/${name}/containers/${name}/health-checks`, - ); - detailsPage.titleShouldContain('Edit health checks'); - cy.get('.odc-heath-check-probe__successText').should('have.length', 3); - perspective.switchTo(switchPerspective.Developer); - nav.sidenav.switcher.shouldHaveText(switchPerspective.Developer); - navigateTo(devNavigationMenu.Topology); - }, -); - -Then( - 'user will see {string} added on the Add Health Checks page for {string} {string}', - (probe: string, type: string, name: string) => { - cy.visit( - `/k8s/ns/${Cypress.expose('NAMESPACE')}/${type}/${name}/containers/${name}/health-checks`, - ); - detailsPage.titleShouldContain('Edit health checks'); - cy.get('.odc-heath-check-probe__successText').contains(`${probe} added`).should('be.visible'); - perspective.switchTo(switchPerspective.Developer); - nav.sidenav.switcher.shouldHaveText(switchPerspective.Developer); - navigateTo(devNavigationMenu.Topology); - }, -); diff --git a/frontend/packages/dev-console/integration-tests/support/step-definitions/monitoring/topology-sidebar-actions.ts b/frontend/packages/dev-console/integration-tests/support/step-definitions/monitoring/topology-sidebar-actions.ts deleted file mode 100644 index 770a97d26c3..00000000000 --- a/frontend/packages/dev-console/integration-tests/support/step-definitions/monitoring/topology-sidebar-actions.ts +++ /dev/null @@ -1,163 +0,0 @@ -import { Given, When, Then } from 'cypress-cucumber-preprocessor/steps'; -import { nodeActions } from '../../constants'; -import { addHealthChecksPO } from '../../pageObjects'; -import { - addHealthChecksPage, - createGitWorkloadIfNotExistsOnTopologyPage, - createHelmChartFromAddPage, - topologyPage, - topologySidePane, -} from '../../pages'; - -Given( - 'workload {string} with resource type {string} is present in topology page', - (workloadName: string, resourceType: string) => { - createGitWorkloadIfNotExistsOnTopologyPage( - 'https://github.com/sclorg/nodejs-ex.git', - workloadName, - resourceType, - ); - topologyPage.verifyWorkloadInTopologyPage(workloadName); - }, -); - -Given('helm release {string} is present in topology page', (helmReleaseName: string) => { - createHelmChartFromAddPage(helmReleaseName); - topologyPage.verifyWorkloadInTopologyPage(helmReleaseName); -}); - -Given( - 'user has installed helm chart {string} with release name {string}', - (helmChartName: string, helmReleaseName: string) => { - createHelmChartFromAddPage(helmReleaseName, helmChartName); - topologyPage.verifyWorkloadInTopologyPage(helmReleaseName); - }, -); - -When('user selects {string} from Context Menu', (menuOption: string) => { - topologyPage.selectContextMenuAction(menuOption); -}); - -When('user selects {string} from topology sidebar Actions dropdown', (menuOption: string) => { - topologySidePane.selectNodeAction(menuOption); -}); - -When('user clicks on the workload {string} to open the sidebar', (nodeName: string) => { - topologyPage.clickOnNode(nodeName); - topologySidePane.verify(); -}); - -When( - 'user clicks on the deployment of workload {string} to open the sidebar', - (nodeName: string) => { - topologyPage.clickOnDeploymentNode(nodeName); - topologySidePane.verify(); - }, -); - -When( - 'user clicks on the knative service {string} to open the sidebar', - (knativeWorkloadName: string) => { - topologyPage.clickOnKnativeService(knativeWorkloadName); - }, -); - -Given('user is on the topology sidebar of the helm release {string}', (helmReleaseName: string) => { - createHelmChartFromAddPage(helmReleaseName); -}); - -When('user clicks on Add Readiness Probe', () => { - addHealthChecksPage.clickProbeLink('Add Readiness probe'); -}); - -When('user clicks on tick button', () => { - addHealthChecksPage.clickCheckIcon(); -}); - -When('user clicks on Add Liveness Probe', () => { - addHealthChecksPage.clickProbeLink('Add Liveness probe'); -}); - -When('user clicks on Add Startup Probe', () => { - addHealthChecksPage.clickProbeLink('Add Startup probe'); -}); - -When('user clicks on Add button', () => { - addHealthChecksPage.clickAdd(); -}); - -When( - 'user right clicks on the workload {string} to open the Context Menu', - (workloadName: string) => { - topologyPage.rightClickOnNode(workloadName); - }, -); - -When('user edits the application {string}', (name: string) => { - topologyPage.rightClickOnNode(name); - cy.byTestActionID(`Edit ${name}`).should('be.visible').click(); -}); - -When( - 'user right clicks on the Service {string} to open the Context Menu', - (serviceName: string) => { - topologyPage.rightClickOnKnativeService(serviceName); - }, -); - -When('user clicks on Edit Health Checks', () => { - topologyPage.selectContextMenuAction(nodeActions.EditHealthChecks); -}); - -When('user sees Readiness Probe already added', () => { - addHealthChecksPage.verifySuccessText('Readiness probe added'); -}); - -When('user removes Readiness Probe', () => { - addHealthChecksPage.removeReadinessProbe(); -}); - -When('user clicks on Save button', () => { - addHealthChecksPage.clickSave(); -}); - -When('user right clicks on the {string} to open the Context Menu', (nodeName: string) => { - topologyPage.rightClickOnNode(nodeName); -}); - -When('user starts a new build', () => { - topologyPage.startBuild(); -}); - -Then('user will see Health Checks advanced option', () => { - // TODO: implement step -}); - -Then('user will not see Add Health Checks link on the Sidebar for {string}', (nodeName: string) => { - // TODO: implement step - cy.log(nodeName); -}); - -Then('user will see Readiness Probe added on the Add Health Checks page', () => { - cy.get(addHealthChecksPO.readinessProbeAdded).should('be.visible'); -}); - -Then('user will be redirected Add Health Checks page', () => { - addHealthChecksPage.verifyTitle(); -}); - -Then('user will see Liveness Probe added on the Add Health Checks page', () => { - cy.get(addHealthChecksPO.livenessProbeAdded).should('be.visible'); -}); - -Then('user will see Startup Probe added on the Add Health Checks page', () => { - cy.get(addHealthChecksPO.addStartUpProbeAdded).should('be.visible'); -}); - -Then('user will see Readiness Probe removed on the Add Health Checks page', () => { - cy.get(addHealthChecksPO.readinessProbeAdded).should('not.be.visible'); -}); - -Then('user sees Liveness Probe already added', () => { - addHealthChecksPage.verifySuccessText('Liveness probe added'); -}); diff --git a/frontend/packages/dev-console/integration-tests/support/step-definitions/quck-starts/filter-quick-starts-catalog.ts b/frontend/packages/dev-console/integration-tests/support/step-definitions/quck-starts/filter-quick-starts-catalog.ts deleted file mode 100644 index 087700c6803..00000000000 --- a/frontend/packages/dev-console/integration-tests/support/step-definitions/quck-starts/filter-quick-starts-catalog.ts +++ /dev/null @@ -1,91 +0,0 @@ -import { Given, When, Then } from 'cypress-cucumber-preprocessor/steps'; -import { quickStartCard, quickStartsPO } from '../../pageObjects'; -import { quickStartsPage } from '../../pages'; - -When('user clicks on "View all quick starts" on Build with guided documentation card', () => { - quickStartsPage.quickStartsCatalog(); -}); - -Then('user can see Quick Starts catalog page', () => { - cy.get(quickStartsPO.quickStartTitle).should('be.visible'); -}); - -Then('user can see filter by keyword search bar', () => { - cy.get(quickStartsPO.filterKeyword).should('be.visible'); -}); - -Then('user can see Status filter dropdown', () => { - cy.get(quickStartsPO.statusFilter).should('be.visible'); -}); - -Given('user is at Quick Starts catalog page', () => { - quickStartsPage.quickStartsCatalog(); -}); - -When('user clicks on filter by keyword search bar', () => { - cy.get(quickStartsPO.filterKeyword).click(); -}); - -When('user enters {string}', (filterName: string) => { - quickStartsPage.filterByKeyword(filterName); -}); - -Then('user can see {string} Quick Start', (quickStartDisplayName: string) => { - quickStartsPage.cardPresent(quickStartCard(quickStartDisplayName)); -}); - -Given('user is at Quick Starts catalog page', () => { - quickStartsPage.quickStartsCatalog(); -}); - -When('user clicks on Status filter menu', () => { - quickStartsPage.status(); -}); - -Then('user can see Complete, In progress and Not started categories', () => { - cy.get(quickStartsPO.statusDropdown).contains('Complete'); - cy.get(quickStartsPO.statusDropdown).contains('In progress'); - cy.get(quickStartsPO.statusDropdown).contains('Not started'); -}); - -Given('user is at Quick Starts catalog page', () => { - quickStartsPage.quickStartsCatalog(); -}); - -Given('user has completed {string} Quick Start', (quickStartDisplayName: string) => { - quickStartsPage.executeQuickStart(quickStartCard(quickStartDisplayName)); -}); - -When('user clicks on Status filter menu', () => { - quickStartsPage.status(); -}); - -When('user clicks on completed', () => { - cy.get(quickStartsPO.statusComplete).should('be.visible').click(); -}); - -Then('user can see {string} Quick Start is present', (quickStartDisplayName: string) => { - cy.get(quickStartCard(quickStartDisplayName)).should('be.visible'); -}); - -Given('user is at Quick Starts catalog page', () => { - quickStartsPage.quickStartsCatalog(); -}); - -When('user clicks on filter by keyword search bar', () => { - cy.get(quickStartsPO.filterKeyword).click(); -}); - -When('user enters {string}', (filterKeyword: string) => { - quickStartsPage.filterByKeyword(filterKeyword); -}); - -Then('user can see "No results found" message', () => { - cy.get(quickStartsPO.emptyState).should('be.visible'); - cy.get(quickStartsPO.emptyState).contains('No results found'); -}); - -Then('user can see Clear all filters option', () => { - cy.get(quickStartsPO.clearFilter).should('be.visible'); - cy.get(quickStartsPO.clearFilter).contains('Clear all filters'); -}); diff --git a/frontend/packages/dev-console/integration-tests/support/step-definitions/quck-starts/quick-start-access-code-snippet.ts b/frontend/packages/dev-console/integration-tests/support/step-definitions/quck-starts/quick-start-access-code-snippet.ts deleted file mode 100644 index cc1a967d1c7..00000000000 --- a/frontend/packages/dev-console/integration-tests/support/step-definitions/quck-starts/quick-start-access-code-snippet.ts +++ /dev/null @@ -1,93 +0,0 @@ -import { Given, When, Then } from 'cypress-cucumber-preprocessor/steps'; -import { operators } from '../../constants'; -import { devNavigationMenuPO, quickStartCard, quickStartSidebarPO } from '../../pageObjects'; -import { app, verifyAndInstallOperator } from '../../pages'; - -Given('user has installed Web Terminal Operator', () => { - verifyAndInstallOperator(operators.WebTerminalOperator); -}); - -Given('user has applied {string}', (yamlFileName: string) => { - cy.exec(`oc apply -f testData/quick-start/${yamlFileName} -n ${Cypress.expose('NAMESPACE')} `, { - failOnNonZeroExit: false, - }).then(function (result) { - cy.log(result.stdout); - }); -}); - -Given('user is at Quick Starts catalog page', () => { - cy.get(devNavigationMenuPO.add).click(); - cy.reload(); - cy.byTestID('item all-quick-starts').click(); -}); - -When('user clicks on the {string} Quick Starts card', (tourName: string) => { - cy.get(quickStartCard(tourName)).click(); -}); - -When('user clicks on Step 1', () => { - cy.get(quickStartSidebarPO.quickStartSidebarBody).find('h3').click(); -}); - -When('user clicks on the Start button', () => { - cy.get(quickStartSidebarPO.quickStartSidebar).byTestID('Start button').click(); -}); - -When('user sees that {string} step has started', (stepName: string) => { - cy.get(quickStartSidebarPO.quickStartSidebarBody).get('h3').contains(stepName); - cy.byLegacyTestID('quick-start-task-subtitle').contains('1 of 1'); -}); - -When('user hovers on the copy icon in the code snippet', () => { - cy.get(quickStartSidebarPO.clipboardAction).first().trigger('mouseenter').invoke('focus'); -}); - -Then('user can see {string} tooltip appears after click', (tooltip: string) => { - cy.get(quickStartSidebarPO.clipboardAction) - .first() - .invoke('focus') - .trigger('mouseenter') - .wait(1000) - .then(() => { - cy.get(quickStartSidebarPO.tooltip).contains(tooltip); - }) - .trigger('mouseleave'); -}); - -Then('user can see {string} tooltip appears after hover', (tooltip: string) => { - cy.get(quickStartSidebarPO.tooltip).contains(tooltip); -}); - -Then('user clicks on the copy icon in the code snippet', () => { - cy.get(quickStartSidebarPO.clipboardAction).first().click(); -}); - -Then('user clicks on the Restart button', () => { - cy.get(quickStartSidebarPO.restartSideNoteAction).click(); -}); - -Given('user has the {string} Quick Starts side panel open', (tour: string) => { - cy.get(quickStartSidebarPO.quickStartSidebar).should('be.visible'); - cy.get(quickStartSidebarPO.quickStartSidebar).find('h2').contains(tour); -}); - -When('user has copied the code snippet', () => { - cy.get(quickStartSidebarPO.clipboardAction).first().click(); -}); - -When('user hovers on the play icon in the code snippet', () => { - cy.reload(); - app.waitForDocumentLoad(); - cy.get(quickStartSidebarPO.executeAction).first().trigger('mouseenter').invoke('focus'); -}); - -Then('user clicks on the play icon in the code snippet', () => { - cy.get(quickStartSidebarPO.executeAction).first().click(); -}); - -Then( - 'user can see {string} tooltip appears for executing the code in terminal', - (tooltip: string) => { - cy.get('[role="tooltip"]').contains(tooltip); - }, -); diff --git a/frontend/packages/dev-console/integration-tests/support/step-definitions/quck-starts/quick-start-devperspective.ts b/frontend/packages/dev-console/integration-tests/support/step-definitions/quck-starts/quick-start-devperspective.ts deleted file mode 100644 index 90da1a931e0..00000000000 --- a/frontend/packages/dev-console/integration-tests/support/step-definitions/quck-starts/quick-start-devperspective.ts +++ /dev/null @@ -1,161 +0,0 @@ -import { Given, When, Then } from 'cypress-cucumber-preprocessor/steps'; -import { - addPagePO, - helpDropdownMenu, - quickStartCard, - quickStartLeaveModalPO, - quickStartSidebarPO, - quickStartsPO, -} from '../../pageObjects'; -import { app, quickStartsPage } from '../../pages'; - -let quickStartLink: string; - -Then('user can see Build with guided documentation card', () => { - cy.get(addPagePO.buildWithGuidedDocumentation).should('be.visible'); -}); - -Then('user can see two Quick Starts link present on it', () => { - cy.get(addPagePO.buildWithGuidedDocumentationItems).should('have.length', 2 + 1); // +1 represents View all quick start link displaying with the quick start links -}); - -Then('user can see the "View all quick starts" on the card', () => { - cy.get(addPagePO.viewAllQuickStarts).should('be.visible'); -}); - -When('user selects QuickStarts from the help menu icon on the masthead', () => { - cy.get(helpDropdownMenu).should('be.visible').click(); - cy.get('[data-test="masthead-quick-starts"]').contains('Quick Starts').click(); -}); - -Then( - 'user can see {string}, {string} and {string} Quick Starts', - (quickStartDisplayName1, quickStartDisplayName2, quickStartDisplayName3) => { - cy.get(quickStartCard(quickStartDisplayName1)).scrollIntoView().should('be.visible'); - cy.get(quickStartCard(quickStartDisplayName2)).scrollIntoView().should('be.visible'); - cy.get(quickStartCard(quickStartDisplayName3)).scrollIntoView().should('be.visible'); - }, -); - -Then('user can see time taken to complete the tour on the card', () => { - cy.get(quickStartCard('Get started with a sample application')) - .scrollIntoView() - .find(quickStartsPO.duration) - .should('be.visible'); - cy.get(quickStartCard('Install Red Hat Developer Hub (RHDH) with a Helm Chart')) - .scrollIntoView() - .find(quickStartsPO.duration) - .should('be.visible'); - cy.get(quickStartCard('Add health checks to your sample application')) - .scrollIntoView() - .find(quickStartsPO.duration) - .should('be.visible'); -}); - -Given('user is at Quick Starts catalog page', () => { - quickStartsPage.quickStartsCatalog(); -}); - -Given('user has completed {string} Quick Start', (quickStartDisplayName: string) => { - quickStartsPage.executeQuickStart(quickStartCard(quickStartDisplayName)); -}); - -Then( - 'user can see time taken to complete the {string} tour on the card', - (quickStartDisplayName: string) => { - cy.get(quickStartCard(quickStartDisplayName)).find(quickStartsPO.duration).should('be.visible'); - }, -); - -Then('user can see Complete label on {string} card', (quickStartDisplayName: string) => { - cy.get(quickStartCard(quickStartDisplayName)) - .parent() - .find(quickStartsPO.cardStatus) - .should('be.visible') - .contains('Complete'); -}); - -Given('user is at Quick Starts catalog page', () => { - quickStartsPage.quickStartsCatalog(); -}); - -Given('user has not completed {string} Quick Start', (quickStartDisplayName: string) => { - quickStartsPage.leaveQuickStartIncomplete(quickStartCard(quickStartDisplayName)); -}); - -Then( - 'user can see time taken to complete the {string} tour on the card', - (quickStartDisplayName: string) => { - cy.get(quickStartCard(quickStartDisplayName)).find(quickStartsPO.duration).should('be.visible'); - }, -); - -Then('user can see In Progress label on {string} card', (quickStartDisplayName: string) => { - cy.get(quickStartCard(quickStartDisplayName)) - .parent() - .find(quickStartsPO.cardStatus) - .should('be.visible') - .contains('In progress'); -}); - -When('user clicks on first Quick Starts link on the Build with guided documentation card', () => { - cy.get(addPagePO.buildWithGuidedDocumentationItems) - .first() - .then(($link) => { - quickStartLink = $link.get(0).innerText; - }); - cy.get(addPagePO.buildWithGuidedDocumentationItems).first().click(); - cy.get(quickStartSidebarPO.quickStartSidebarBody).should('be.visible'); -}); - -When('user clicks on the Start button', () => { - cy.get(quickStartSidebarPO.quickStartSidebarBody).find(quickStartSidebarPO.startButton).click(); -}); - -When('user clicks on close button', () => { - cy.get(quickStartSidebarPO.closePanel).should('be.visible').click(); -}); - -When('user clicks on Leave button in the Leave the tour modal box', () => { - cy.get(quickStartLeaveModalPO.leaveModal).should('be.visible'); - cy.get(quickStartLeaveModalPO.leaveButton).should('be.visible').click(); -}); - -Then('user can see the first Quick Starts link', () => { - cy.get(addPagePO.buildWithGuidedDocumentationItems).first().should('have.text', quickStartLink); -}); - -Given('user is at Quick Starts catalog page', () => { - quickStartsPage.quickStartsCatalog(); -}); - -Given('user has completed {string} Quick Start', (quickStartDisplayName: string) => { - quickStartsPage.executeQuickStart(quickStartCard(quickStartDisplayName)); -}); - -When('user clicks on Restart on {string} quick start sidebar', (quickStartDisplayName: string) => { - cy.get(quickStartCard(quickStartDisplayName)).scrollIntoView().click(); - app.waitForDocumentLoad(); - cy.get(quickStartSidebarPO.quickStartSidebarBody).should('be.visible'); - cy.get(quickStartSidebarPO.restartSideNoteAction).should('be.visible').click(); -}); - -Then('user can see Start button', () => { - cy.get(quickStartSidebarPO.quickStartSidebarBody) - .find(quickStartSidebarPO.startButton) - .should('be.visible'); -}); - -Then('user can see {string} Steps visible for the Quick Start', (steps: string) => { - cy.get(quickStartSidebarPO.quickStartSidebarBody).contains(steps); -}); - -When('user clicks {string} card', (quickStartDisplayName: string) => { - cy.get(quickStartCard(quickStartDisplayName)).scrollIntoView().should('be.visible').click(); - cy.get(quickStartSidebarPO.quickStartSidebarBody).should('be.visible'); -}); - -Then('user can see url has {string} in the address bar', (urlString: string) => { - cy.url().should('include', urlString); - cy.log(urlString); -}); diff --git a/frontend/packages/dev-console/integration-tests/support/step-definitions/quck-starts/quick-starts-cluster-overview.ts b/frontend/packages/dev-console/integration-tests/support/step-definitions/quck-starts/quick-starts-cluster-overview.ts deleted file mode 100644 index 1c2afa26138..00000000000 --- a/frontend/packages/dev-console/integration-tests/support/step-definitions/quck-starts/quick-starts-cluster-overview.ts +++ /dev/null @@ -1,59 +0,0 @@ -import { Given, When, Then } from 'cypress-cucumber-preprocessor/steps'; -import { adminNavigationBar, switchPerspective } from '../../constants'; -import { addPagePO } from '../../pageObjects'; -import { quickStartLeaveModalPO, quickStartSidebarPO } from '../../pageObjects/quickStarts-po'; -import { navigateToAdminMenu, perspective, quickStartsPage } from '../../pages'; - -let quickStartLink: string; - -Given('user is at administrator perspective', () => { - perspective.switchTo(switchPerspective.Administrator); -}); - -When('user switches to administrator perspective', () => { - perspective.switchTo(switchPerspective.Administrator); -}); - -When('user goes to Cluster Overview page', () => { - navigateToAdminMenu(adminNavigationBar.Home); -}); - -Given('user is at Cluster Overview page', () => { - navigateToAdminMenu(adminNavigationBar.Home); -}); - -When('user clicks on the Start button', () => { - cy.get(quickStartSidebarPO.quickStartSidebarBody).find(quickStartSidebarPO.startButton).click(); -}); -When('user clicks on close button', () => { - cy.get(quickStartSidebarPO.closePanel).should('be.visible').click(); -}); -When('user clicks on Leave button in Leave quick start modal box', () => { - cy.get(quickStartLeaveModalPO.leaveModal).should('be.visible'); - cy.get(quickStartLeaveModalPO.leaveButton).should('be.visible').click(); -}); - -When('user completes first Quick Starts from the card', () => { - cy.get(addPagePO.buildWithGuidedDocumentationItems) - .first() - .then(($link) => { - quickStartLink = $link.get(0).innerText; - }); - - quickStartsPage.finishFirstQuickStart(); -}); - -Then( - 'user can see completed Quick Starts link is replaced with another quick start link in the card', - () => { - cy.get(addPagePO.buildWithGuidedDocumentationItems) - .first() - .then(($link) => { - const newQuickStartLink = $link.get(0).innerText; - if (newQuickStartLink !== quickStartLink) { - return true; - } - return false; - }); - }, -); diff --git a/frontend/packages/dev-console/integration-tests/support/step-definitions/topology/create-workloads.ts b/frontend/packages/dev-console/integration-tests/support/step-definitions/topology/create-workloads.ts deleted file mode 100644 index 480d88a06eb..00000000000 --- a/frontend/packages/dev-console/integration-tests/support/step-definitions/topology/create-workloads.ts +++ /dev/null @@ -1,48 +0,0 @@ -import { Given, When, Then } from 'cypress-cucumber-preprocessor/steps'; -import { nav } from '@console/cypress-integration-tests/views/nav'; -import { - topologyPage, - topologySidePane, -} from '@console/topology/integration-tests/support/pages/topology'; -import { switchPerspective, devNavigationMenu } from '../../constants'; -import { perspective, navigateTo } from '../../pages'; - -Given('user is at the Topology page', () => { - navigateTo(devNavigationMenu.Topology); - topologyPage.verifyTopologyPage(); -}); - -When('user applies cronjob YAML', () => { - cy.exec(`oc apply -f testData/yamls/create-cronjob.yaml`); -}); - -Then('user will see cron job with name {string} on topology page', (name: string) => { - perspective.switchTo(switchPerspective.Developer); - nav.sidenav.switcher.shouldHaveText(switchPerspective.Developer); - topologyPage.verifyWorkloadInTopologyPage(`${name}`); -}); - -When('user applies job YAML', () => { - cy.exec(`oc apply -f testData/yamls/create-job.yaml`); -}); - -Then('user will see job with name {string} on topology page', (name: string) => { - perspective.switchTo(switchPerspective.Developer); - nav.sidenav.switcher.shouldHaveText(switchPerspective.Developer); - topologyPage.verifyWorkloadInTopologyPage(`${name}`); -}); - -When('user applies pod YAML', () => { - cy.exec(`oc apply -f testData/yamls/create-pod.yaml`); -}); - -Then('user will see pod with name {string} on topology page', (name: string) => { - perspective.switchTo(switchPerspective.Developer); - nav.sidenav.switcher.shouldHaveText(switchPerspective.Developer); - topologyPage.verifyWorkloadInTopologyPage(`${name}`); -}); - -Then('user will see sidebar in topology page with title {string}', (title: string) => { - topologySidePane.verify(); - topologySidePane.verifyTitle(title); -}); diff --git a/frontend/packages/dev-console/integration-tests/support/step-definitions/userPreferences/user-preferences-dev-perspective.ts b/frontend/packages/dev-console/integration-tests/support/step-definitions/userPreferences/user-preferences-dev-perspective.ts deleted file mode 100644 index 3d0b70f91c7..00000000000 --- a/frontend/packages/dev-console/integration-tests/support/step-definitions/userPreferences/user-preferences-dev-perspective.ts +++ /dev/null @@ -1,219 +0,0 @@ -import { Given, When, Then } from 'cypress-cucumber-preprocessor/steps'; -import { modal } from '@console/cypress-integration-tests/views/modal'; -import { nav } from '@console/cypress-integration-tests/views/nav'; -import { addOptions, devNavigationMenu, switchPerspective } from '../../constants'; -import { gitPO } from '../../pageObjects'; -import { - getPreferenceDropdown, - getTab, - userPreferencePO, -} from '../../pageObjects/userPreference-po'; -import { - addPage, - app, - catalogPage, - createGitWorkload, - gitPage, - navigateTo, - perspective, - projectNameSpace, - topologyHelper, -} from '../../pages'; - -Given('user is at admin perspective', () => { - perspective.switchTo(switchPerspective.Administrator); - nav.sidenav.switcher.shouldHaveText(switchPerspective.Administrator); -}); - -When('user clicks on user dropdown on masthead and selects {string}', (menuItem: string) => { - cy.get(userPreferencePO.userMenu).should('be.visible').click(); - cy.get("[role='menu']").find('li').contains(menuItem).should('be.visible').click(); -}); - -Then('user sees {string} tab selected on User Preferences page', (sideTab: string) => { - cy.get(getTab(sideTab)).should('be.visible'); -}); - -Then('user sees {string} tab on User Preferences page', (sideTab: string) => { - cy.get(getTab(sideTab)).should('be.visible'); -}); - -When( - 'user changes user preference {string} dropdown to {string}', - (group: string, preferance: string) => { - cy.selectByDropDownText(getPreferenceDropdown(group), preferance); - }, -); - -When('user reloads the console without perspective', () => { - cy.reload(); - app.waitForLoad(); -}); - -Then('user sees the {string} perspective', (userPerspective: string) => { - nav.sidenav.switcher.shouldHaveText(userPerspective); -}); - -Given('user has created project {string}', (projectName) => { - Cypress.expose('NAMESPACE', projectName); - projectNameSpace.selectOrCreateProject(`${projectName}`); -}); - -When('user selects {string} from the project menu', (projectName: string) => { - projectNameSpace.selectOrCreateProject(projectName); -}); - -When('user clicks on {string} dropdown on User Preferences page', (group: string) => { - cy.get(getPreferenceDropdown(group)).should('be.visible').click(); -}); - -When('user searches and selects project {string} from the dropdown', (preference: string) => { - cy.get(userPreferencePO.namespaceTypeahead).clear().should('not.have.value'); - cy.get(userPreferencePO.namespaceTypeahead).type(preference).should('have.value', preference); - cy.get('[data-test="dropdown console.preferredNamespace"]') - .find('li') - .contains(preference) - .click(); -}); - -When('user reloads the console', () => { - cy.reload(); - app.waitForLoad(); -}); - -Then('user can see project {string} is selected', (projectName: string) => { - perspective.switchTo(switchPerspective.Developer); - navigateTo(devNavigationMenu.Topology); - app.waitForLoad(); - cy.get('[data-test-id="namespace-bar-dropdown"] button [class*="text"]').should( - 'contain.text', - projectName, - ); -}); - -When('user types project {string} in search bar', (preference: string) => { - cy.get(userPreferencePO.namespaceTypeahead).clear().should('not.have.value'); - cy.get(userPreferencePO.namespaceTypeahead).type(preference).should('have.value', preference); -}); - -When('user clicks on Create project option from the dropdown', () => { - cy.get(userPreferencePO.creteProjectButton).should('be.visible').click(); -}); - -When('user clicks on Create with name {string} in Create Project modal', (projectName: string) => { - modal.shouldBeOpened(); - cy.get('#input-name').type(projectName); - cy.get('#confirm-action').click(); - app.waitForLoad(); -}); - -Given('user has created or selected namespace {string}', (projectName) => { - Cypress.expose('NAMESPACE', projectName); - projectNameSpace.selectOrCreateProject(`${projectName}`); -}); - -Given( - 'user has created workload {string} with resource type {string}', - (componentName: string, resourceType: string = 'Deployment') => { - createGitWorkload( - 'https://github.com/sclorg/nodejs-ex.git', - componentName, - resourceType, - 'nodejs-ex-git-app', - ); - topologyHelper.verifyWorkloadInTopologyPage(componentName); - }, -); - -When('user clicks on Topology in navigation menu', () => { - perspective.switchTo(switchPerspective.Developer); - navigateTo(devNavigationMenu.Topology); -}); - -Then('user can see topology graph view', () => { - cy.get('[data-id="odc-topology-graph"]').should('be.visible'); -}); - -Then('user can see topology list view', () => { - cy.get('[aria-label="Topology List View"]').should('be.visible'); -}); - -When('user clicks on Add in navigation menu', () => { - perspective.switchTo(switchPerspective.Developer); - navigateTo(devNavigationMenu.Add); -}); - -When('user clicks on Helm charts', () => { - addPage.selectCardFromOptions(addOptions.HelmChart); -}); - -When('user selects {string} helm chart', (cardName: string) => { - catalogPage.search(cardName); - catalogPage.selectHelmChartCard(cardName); -}); - -When('user clicks on Install Helm Chart button', () => { - catalogPage.clickButtonOnCatalogPageSidePane(); -}); - -Then('user can see Form view option selected in Install Helm Chart page', () => { - cy.get('#form-radiobutton-editorType-form-field').should('be.checked'); -}); - -Then('user can see YAML view option selected in Install Helm Chart page', () => { - cy.get('#form-radiobutton-editorType-yaml-field').should('be.checked'); -}); - -When('user clicks on {string} tab on User Preferences page', (tab: string) => { - cy.get(getTab(tab)).should('be.visible').click(); -}); - -When('user clicks on the checkbox to uncheck it', () => { - cy.get(userPreferencePO.checkboxPreferredLanguage).should('be.visible').uncheck(); -}); - -Then('user will see the language change to 日本語', () => { - cy.get('[data-test="page-heading"] h1') - .invoke('attr', 'value') - .then(($initialVal) => { - if ($initialVal !== 'ユーザー設定') { - cy.wait(5000); - } - cy.get('[data-test="page-heading"] h1').should('contain.text', 'ユーザー設定'); - }); - // After execution of all tests Language value is changed back to English - cy.selectByDropDownText(getPreferenceDropdown('Language'), 'English'); -}); - -When('user deselects the checkbox of user preference Secure Route', () => { - // cy.get().uncheck(); -}); - -Given('user clicks on {string} card', (cardName) => { - addPage.selectCardFromOptions(cardName); -}); - -When('user enters Git Repo URL as {string}', (gitUrl: string) => { - gitPage.enterGitUrl(gitUrl); - gitPage.verifyValidatedMessage(gitUrl); -}); - -When('user enters Name as {string} in General section', (name: string) => { - gitPage.enterComponentName(name); -}); - -When('user clicks {string} link in Advanced Options section', (linkName: string) => { - cy.byButtonText(linkName).click(); -}); - -Then('user is able to see Secure Route checkbox is deselected', () => { - cy.get(gitPO.advancedOptions.routing.secureRoute).should('not.be.checked'); -}); - -When('user clicks on Container images', () => { - addPage.selectCardFromOptions(addOptions.ContainerImage); -}); - -Then('user is able to see resources DeploymentConfig is selected', () => { - cy.get(gitPO.resourcesDropdown).should('contain.text', 'DeploymentConfig'); -}); diff --git a/frontend/packages/dev-console/integration-tests/support/step-definitions/vulnerability/project-vulnerability.ts b/frontend/packages/dev-console/integration-tests/support/step-definitions/vulnerability/project-vulnerability.ts deleted file mode 100644 index b1be98b13dc..00000000000 --- a/frontend/packages/dev-console/integration-tests/support/step-definitions/vulnerability/project-vulnerability.ts +++ /dev/null @@ -1,116 +0,0 @@ -import { Given, When, Then } from 'cypress-cucumber-preprocessor/steps'; -import { detailsPage } from '@console/cypress-integration-tests/views/details-page'; -import { devNavigationMenu } from '../../constants'; -import { pagePO, vulnerabilityPO } from '../../pageObjects'; -import { navigateTo } from '../../pages'; -import { importYaml } from '../../pages/importYaml'; - -Given('user created deployment resource using YAML editor from {string}', (yamlFile: string) => { - importYaml.setYAMLEditorContent(yamlFile); - cy.get(pagePO.breadcrumb).should('be.visible'); - detailsPage.titleShouldContain('test-vulnerability'); -}); - -Given('user is at project tab', () => { - navigateTo(devNavigationMenu.Project); -}); - -When('user clicks on the vulnerability tab', () => { - cy.get(vulnerabilityPO.vulnerabilityTab).should('be.visible').click(); -}); - -Given('user can see Image Manifest vulnerabilities', () => { - cy.byDataID('0-0').should('be.visible'); -}); - -Then('user can see filter with {string} option selected', (filterName: string) => { - cy.get(vulnerabilityPO.dropdowButton).should('have.text', filterName); -}); - -When( - 'user can see {string}, {string}, {string}, {string}, {string}, and {string}', - (el1, el2, el3, el4, el5, el6: string) => { - cy.get(vulnerabilityPO.vulnerabilityTable) - .should('contain', el1) - .and('contain', el2) - .and('contain', el3) - .and('contain', el4) - .and('contain', el5) - .and('contain', el6); - }, -); - -When('user clicks on the Image Vulnerabilities in Status section', () => { - cy.get(vulnerabilityPO.imageVulnerabilityAlert).should('be.visible').click(); - cy.get(vulnerabilityPO.imageVulnerabilityPopup).should('be.visible'); -}); - -Then('user clicks on the View all link on Image Vulnerability breakdown pop overview', () => { - cy.get(vulnerabilityPO.viewAllLink).should('be.visible').click({ force: true }); -}); - -Then('user clicks on dropdown associated with filter', () => { - cy.get(vulnerabilityPO.dropdowButton).should('be.visible').click(); -}); - -When('user clicks on label option', () => { - cy.byTestDropDownMenu('LABEL').should('be.visible').click(); -}); - -When('user clicks on the image name in Image Vulnerability breakdown pop over', () => { - cy.get(vulnerabilityPO.firstVulnerabilityLink).should('be.visible').click({ force: true }); -}); - -When('user clicks on {string} type of vulnerability', (tabName) => { - cy.log(`[id="${tabName}"]`); - cy.get(vulnerabilityPO.vulnerabilityType).should('be.visible'); - cy.get(`[id="${tabName}"]`).should('be.visible').click({ force: true }); -}); - -Then( - 'user can see image manifest vulnerability Details, YAML and Affected Pods tabs on ImageManifestsVuln Details page', - () => { - cy.get(vulnerabilityPO.detailsTab).should('be.visible'); - cy.get(vulnerabilityPO.yamlTab).should('be.visible'); - cy.get(vulnerabilityPO.affectedPodsTab).should('be.visible'); - }, -); - -Then('user can see {string} vulnerabilities tab selected', (tab: string) => { - cy.get(`[id="${tab}"]`).then(($el) => { - expect($el.prop('ariaPressed')).toEqual(`true`); - }); -}); - -Given('user is at Image manifests vulnerability details page of {string}', (vul: string) => { - navigateTo(devNavigationMenu.Project); - cy.get(vulnerabilityPO.vulnerabilityTab).should('be.visible').click(); - cy.byLegacyTestID(vul).should('be.visible').click(); - cy.byTestSectionHeading('Image Manifest Vulnerabilities details').should('be.visible'); -}); - -When('user clicks on Filter dropdown menu in vulnerabilities section', () => { - cy.get(vulnerabilityPO.filterDropdownToggle).scrollIntoView().should('be.visible').click(); -}); - -When('user clicks on {string} Type filter', (filter: string) => { - cy.get(`[data-test-row-filter="${filter}"] input[id="${filter}"]`).should('be.visible').click(); -}); - -Then('user can see {string} filter selected', (filter: string) => { - cy.get(`[data-test-row-filter="${filter}"] input[id="${filter}"]`).should('be.checked'); -}); - -Then( - 'user can see {string}, {string}, {string}, {string}, {string}, {string} and {string} in Severity filter', - (op1, op2, op3, op4, op5, op6, op7: string) => { - cy.get(vulnerabilityPO.severity) - .should('contain', op1) - .and('contain', op2) - .and('contain', op3) - .and('contain', op4) - .and('contain', op5) - .and('contain', op6) - .and('contain', op7); - }, -); diff --git a/frontend/packages/dev-console/integration-tests/testData/add-flow/git-dc.yaml b/frontend/packages/dev-console/integration-tests/testData/add-flow/git-dc.yaml deleted file mode 100644 index c92575d2076..00000000000 --- a/frontend/packages/dev-console/integration-tests/testData/add-flow/git-dc.yaml +++ /dev/null @@ -1,18 +0,0 @@ -apiVersion: apps/v1 -kind: Deployment -metadata: - name: shell-app -spec: - selector: - matchLabels: - app: shell-app - replicas: 1 - template: - metadata: - labels: - app: shell-app - spec: - containers: - - name: shell-app - image: image-registry.openshift-image-registry.svc:5000/service-binding-demo/shell-app - imagePullPolicy: Always \ No newline at end of file diff --git a/frontend/packages/dev-console/integration-tests/testData/add-flow/git-page.json b/frontend/packages/dev-console/integration-tests/testData/add-flow/git-page.json deleted file mode 100644 index 12b72e5c167..00000000000 --- a/frontend/packages/dev-console/integration-tests/testData/add-flow/git-page.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "Perl": "https://github.com/sclorg/dancer-ex.git", - "PHP": "https://github.com/sclorg/cakephp-ex.git", - "Nginx": "https://github.com/sclorg/nginx-ex.git", - "Httpd": "https://github.com/sclorg/httpd-ex.git", - "NETCore": "https://github.com/redhat-developer/s2i-dotnetcore-ex.git", - "Go": "https://github.com/sclorg/golang-ex.git", - "Ruby": "https://github.com/sclorg/ruby-ex.git", - "Python": "https://github.com/sclorg/django-ex.git", - "Java": "https://github.com/jboss-openshift/openshift-quickstarts", - "NodeJs": "https://github.com/sclorg/nodejs-ex.git" -} diff --git a/frontend/packages/dev-console/integration-tests/testData/add-flow/gitea-setup.yaml b/frontend/packages/dev-console/integration-tests/testData/add-flow/gitea-setup.yaml deleted file mode 100644 index b827716a19d..00000000000 --- a/frontend/packages/dev-console/integration-tests/testData/add-flow/gitea-setup.yaml +++ /dev/null @@ -1,49 +0,0 @@ -apiVersion: v1 -kind: Namespace -metadata: - name: gitea ---- -apiVersion: v1 -kind: ServiceAccount -metadata: - name: gitea-service-account - namespace: gitea ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRole -metadata: - name: gitea-cluster-role -rules: - - verbs: - - '*' - apiGroups: - - '*' - resources: - - '*' ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRoleBinding -metadata: - name: gitea-cluster-role-binding -subjects: - - kind: ServiceAccount - name: gitea-service-account - namespace: gitea -roleRef: - kind: ClusterRole - name: gitea-cluster-role - apiGroup: rbac.authorization.k8s.io ---- -apiVersion: batch/v1 -kind: Job -metadata: - name: gitea-install-job - namespace: gitea -spec: - template: - spec: - restartPolicy: Never - serviceAccountName: gitea-service-account - containers: - - name: gitea-installer - image: ghcr.io/lucifergene/gitea-installer-openshift:main diff --git a/frontend/packages/dev-console/integration-tests/testData/git-import-flow.data.ts b/frontend/packages/dev-console/integration-tests/testData/git-import-flow.data.ts deleted file mode 100644 index 3af63c2eb93..00000000000 --- a/frontend/packages/dev-console/integration-tests/testData/git-import-flow.data.ts +++ /dev/null @@ -1,15 +0,0 @@ -export const testData = { - gitRepoUrl: 'https://github.com/sclorg/nodejs-ex.git', - hostName: 'host', - path: '/home', - buildEnvName: 'envName', - buildEnvValue: 'envValue', - deployEnvName: 'envName', - deployEnvValue: 'envValue', - cpuRequest: 8, - cpuLimit: 8, - memoryRequest: 400, - memoryLimit: 400, - scalingLimit: 2, - label: 'app=devlelopment', -}; diff --git a/frontend/packages/dev-console/integration-tests/testData/git-import/cakephp-ex/contents.json b/frontend/packages/dev-console/integration-tests/testData/git-import/cakephp-ex/contents.json deleted file mode 100644 index 27eba63338c..00000000000 --- a/frontend/packages/dev-console/integration-tests/testData/git-import/cakephp-ex/contents.json +++ /dev/null @@ -1,355 +0,0 @@ -[ - { - "name": ".editorconfig", - "path": ".editorconfig", - "sha": "9ffb50c305ed46a6553aa356d23561efc62f1934", - "size": 367, - "url": "https://api.github.com/repos/sclorg/cakephp-ex/contents/.editorconfig?ref=master", - "html_url": "https://github.com/sclorg/cakephp-ex/blob/master/.editorconfig", - "git_url": "https://api.github.com/repos/sclorg/cakephp-ex/git/blobs/9ffb50c305ed46a6553aa356d23561efc62f1934", - "download_url": "https://raw.githubusercontent.com/sclorg/cakephp-ex/master/.editorconfig", - "type": "file", - "_links": { - "self": "https://api.github.com/repos/sclorg/cakephp-ex/contents/.editorconfig?ref=master", - "git": "https://api.github.com/repos/sclorg/cakephp-ex/git/blobs/9ffb50c305ed46a6553aa356d23561efc62f1934", - "html": "https://github.com/sclorg/cakephp-ex/blob/master/.editorconfig" - } - }, - { - "name": ".gitattributes", - "path": ".gitattributes", - "sha": "9eafcd38a945fb26a60c79b22d535dbeff601388", - "size": 901, - "url": "https://api.github.com/repos/sclorg/cakephp-ex/contents/.gitattributes?ref=master", - "html_url": "https://github.com/sclorg/cakephp-ex/blob/master/.gitattributes", - "git_url": "https://api.github.com/repos/sclorg/cakephp-ex/git/blobs/9eafcd38a945fb26a60c79b22d535dbeff601388", - "download_url": "https://raw.githubusercontent.com/sclorg/cakephp-ex/master/.gitattributes", - "type": "file", - "_links": { - "self": "https://api.github.com/repos/sclorg/cakephp-ex/contents/.gitattributes?ref=master", - "git": "https://api.github.com/repos/sclorg/cakephp-ex/git/blobs/9eafcd38a945fb26a60c79b22d535dbeff601388", - "html": "https://github.com/sclorg/cakephp-ex/blob/master/.gitattributes" - } - }, - { - "name": ".gitignore", - "path": ".gitignore", - "sha": "e8ecc549a9f2404f255ef84ffcc05cfdecb7657b", - "size": 554, - "url": "https://api.github.com/repos/sclorg/cakephp-ex/contents/.gitignore?ref=master", - "html_url": "https://github.com/sclorg/cakephp-ex/blob/master/.gitignore", - "git_url": "https://api.github.com/repos/sclorg/cakephp-ex/git/blobs/e8ecc549a9f2404f255ef84ffcc05cfdecb7657b", - "download_url": "https://raw.githubusercontent.com/sclorg/cakephp-ex/master/.gitignore", - "type": "file", - "_links": { - "self": "https://api.github.com/repos/sclorg/cakephp-ex/contents/.gitignore?ref=master", - "git": "https://api.github.com/repos/sclorg/cakephp-ex/git/blobs/e8ecc549a9f2404f255ef84ffcc05cfdecb7657b", - "html": "https://github.com/sclorg/cakephp-ex/blob/master/.gitignore" - } - }, - { - "name": ".htaccess", - "path": ".htaccess", - "sha": "d2b0cc9ea9fcc03df395c34d8e6165a6193309e2", - "size": 399, - "url": "https://api.github.com/repos/sclorg/cakephp-ex/contents/.htaccess?ref=master", - "html_url": "https://github.com/sclorg/cakephp-ex/blob/master/.htaccess", - "git_url": "https://api.github.com/repos/sclorg/cakephp-ex/git/blobs/d2b0cc9ea9fcc03df395c34d8e6165a6193309e2", - "download_url": "https://raw.githubusercontent.com/sclorg/cakephp-ex/master/.htaccess", - "type": "file", - "_links": { - "self": "https://api.github.com/repos/sclorg/cakephp-ex/contents/.htaccess?ref=master", - "git": "https://api.github.com/repos/sclorg/cakephp-ex/git/blobs/d2b0cc9ea9fcc03df395c34d8e6165a6193309e2", - "html": "https://github.com/sclorg/cakephp-ex/blob/master/.htaccess" - } - }, - { - "name": ".s2i", - "path": ".s2i", - "sha": "17c203c354c804cece0f1d5c060ab5801e569c42", - "size": 0, - "url": "https://api.github.com/repos/sclorg/cakephp-ex/contents/.s2i?ref=master", - "html_url": "https://github.com/sclorg/cakephp-ex/tree/master/.s2i", - "git_url": "https://api.github.com/repos/sclorg/cakephp-ex/git/trees/17c203c354c804cece0f1d5c060ab5801e569c42", - "download_url": null, - "type": "dir", - "_links": { - "self": "https://api.github.com/repos/sclorg/cakephp-ex/contents/.s2i?ref=master", - "git": "https://api.github.com/repos/sclorg/cakephp-ex/git/trees/17c203c354c804cece0f1d5c060ab5801e569c42", - "html": "https://github.com/sclorg/cakephp-ex/tree/master/.s2i" - } - }, - { - "name": ".travis.yml", - "path": ".travis.yml", - "sha": "befdb98eeb4e690c82ad69b346a2232ece665ec5", - "size": 719, - "url": "https://api.github.com/repos/sclorg/cakephp-ex/contents/.travis.yml?ref=master", - "html_url": "https://github.com/sclorg/cakephp-ex/blob/master/.travis.yml", - "git_url": "https://api.github.com/repos/sclorg/cakephp-ex/git/blobs/befdb98eeb4e690c82ad69b346a2232ece665ec5", - "download_url": "https://raw.githubusercontent.com/sclorg/cakephp-ex/master/.travis.yml", - "type": "file", - "_links": { - "self": "https://api.github.com/repos/sclorg/cakephp-ex/contents/.travis.yml?ref=master", - "git": "https://api.github.com/repos/sclorg/cakephp-ex/git/blobs/befdb98eeb4e690c82ad69b346a2232ece665ec5", - "html": "https://github.com/sclorg/cakephp-ex/blob/master/.travis.yml" - } - }, - { - "name": "README.md", - "path": "README.md", - "sha": "91d660903bb4a6a615672141602575b351e72bf9", - "size": 8280, - "url": "https://api.github.com/repos/sclorg/cakephp-ex/contents/README.md?ref=master", - "html_url": "https://github.com/sclorg/cakephp-ex/blob/master/README.md", - "git_url": "https://api.github.com/repos/sclorg/cakephp-ex/git/blobs/91d660903bb4a6a615672141602575b351e72bf9", - "download_url": "https://raw.githubusercontent.com/sclorg/cakephp-ex/master/README.md", - "type": "file", - "_links": { - "self": "https://api.github.com/repos/sclorg/cakephp-ex/contents/README.md?ref=master", - "git": "https://api.github.com/repos/sclorg/cakephp-ex/git/blobs/91d660903bb4a6a615672141602575b351e72bf9", - "html": "https://github.com/sclorg/cakephp-ex/blob/master/README.md" - } - }, - { - "name": "bin", - "path": "bin", - "sha": "dda812cb0ea8a7a6abb3a0fdba10f8aed67420ad", - "size": 0, - "url": "https://api.github.com/repos/sclorg/cakephp-ex/contents/bin?ref=master", - "html_url": "https://github.com/sclorg/cakephp-ex/tree/master/bin", - "git_url": "https://api.github.com/repos/sclorg/cakephp-ex/git/trees/dda812cb0ea8a7a6abb3a0fdba10f8aed67420ad", - "download_url": null, - "type": "dir", - "_links": { - "self": "https://api.github.com/repos/sclorg/cakephp-ex/contents/bin?ref=master", - "git": "https://api.github.com/repos/sclorg/cakephp-ex/git/trees/dda812cb0ea8a7a6abb3a0fdba10f8aed67420ad", - "html": "https://github.com/sclorg/cakephp-ex/tree/master/bin" - } - }, - { - "name": "composer.json", - "path": "composer.json", - "sha": "a058fcc3612a351ef7f9b098b6e1e8b14f49ca2a", - "size": 1610, - "url": "https://api.github.com/repos/sclorg/cakephp-ex/contents/composer.json?ref=master", - "html_url": "https://github.com/sclorg/cakephp-ex/blob/master/composer.json", - "git_url": "https://api.github.com/repos/sclorg/cakephp-ex/git/blobs/a058fcc3612a351ef7f9b098b6e1e8b14f49ca2a", - "download_url": "https://raw.githubusercontent.com/sclorg/cakephp-ex/master/composer.json", - "type": "file", - "_links": { - "self": "https://api.github.com/repos/sclorg/cakephp-ex/contents/composer.json?ref=master", - "git": "https://api.github.com/repos/sclorg/cakephp-ex/git/blobs/a058fcc3612a351ef7f9b098b6e1e8b14f49ca2a", - "html": "https://github.com/sclorg/cakephp-ex/blob/master/composer.json" - } - }, - { - "name": "composer.lock", - "path": "composer.lock", - "sha": "61a85b6db8de8dc76276af681fe81ce03309e82b", - "size": 168486, - "url": "https://api.github.com/repos/sclorg/cakephp-ex/contents/composer.lock?ref=master", - "html_url": "https://github.com/sclorg/cakephp-ex/blob/master/composer.lock", - "git_url": "https://api.github.com/repos/sclorg/cakephp-ex/git/blobs/61a85b6db8de8dc76276af681fe81ce03309e82b", - "download_url": "https://raw.githubusercontent.com/sclorg/cakephp-ex/master/composer.lock", - "type": "file", - "_links": { - "self": "https://api.github.com/repos/sclorg/cakephp-ex/contents/composer.lock?ref=master", - "git": "https://api.github.com/repos/sclorg/cakephp-ex/git/blobs/61a85b6db8de8dc76276af681fe81ce03309e82b", - "html": "https://github.com/sclorg/cakephp-ex/blob/master/composer.lock" - } - }, - { - "name": "config", - "path": "config", - "sha": "cf4296ae064afc12286d3865c965cc63960af1e8", - "size": 0, - "url": "https://api.github.com/repos/sclorg/cakephp-ex/contents/config?ref=master", - "html_url": "https://github.com/sclorg/cakephp-ex/tree/master/config", - "git_url": "https://api.github.com/repos/sclorg/cakephp-ex/git/trees/cf4296ae064afc12286d3865c965cc63960af1e8", - "download_url": null, - "type": "dir", - "_links": { - "self": "https://api.github.com/repos/sclorg/cakephp-ex/contents/config?ref=master", - "git": "https://api.github.com/repos/sclorg/cakephp-ex/git/trees/cf4296ae064afc12286d3865c965cc63960af1e8", - "html": "https://github.com/sclorg/cakephp-ex/tree/master/config" - } - }, - { - "name": "health.php", - "path": "health.php", - "sha": "93a64220e0fa1439474861bf15b386a3b8fe00a5", - "size": 410, - "url": "https://api.github.com/repos/sclorg/cakephp-ex/contents/health.php?ref=master", - "html_url": "https://github.com/sclorg/cakephp-ex/blob/master/health.php", - "git_url": "https://api.github.com/repos/sclorg/cakephp-ex/git/blobs/93a64220e0fa1439474861bf15b386a3b8fe00a5", - "download_url": "https://raw.githubusercontent.com/sclorg/cakephp-ex/master/health.php", - "type": "file", - "_links": { - "self": "https://api.github.com/repos/sclorg/cakephp-ex/contents/health.php?ref=master", - "git": "https://api.github.com/repos/sclorg/cakephp-ex/git/blobs/93a64220e0fa1439474861bf15b386a3b8fe00a5", - "html": "https://github.com/sclorg/cakephp-ex/blob/master/health.php" - } - }, - { - "name": "index.php", - "path": "index.php", - "sha": "4591769163517c42649f37f14070f40333dba205", - "size": 649, - "url": "https://api.github.com/repos/sclorg/cakephp-ex/contents/index.php?ref=master", - "html_url": "https://github.com/sclorg/cakephp-ex/blob/master/index.php", - "git_url": "https://api.github.com/repos/sclorg/cakephp-ex/git/blobs/4591769163517c42649f37f14070f40333dba205", - "download_url": "https://raw.githubusercontent.com/sclorg/cakephp-ex/master/index.php", - "type": "file", - "_links": { - "self": "https://api.github.com/repos/sclorg/cakephp-ex/contents/index.php?ref=master", - "git": "https://api.github.com/repos/sclorg/cakephp-ex/git/blobs/4591769163517c42649f37f14070f40333dba205", - "html": "https://github.com/sclorg/cakephp-ex/blob/master/index.php" - } - }, - { - "name": "lib", - "path": "lib", - "sha": "d96cca523e313d360e97acc6a94a0199443b8daa", - "size": 0, - "url": "https://api.github.com/repos/sclorg/cakephp-ex/contents/lib?ref=master", - "html_url": "https://github.com/sclorg/cakephp-ex/tree/master/lib", - "git_url": "https://api.github.com/repos/sclorg/cakephp-ex/git/trees/d96cca523e313d360e97acc6a94a0199443b8daa", - "download_url": null, - "type": "dir", - "_links": { - "self": "https://api.github.com/repos/sclorg/cakephp-ex/contents/lib?ref=master", - "git": "https://api.github.com/repos/sclorg/cakephp-ex/git/trees/d96cca523e313d360e97acc6a94a0199443b8daa", - "html": "https://github.com/sclorg/cakephp-ex/tree/master/lib" - } - }, - { - "name": "logs", - "path": "logs", - "sha": "417c01c8795a35b8e835113a85a5c0c1c77f67fb", - "size": 0, - "url": "https://api.github.com/repos/sclorg/cakephp-ex/contents/logs?ref=master", - "html_url": "https://github.com/sclorg/cakephp-ex/tree/master/logs", - "git_url": "https://api.github.com/repos/sclorg/cakephp-ex/git/trees/417c01c8795a35b8e835113a85a5c0c1c77f67fb", - "download_url": null, - "type": "dir", - "_links": { - "self": "https://api.github.com/repos/sclorg/cakephp-ex/contents/logs?ref=master", - "git": "https://api.github.com/repos/sclorg/cakephp-ex/git/trees/417c01c8795a35b8e835113a85a5c0c1c77f67fb", - "html": "https://github.com/sclorg/cakephp-ex/tree/master/logs" - } - }, - { - "name": "migrate-database.sh", - "path": "migrate-database.sh", - "sha": "9f529adb85322d35a40612c6b0bf486c82c89f51", - "size": 48, - "url": "https://api.github.com/repos/sclorg/cakephp-ex/contents/migrate-database.sh?ref=master", - "html_url": "https://github.com/sclorg/cakephp-ex/blob/master/migrate-database.sh", - "git_url": "https://api.github.com/repos/sclorg/cakephp-ex/git/blobs/9f529adb85322d35a40612c6b0bf486c82c89f51", - "download_url": "https://raw.githubusercontent.com/sclorg/cakephp-ex/master/migrate-database.sh", - "type": "file", - "_links": { - "self": "https://api.github.com/repos/sclorg/cakephp-ex/contents/migrate-database.sh?ref=master", - "git": "https://api.github.com/repos/sclorg/cakephp-ex/git/blobs/9f529adb85322d35a40612c6b0bf486c82c89f51", - "html": "https://github.com/sclorg/cakephp-ex/blob/master/migrate-database.sh" - } - }, - { - "name": "openshift", - "path": "openshift", - "sha": "192dd1027a768fd8d58061e462ec6910ee8fa4aa", - "size": 0, - "url": "https://api.github.com/repos/sclorg/cakephp-ex/contents/openshift?ref=master", - "html_url": "https://github.com/sclorg/cakephp-ex/tree/master/openshift", - "git_url": "https://api.github.com/repos/sclorg/cakephp-ex/git/trees/192dd1027a768fd8d58061e462ec6910ee8fa4aa", - "download_url": null, - "type": "dir", - "_links": { - "self": "https://api.github.com/repos/sclorg/cakephp-ex/contents/openshift?ref=master", - "git": "https://api.github.com/repos/sclorg/cakephp-ex/git/trees/192dd1027a768fd8d58061e462ec6910ee8fa4aa", - "html": "https://github.com/sclorg/cakephp-ex/tree/master/openshift" - } - }, - { - "name": "phpunit.xml.dist", - "path": "phpunit.xml.dist", - "sha": "5da91cc2f2efb7ed86402213e5eee9c2366e9330", - "size": 1191, - "url": "https://api.github.com/repos/sclorg/cakephp-ex/contents/phpunit.xml.dist?ref=master", - "html_url": "https://github.com/sclorg/cakephp-ex/blob/master/phpunit.xml.dist", - "git_url": "https://api.github.com/repos/sclorg/cakephp-ex/git/blobs/5da91cc2f2efb7ed86402213e5eee9c2366e9330", - "download_url": "https://raw.githubusercontent.com/sclorg/cakephp-ex/master/phpunit.xml.dist", - "type": "file", - "_links": { - "self": "https://api.github.com/repos/sclorg/cakephp-ex/contents/phpunit.xml.dist?ref=master", - "git": "https://api.github.com/repos/sclorg/cakephp-ex/git/blobs/5da91cc2f2efb7ed86402213e5eee9c2366e9330", - "html": "https://github.com/sclorg/cakephp-ex/blob/master/phpunit.xml.dist" - } - }, - { - "name": "plugins", - "path": "plugins", - "sha": "417c01c8795a35b8e835113a85a5c0c1c77f67fb", - "size": 0, - "url": "https://api.github.com/repos/sclorg/cakephp-ex/contents/plugins?ref=master", - "html_url": "https://github.com/sclorg/cakephp-ex/tree/master/plugins", - "git_url": "https://api.github.com/repos/sclorg/cakephp-ex/git/trees/417c01c8795a35b8e835113a85a5c0c1c77f67fb", - "download_url": null, - "type": "dir", - "_links": { - "self": "https://api.github.com/repos/sclorg/cakephp-ex/contents/plugins?ref=master", - "git": "https://api.github.com/repos/sclorg/cakephp-ex/git/trees/417c01c8795a35b8e835113a85a5c0c1c77f67fb", - "html": "https://github.com/sclorg/cakephp-ex/tree/master/plugins" - } - }, - { - "name": "src", - "path": "src", - "sha": "0a1fda515edf67b8e657ca4f553f61ef3629a153", - "size": 0, - "url": "https://api.github.com/repos/sclorg/cakephp-ex/contents/src?ref=master", - "html_url": "https://github.com/sclorg/cakephp-ex/tree/master/src", - "git_url": "https://api.github.com/repos/sclorg/cakephp-ex/git/trees/0a1fda515edf67b8e657ca4f553f61ef3629a153", - "download_url": null, - "type": "dir", - "_links": { - "self": "https://api.github.com/repos/sclorg/cakephp-ex/contents/src?ref=master", - "git": "https://api.github.com/repos/sclorg/cakephp-ex/git/trees/0a1fda515edf67b8e657ca4f553f61ef3629a153", - "html": "https://github.com/sclorg/cakephp-ex/tree/master/src" - } - }, - { - "name": "tests", - "path": "tests", - "sha": "5c7b90e57d89af4d3048b24c6ac3dcb7d386dc66", - "size": 0, - "url": "https://api.github.com/repos/sclorg/cakephp-ex/contents/tests?ref=master", - "html_url": "https://github.com/sclorg/cakephp-ex/tree/master/tests", - "git_url": "https://api.github.com/repos/sclorg/cakephp-ex/git/trees/5c7b90e57d89af4d3048b24c6ac3dcb7d386dc66", - "download_url": null, - "type": "dir", - "_links": { - "self": "https://api.github.com/repos/sclorg/cakephp-ex/contents/tests?ref=master", - "git": "https://api.github.com/repos/sclorg/cakephp-ex/git/trees/5c7b90e57d89af4d3048b24c6ac3dcb7d386dc66", - "html": "https://github.com/sclorg/cakephp-ex/tree/master/tests" - } - }, - { - "name": "webroot", - "path": "webroot", - "sha": "9da5be8823a3011028652b70d3fec5ae8a9e707d", - "size": 0, - "url": "https://api.github.com/repos/sclorg/cakephp-ex/contents/webroot?ref=master", - "html_url": "https://github.com/sclorg/cakephp-ex/tree/master/webroot", - "git_url": "https://api.github.com/repos/sclorg/cakephp-ex/git/trees/9da5be8823a3011028652b70d3fec5ae8a9e707d", - "download_url": null, - "type": "dir", - "_links": { - "self": "https://api.github.com/repos/sclorg/cakephp-ex/contents/webroot?ref=master", - "git": "https://api.github.com/repos/sclorg/cakephp-ex/git/trees/9da5be8823a3011028652b70d3fec5ae8a9e707d", - "html": "https://github.com/sclorg/cakephp-ex/tree/master/webroot" - } - } - ] - \ No newline at end of file diff --git a/frontend/packages/dev-console/integration-tests/testData/git-import/cakephp-ex/repo.json b/frontend/packages/dev-console/integration-tests/testData/git-import/cakephp-ex/repo.json deleted file mode 100644 index 740bcf6d3b2..00000000000 --- a/frontend/packages/dev-console/integration-tests/testData/git-import/cakephp-ex/repo.json +++ /dev/null @@ -1,211 +0,0 @@ -[ - { - "name": "MANIFEST", - "path": "MANIFEST", - "sha": "0cca9b42a3c58a2f9b752ecdf55680517747f726", - "size": 432, - "url": "https://api.github.com/repos/sclorg/dancer-ex/contents/MANIFEST?ref=master", - "html_url": "https://github.com/sclorg/dancer-ex/blob/master/MANIFEST", - "git_url": "https://api.github.com/repos/sclorg/dancer-ex/git/blobs/0cca9b42a3c58a2f9b752ecdf55680517747f726", - "download_url": "https://raw.githubusercontent.com/sclorg/dancer-ex/master/MANIFEST", - "type": "file", - "_links": { - "self": "https://api.github.com/repos/sclorg/dancer-ex/contents/MANIFEST?ref=master", - "git": "https://api.github.com/repos/sclorg/dancer-ex/git/blobs/0cca9b42a3c58a2f9b752ecdf55680517747f726", - "html": "https://github.com/sclorg/dancer-ex/blob/master/MANIFEST" - } - }, - { - "name": "MANIFEST.SKIP", - "path": "MANIFEST.SKIP", - "sha": "6b57c49e31a71fb207c59c3fbe90671b492d8c9f", - "size": 167, - "url": "https://api.github.com/repos/sclorg/dancer-ex/contents/MANIFEST.SKIP?ref=master", - "html_url": "https://github.com/sclorg/dancer-ex/blob/master/MANIFEST.SKIP", - "git_url": "https://api.github.com/repos/sclorg/dancer-ex/git/blobs/6b57c49e31a71fb207c59c3fbe90671b492d8c9f", - "download_url": "https://raw.githubusercontent.com/sclorg/dancer-ex/master/MANIFEST.SKIP", - "type": "file", - "_links": { - "self": "https://api.github.com/repos/sclorg/dancer-ex/contents/MANIFEST.SKIP?ref=master", - "git": "https://api.github.com/repos/sclorg/dancer-ex/git/blobs/6b57c49e31a71fb207c59c3fbe90671b492d8c9f", - "html": "https://github.com/sclorg/dancer-ex/blob/master/MANIFEST.SKIP" - } - }, - { - "name": "README.md", - "path": "README.md", - "sha": "2a91959d8d9a4db7adb62dcecfc09ce3889c181b", - "size": 7634, - "url": "https://api.github.com/repos/sclorg/dancer-ex/contents/README.md?ref=master", - "html_url": "https://github.com/sclorg/dancer-ex/blob/master/README.md", - "git_url": "https://api.github.com/repos/sclorg/dancer-ex/git/blobs/2a91959d8d9a4db7adb62dcecfc09ce3889c181b", - "download_url": "https://raw.githubusercontent.com/sclorg/dancer-ex/master/README.md", - "type": "file", - "_links": { - "self": "https://api.github.com/repos/sclorg/dancer-ex/contents/README.md?ref=master", - "git": "https://api.github.com/repos/sclorg/dancer-ex/git/blobs/2a91959d8d9a4db7adb62dcecfc09ce3889c181b", - "html": "https://github.com/sclorg/dancer-ex/blob/master/README.md" - } - }, - { - "name": "app.psgi", - "path": "app.psgi", - "sha": "4730615008afb2278a9c4608f614e8634acc51a1", - "size": 175, - "url": "https://api.github.com/repos/sclorg/dancer-ex/contents/app.psgi?ref=master", - "html_url": "https://github.com/sclorg/dancer-ex/blob/master/app.psgi", - "git_url": "https://api.github.com/repos/sclorg/dancer-ex/git/blobs/4730615008afb2278a9c4608f614e8634acc51a1", - "download_url": "https://raw.githubusercontent.com/sclorg/dancer-ex/master/app.psgi", - "type": "file", - "_links": { - "self": "https://api.github.com/repos/sclorg/dancer-ex/contents/app.psgi?ref=master", - "git": "https://api.github.com/repos/sclorg/dancer-ex/git/blobs/4730615008afb2278a9c4608f614e8634acc51a1", - "html": "https://github.com/sclorg/dancer-ex/blob/master/app.psgi" - } - }, - { - "name": "config.yml", - "path": "config.yml", - "sha": "5331b52d8494a62523fdc994895e62b15fba6ea7", - "size": 1012, - "url": "https://api.github.com/repos/sclorg/dancer-ex/contents/config.yml?ref=master", - "html_url": "https://github.com/sclorg/dancer-ex/blob/master/config.yml", - "git_url": "https://api.github.com/repos/sclorg/dancer-ex/git/blobs/5331b52d8494a62523fdc994895e62b15fba6ea7", - "download_url": "https://raw.githubusercontent.com/sclorg/dancer-ex/master/config.yml", - "type": "file", - "_links": { - "self": "https://api.github.com/repos/sclorg/dancer-ex/contents/config.yml?ref=master", - "git": "https://api.github.com/repos/sclorg/dancer-ex/git/blobs/5331b52d8494a62523fdc994895e62b15fba6ea7", - "html": "https://github.com/sclorg/dancer-ex/blob/master/config.yml" - } - }, - { - "name": "cpanfile", - "path": "cpanfile", - "sha": "bf257cdb36dfc17a59cfa83fcecd89fdaecc39f4", - "size": 444, - "url": "https://api.github.com/repos/sclorg/dancer-ex/contents/cpanfile?ref=master", - "html_url": "https://github.com/sclorg/dancer-ex/blob/master/cpanfile", - "git_url": "https://api.github.com/repos/sclorg/dancer-ex/git/blobs/bf257cdb36dfc17a59cfa83fcecd89fdaecc39f4", - "download_url": "https://raw.githubusercontent.com/sclorg/dancer-ex/master/cpanfile", - "type": "file", - "_links": { - "self": "https://api.github.com/repos/sclorg/dancer-ex/contents/cpanfile?ref=master", - "git": "https://api.github.com/repos/sclorg/dancer-ex/git/blobs/bf257cdb36dfc17a59cfa83fcecd89fdaecc39f4", - "html": "https://github.com/sclorg/dancer-ex/blob/master/cpanfile" - } - }, - { - "name": "environments", - "path": "environments", - "sha": "fcffda5748bd0546bcb485501df8c9a856cebb45", - "size": 0, - "url": "https://api.github.com/repos/sclorg/dancer-ex/contents/environments?ref=master", - "html_url": "https://github.com/sclorg/dancer-ex/tree/master/environments", - "git_url": "https://api.github.com/repos/sclorg/dancer-ex/git/trees/fcffda5748bd0546bcb485501df8c9a856cebb45", - "download_url": null, - "type": "dir", - "_links": { - "self": "https://api.github.com/repos/sclorg/dancer-ex/contents/environments?ref=master", - "git": "https://api.github.com/repos/sclorg/dancer-ex/git/trees/fcffda5748bd0546bcb485501df8c9a856cebb45", - "html": "https://github.com/sclorg/dancer-ex/tree/master/environments" - } - }, - { - "name": "index.pl", - "path": "index.pl", - "sha": "d802e12b69b3b074b9a7408444f622700ba6a217", - "size": 395, - "url": "https://api.github.com/repos/sclorg/dancer-ex/contents/index.pl?ref=master", - "html_url": "https://github.com/sclorg/dancer-ex/blob/master/index.pl", - "git_url": "https://api.github.com/repos/sclorg/dancer-ex/git/blobs/d802e12b69b3b074b9a7408444f622700ba6a217", - "download_url": "https://raw.githubusercontent.com/sclorg/dancer-ex/master/index.pl", - "type": "file", - "_links": { - "self": "https://api.github.com/repos/sclorg/dancer-ex/contents/index.pl?ref=master", - "git": "https://api.github.com/repos/sclorg/dancer-ex/git/blobs/d802e12b69b3b074b9a7408444f622700ba6a217", - "html": "https://github.com/sclorg/dancer-ex/blob/master/index.pl" - } - }, - { - "name": "lib", - "path": "lib", - "sha": "481b6c347f213ca9395ea47a868e4dd39e74e4d3", - "size": 0, - "url": "https://api.github.com/repos/sclorg/dancer-ex/contents/lib?ref=master", - "html_url": "https://github.com/sclorg/dancer-ex/tree/master/lib", - "git_url": "https://api.github.com/repos/sclorg/dancer-ex/git/trees/481b6c347f213ca9395ea47a868e4dd39e74e4d3", - "download_url": null, - "type": "dir", - "_links": { - "self": "https://api.github.com/repos/sclorg/dancer-ex/contents/lib?ref=master", - "git": "https://api.github.com/repos/sclorg/dancer-ex/git/trees/481b6c347f213ca9395ea47a868e4dd39e74e4d3", - "html": "https://github.com/sclorg/dancer-ex/tree/master/lib" - } - }, - { - "name": "openshift", - "path": "openshift", - "sha": "dcfad33eb1705c62d89afaa2e3e0299e2d144ed0", - "size": 0, - "url": "https://api.github.com/repos/sclorg/dancer-ex/contents/openshift?ref=master", - "html_url": "https://github.com/sclorg/dancer-ex/tree/master/openshift", - "git_url": "https://api.github.com/repos/sclorg/dancer-ex/git/trees/dcfad33eb1705c62d89afaa2e3e0299e2d144ed0", - "download_url": null, - "type": "dir", - "_links": { - "self": "https://api.github.com/repos/sclorg/dancer-ex/contents/openshift?ref=master", - "git": "https://api.github.com/repos/sclorg/dancer-ex/git/trees/dcfad33eb1705c62d89afaa2e3e0299e2d144ed0", - "html": "https://github.com/sclorg/dancer-ex/tree/master/openshift" - } - }, - { - "name": "public", - "path": "public", - "sha": "94414b7061293afdff0b9a47ca3ff2aa3d2e0d06", - "size": 0, - "url": "https://api.github.com/repos/sclorg/dancer-ex/contents/public?ref=master", - "html_url": "https://github.com/sclorg/dancer-ex/tree/master/public", - "git_url": "https://api.github.com/repos/sclorg/dancer-ex/git/trees/94414b7061293afdff0b9a47ca3ff2aa3d2e0d06", - "download_url": null, - "type": "dir", - "_links": { - "self": "https://api.github.com/repos/sclorg/dancer-ex/contents/public?ref=master", - "git": "https://api.github.com/repos/sclorg/dancer-ex/git/trees/94414b7061293afdff0b9a47ca3ff2aa3d2e0d06", - "html": "https://github.com/sclorg/dancer-ex/tree/master/public" - } - }, - { - "name": "t", - "path": "t", - "sha": "fd9a2cfed452e1e0af3240fccfa8872696e5c3e6", - "size": 0, - "url": "https://api.github.com/repos/sclorg/dancer-ex/contents/t?ref=master", - "html_url": "https://github.com/sclorg/dancer-ex/tree/master/t", - "git_url": "https://api.github.com/repos/sclorg/dancer-ex/git/trees/fd9a2cfed452e1e0af3240fccfa8872696e5c3e6", - "download_url": null, - "type": "dir", - "_links": { - "self": "https://api.github.com/repos/sclorg/dancer-ex/contents/t?ref=master", - "git": "https://api.github.com/repos/sclorg/dancer-ex/git/trees/fd9a2cfed452e1e0af3240fccfa8872696e5c3e6", - "html": "https://github.com/sclorg/dancer-ex/tree/master/t" - } - }, - { - "name": "views", - "path": "views", - "sha": "1dfaa58cc280bd1cc331f797604de59074882764", - "size": 0, - "url": "https://api.github.com/repos/sclorg/dancer-ex/contents/views?ref=master", - "html_url": "https://github.com/sclorg/dancer-ex/tree/master/views", - "git_url": "https://api.github.com/repos/sclorg/dancer-ex/git/trees/1dfaa58cc280bd1cc331f797604de59074882764", - "download_url": null, - "type": "dir", - "_links": { - "self": "https://api.github.com/repos/sclorg/dancer-ex/contents/views?ref=master", - "git": "https://api.github.com/repos/sclorg/dancer-ex/git/trees/1dfaa58cc280bd1cc331f797604de59074882764", - "html": "https://github.com/sclorg/dancer-ex/tree/master/views" - } - } - ] - \ No newline at end of file diff --git a/frontend/packages/dev-console/integration-tests/testData/git-import/dancer-ex/contents.json b/frontend/packages/dev-console/integration-tests/testData/git-import/dancer-ex/contents.json deleted file mode 100644 index 740bcf6d3b2..00000000000 --- a/frontend/packages/dev-console/integration-tests/testData/git-import/dancer-ex/contents.json +++ /dev/null @@ -1,211 +0,0 @@ -[ - { - "name": "MANIFEST", - "path": "MANIFEST", - "sha": "0cca9b42a3c58a2f9b752ecdf55680517747f726", - "size": 432, - "url": "https://api.github.com/repos/sclorg/dancer-ex/contents/MANIFEST?ref=master", - "html_url": "https://github.com/sclorg/dancer-ex/blob/master/MANIFEST", - "git_url": "https://api.github.com/repos/sclorg/dancer-ex/git/blobs/0cca9b42a3c58a2f9b752ecdf55680517747f726", - "download_url": "https://raw.githubusercontent.com/sclorg/dancer-ex/master/MANIFEST", - "type": "file", - "_links": { - "self": "https://api.github.com/repos/sclorg/dancer-ex/contents/MANIFEST?ref=master", - "git": "https://api.github.com/repos/sclorg/dancer-ex/git/blobs/0cca9b42a3c58a2f9b752ecdf55680517747f726", - "html": "https://github.com/sclorg/dancer-ex/blob/master/MANIFEST" - } - }, - { - "name": "MANIFEST.SKIP", - "path": "MANIFEST.SKIP", - "sha": "6b57c49e31a71fb207c59c3fbe90671b492d8c9f", - "size": 167, - "url": "https://api.github.com/repos/sclorg/dancer-ex/contents/MANIFEST.SKIP?ref=master", - "html_url": "https://github.com/sclorg/dancer-ex/blob/master/MANIFEST.SKIP", - "git_url": "https://api.github.com/repos/sclorg/dancer-ex/git/blobs/6b57c49e31a71fb207c59c3fbe90671b492d8c9f", - "download_url": "https://raw.githubusercontent.com/sclorg/dancer-ex/master/MANIFEST.SKIP", - "type": "file", - "_links": { - "self": "https://api.github.com/repos/sclorg/dancer-ex/contents/MANIFEST.SKIP?ref=master", - "git": "https://api.github.com/repos/sclorg/dancer-ex/git/blobs/6b57c49e31a71fb207c59c3fbe90671b492d8c9f", - "html": "https://github.com/sclorg/dancer-ex/blob/master/MANIFEST.SKIP" - } - }, - { - "name": "README.md", - "path": "README.md", - "sha": "2a91959d8d9a4db7adb62dcecfc09ce3889c181b", - "size": 7634, - "url": "https://api.github.com/repos/sclorg/dancer-ex/contents/README.md?ref=master", - "html_url": "https://github.com/sclorg/dancer-ex/blob/master/README.md", - "git_url": "https://api.github.com/repos/sclorg/dancer-ex/git/blobs/2a91959d8d9a4db7adb62dcecfc09ce3889c181b", - "download_url": "https://raw.githubusercontent.com/sclorg/dancer-ex/master/README.md", - "type": "file", - "_links": { - "self": "https://api.github.com/repos/sclorg/dancer-ex/contents/README.md?ref=master", - "git": "https://api.github.com/repos/sclorg/dancer-ex/git/blobs/2a91959d8d9a4db7adb62dcecfc09ce3889c181b", - "html": "https://github.com/sclorg/dancer-ex/blob/master/README.md" - } - }, - { - "name": "app.psgi", - "path": "app.psgi", - "sha": "4730615008afb2278a9c4608f614e8634acc51a1", - "size": 175, - "url": "https://api.github.com/repos/sclorg/dancer-ex/contents/app.psgi?ref=master", - "html_url": "https://github.com/sclorg/dancer-ex/blob/master/app.psgi", - "git_url": "https://api.github.com/repos/sclorg/dancer-ex/git/blobs/4730615008afb2278a9c4608f614e8634acc51a1", - "download_url": "https://raw.githubusercontent.com/sclorg/dancer-ex/master/app.psgi", - "type": "file", - "_links": { - "self": "https://api.github.com/repos/sclorg/dancer-ex/contents/app.psgi?ref=master", - "git": "https://api.github.com/repos/sclorg/dancer-ex/git/blobs/4730615008afb2278a9c4608f614e8634acc51a1", - "html": "https://github.com/sclorg/dancer-ex/blob/master/app.psgi" - } - }, - { - "name": "config.yml", - "path": "config.yml", - "sha": "5331b52d8494a62523fdc994895e62b15fba6ea7", - "size": 1012, - "url": "https://api.github.com/repos/sclorg/dancer-ex/contents/config.yml?ref=master", - "html_url": "https://github.com/sclorg/dancer-ex/blob/master/config.yml", - "git_url": "https://api.github.com/repos/sclorg/dancer-ex/git/blobs/5331b52d8494a62523fdc994895e62b15fba6ea7", - "download_url": "https://raw.githubusercontent.com/sclorg/dancer-ex/master/config.yml", - "type": "file", - "_links": { - "self": "https://api.github.com/repos/sclorg/dancer-ex/contents/config.yml?ref=master", - "git": "https://api.github.com/repos/sclorg/dancer-ex/git/blobs/5331b52d8494a62523fdc994895e62b15fba6ea7", - "html": "https://github.com/sclorg/dancer-ex/blob/master/config.yml" - } - }, - { - "name": "cpanfile", - "path": "cpanfile", - "sha": "bf257cdb36dfc17a59cfa83fcecd89fdaecc39f4", - "size": 444, - "url": "https://api.github.com/repos/sclorg/dancer-ex/contents/cpanfile?ref=master", - "html_url": "https://github.com/sclorg/dancer-ex/blob/master/cpanfile", - "git_url": "https://api.github.com/repos/sclorg/dancer-ex/git/blobs/bf257cdb36dfc17a59cfa83fcecd89fdaecc39f4", - "download_url": "https://raw.githubusercontent.com/sclorg/dancer-ex/master/cpanfile", - "type": "file", - "_links": { - "self": "https://api.github.com/repos/sclorg/dancer-ex/contents/cpanfile?ref=master", - "git": "https://api.github.com/repos/sclorg/dancer-ex/git/blobs/bf257cdb36dfc17a59cfa83fcecd89fdaecc39f4", - "html": "https://github.com/sclorg/dancer-ex/blob/master/cpanfile" - } - }, - { - "name": "environments", - "path": "environments", - "sha": "fcffda5748bd0546bcb485501df8c9a856cebb45", - "size": 0, - "url": "https://api.github.com/repos/sclorg/dancer-ex/contents/environments?ref=master", - "html_url": "https://github.com/sclorg/dancer-ex/tree/master/environments", - "git_url": "https://api.github.com/repos/sclorg/dancer-ex/git/trees/fcffda5748bd0546bcb485501df8c9a856cebb45", - "download_url": null, - "type": "dir", - "_links": { - "self": "https://api.github.com/repos/sclorg/dancer-ex/contents/environments?ref=master", - "git": "https://api.github.com/repos/sclorg/dancer-ex/git/trees/fcffda5748bd0546bcb485501df8c9a856cebb45", - "html": "https://github.com/sclorg/dancer-ex/tree/master/environments" - } - }, - { - "name": "index.pl", - "path": "index.pl", - "sha": "d802e12b69b3b074b9a7408444f622700ba6a217", - "size": 395, - "url": "https://api.github.com/repos/sclorg/dancer-ex/contents/index.pl?ref=master", - "html_url": "https://github.com/sclorg/dancer-ex/blob/master/index.pl", - "git_url": "https://api.github.com/repos/sclorg/dancer-ex/git/blobs/d802e12b69b3b074b9a7408444f622700ba6a217", - "download_url": "https://raw.githubusercontent.com/sclorg/dancer-ex/master/index.pl", - "type": "file", - "_links": { - "self": "https://api.github.com/repos/sclorg/dancer-ex/contents/index.pl?ref=master", - "git": "https://api.github.com/repos/sclorg/dancer-ex/git/blobs/d802e12b69b3b074b9a7408444f622700ba6a217", - "html": "https://github.com/sclorg/dancer-ex/blob/master/index.pl" - } - }, - { - "name": "lib", - "path": "lib", - "sha": "481b6c347f213ca9395ea47a868e4dd39e74e4d3", - "size": 0, - "url": "https://api.github.com/repos/sclorg/dancer-ex/contents/lib?ref=master", - "html_url": "https://github.com/sclorg/dancer-ex/tree/master/lib", - "git_url": "https://api.github.com/repos/sclorg/dancer-ex/git/trees/481b6c347f213ca9395ea47a868e4dd39e74e4d3", - "download_url": null, - "type": "dir", - "_links": { - "self": "https://api.github.com/repos/sclorg/dancer-ex/contents/lib?ref=master", - "git": "https://api.github.com/repos/sclorg/dancer-ex/git/trees/481b6c347f213ca9395ea47a868e4dd39e74e4d3", - "html": "https://github.com/sclorg/dancer-ex/tree/master/lib" - } - }, - { - "name": "openshift", - "path": "openshift", - "sha": "dcfad33eb1705c62d89afaa2e3e0299e2d144ed0", - "size": 0, - "url": "https://api.github.com/repos/sclorg/dancer-ex/contents/openshift?ref=master", - "html_url": "https://github.com/sclorg/dancer-ex/tree/master/openshift", - "git_url": "https://api.github.com/repos/sclorg/dancer-ex/git/trees/dcfad33eb1705c62d89afaa2e3e0299e2d144ed0", - "download_url": null, - "type": "dir", - "_links": { - "self": "https://api.github.com/repos/sclorg/dancer-ex/contents/openshift?ref=master", - "git": "https://api.github.com/repos/sclorg/dancer-ex/git/trees/dcfad33eb1705c62d89afaa2e3e0299e2d144ed0", - "html": "https://github.com/sclorg/dancer-ex/tree/master/openshift" - } - }, - { - "name": "public", - "path": "public", - "sha": "94414b7061293afdff0b9a47ca3ff2aa3d2e0d06", - "size": 0, - "url": "https://api.github.com/repos/sclorg/dancer-ex/contents/public?ref=master", - "html_url": "https://github.com/sclorg/dancer-ex/tree/master/public", - "git_url": "https://api.github.com/repos/sclorg/dancer-ex/git/trees/94414b7061293afdff0b9a47ca3ff2aa3d2e0d06", - "download_url": null, - "type": "dir", - "_links": { - "self": "https://api.github.com/repos/sclorg/dancer-ex/contents/public?ref=master", - "git": "https://api.github.com/repos/sclorg/dancer-ex/git/trees/94414b7061293afdff0b9a47ca3ff2aa3d2e0d06", - "html": "https://github.com/sclorg/dancer-ex/tree/master/public" - } - }, - { - "name": "t", - "path": "t", - "sha": "fd9a2cfed452e1e0af3240fccfa8872696e5c3e6", - "size": 0, - "url": "https://api.github.com/repos/sclorg/dancer-ex/contents/t?ref=master", - "html_url": "https://github.com/sclorg/dancer-ex/tree/master/t", - "git_url": "https://api.github.com/repos/sclorg/dancer-ex/git/trees/fd9a2cfed452e1e0af3240fccfa8872696e5c3e6", - "download_url": null, - "type": "dir", - "_links": { - "self": "https://api.github.com/repos/sclorg/dancer-ex/contents/t?ref=master", - "git": "https://api.github.com/repos/sclorg/dancer-ex/git/trees/fd9a2cfed452e1e0af3240fccfa8872696e5c3e6", - "html": "https://github.com/sclorg/dancer-ex/tree/master/t" - } - }, - { - "name": "views", - "path": "views", - "sha": "1dfaa58cc280bd1cc331f797604de59074882764", - "size": 0, - "url": "https://api.github.com/repos/sclorg/dancer-ex/contents/views?ref=master", - "html_url": "https://github.com/sclorg/dancer-ex/tree/master/views", - "git_url": "https://api.github.com/repos/sclorg/dancer-ex/git/trees/1dfaa58cc280bd1cc331f797604de59074882764", - "download_url": null, - "type": "dir", - "_links": { - "self": "https://api.github.com/repos/sclorg/dancer-ex/contents/views?ref=master", - "git": "https://api.github.com/repos/sclorg/dancer-ex/git/trees/1dfaa58cc280bd1cc331f797604de59074882764", - "html": "https://github.com/sclorg/dancer-ex/tree/master/views" - } - } - ] - \ No newline at end of file diff --git a/frontend/packages/dev-console/integration-tests/testData/git-import/dancer-ex/repo.json b/frontend/packages/dev-console/integration-tests/testData/git-import/dancer-ex/repo.json deleted file mode 100644 index 9ea7d1231fc..00000000000 --- a/frontend/packages/dev-console/integration-tests/testData/git-import/dancer-ex/repo.json +++ /dev/null @@ -1,124 +0,0 @@ -{ - "id": 36253138, - "node_id": "MDEwOlJlcG9zaXRvcnkzNjI1MzEzOA==", - "name": "dancer-ex", - "full_name": "sclorg/dancer-ex", - "private": false, - "owner": { - "login": "sclorg", - "id": 9047960, - "node_id": "MDEyOk9yZ2FuaXphdGlvbjkwNDc5NjA=", - "avatar_url": "https://avatars.githubusercontent.com/u/9047960?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/sclorg", - "html_url": "https://github.com/sclorg", - "followers_url": "https://api.github.com/users/sclorg/followers", - "following_url": "https://api.github.com/users/sclorg/following{/other_user}", - "gists_url": "https://api.github.com/users/sclorg/gists{/gist_id}", - "starred_url": "https://api.github.com/users/sclorg/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/sclorg/subscriptions", - "organizations_url": "https://api.github.com/users/sclorg/orgs", - "repos_url": "https://api.github.com/users/sclorg/repos", - "events_url": "https://api.github.com/users/sclorg/events{/privacy}", - "received_events_url": "https://api.github.com/users/sclorg/received_events", - "type": "Organization", - "site_admin": false - }, - "html_url": "https://github.com/sclorg/dancer-ex", - "description": "Perl Dancer Example", - "fork": false, - "url": "https://api.github.com/repos/sclorg/dancer-ex", - "forks_url": "https://api.github.com/repos/sclorg/dancer-ex/forks", - "keys_url": "https://api.github.com/repos/sclorg/dancer-ex/keys{/key_id}", - "collaborators_url": "https://api.github.com/repos/sclorg/dancer-ex/collaborators{/collaborator}", - "teams_url": "https://api.github.com/repos/sclorg/dancer-ex/teams", - "hooks_url": "https://api.github.com/repos/sclorg/dancer-ex/hooks", - "issue_events_url": "https://api.github.com/repos/sclorg/dancer-ex/issues/events{/number}", - "events_url": "https://api.github.com/repos/sclorg/dancer-ex/events", - "assignees_url": "https://api.github.com/repos/sclorg/dancer-ex/assignees{/user}", - "branches_url": "https://api.github.com/repos/sclorg/dancer-ex/branches{/branch}", - "tags_url": "https://api.github.com/repos/sclorg/dancer-ex/tags", - "blobs_url": "https://api.github.com/repos/sclorg/dancer-ex/git/blobs{/sha}", - "git_tags_url": "https://api.github.com/repos/sclorg/dancer-ex/git/tags{/sha}", - "git_refs_url": "https://api.github.com/repos/sclorg/dancer-ex/git/refs{/sha}", - "trees_url": "https://api.github.com/repos/sclorg/dancer-ex/git/trees{/sha}", - "statuses_url": "https://api.github.com/repos/sclorg/dancer-ex/statuses/{sha}", - "languages_url": "https://api.github.com/repos/sclorg/dancer-ex/languages", - "stargazers_url": "https://api.github.com/repos/sclorg/dancer-ex/stargazers", - "contributors_url": "https://api.github.com/repos/sclorg/dancer-ex/contributors", - "subscribers_url": "https://api.github.com/repos/sclorg/dancer-ex/subscribers", - "subscription_url": "https://api.github.com/repos/sclorg/dancer-ex/subscription", - "commits_url": "https://api.github.com/repos/sclorg/dancer-ex/commits{/sha}", - "git_commits_url": "https://api.github.com/repos/sclorg/dancer-ex/git/commits{/sha}", - "comments_url": "https://api.github.com/repos/sclorg/dancer-ex/comments{/number}", - "issue_comment_url": "https://api.github.com/repos/sclorg/dancer-ex/issues/comments{/number}", - "contents_url": "https://api.github.com/repos/sclorg/dancer-ex/contents/{+path}", - "compare_url": "https://api.github.com/repos/sclorg/dancer-ex/compare/{base}...{head}", - "merges_url": "https://api.github.com/repos/sclorg/dancer-ex/merges", - "archive_url": "https://api.github.com/repos/sclorg/dancer-ex/{archive_format}{/ref}", - "downloads_url": "https://api.github.com/repos/sclorg/dancer-ex/downloads", - "issues_url": "https://api.github.com/repos/sclorg/dancer-ex/issues{/number}", - "pulls_url": "https://api.github.com/repos/sclorg/dancer-ex/pulls{/number}", - "milestones_url": "https://api.github.com/repos/sclorg/dancer-ex/milestones{/number}", - "notifications_url": "https://api.github.com/repos/sclorg/dancer-ex/notifications{?since,all,participating}", - "labels_url": "https://api.github.com/repos/sclorg/dancer-ex/labels{/name}", - "releases_url": "https://api.github.com/repos/sclorg/dancer-ex/releases{/id}", - "deployments_url": "https://api.github.com/repos/sclorg/dancer-ex/deployments", - "created_at": "2015-05-25T20:32:52Z", - "updated_at": "2021-09-07T07:43:01Z", - "pushed_at": "2021-11-22T23:31:04Z", - "git_url": "git://github.com/sclorg/dancer-ex.git", - "ssh_url": "git@github.com:sclorg/dancer-ex.git", - "clone_url": "https://github.com/sclorg/dancer-ex.git", - "svn_url": "https://github.com/sclorg/dancer-ex", - "homepage": null, - "size": 198, - "stargazers_count": 21, - "watchers_count": 21, - "language": "Perl", - "has_issues": true, - "has_projects": true, - "has_downloads": true, - "has_wiki": false, - "has_pages": false, - "forks_count": 151, - "mirror_url": null, - "archived": false, - "disabled": false, - "open_issues_count": 2, - "license": null, - "allow_forking": true, - "is_template": false, - "topics": [ - - ], - "visibility": "public", - "forks": 151, - "open_issues": 2, - "watchers": 21, - "default_branch": "master", - "temp_clone_token": null, - "organization": { - "login": "sclorg", - "id": 9047960, - "node_id": "MDEyOk9yZ2FuaXphdGlvbjkwNDc5NjA=", - "avatar_url": "https://avatars.githubusercontent.com/u/9047960?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/sclorg", - "html_url": "https://github.com/sclorg", - "followers_url": "https://api.github.com/users/sclorg/followers", - "following_url": "https://api.github.com/users/sclorg/following{/other_user}", - "gists_url": "https://api.github.com/users/sclorg/gists{/gist_id}", - "starred_url": "https://api.github.com/users/sclorg/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/sclorg/subscriptions", - "organizations_url": "https://api.github.com/users/sclorg/orgs", - "repos_url": "https://api.github.com/users/sclorg/repos", - "events_url": "https://api.github.com/users/sclorg/events{/privacy}", - "received_events_url": "https://api.github.com/users/sclorg/received_events", - "type": "Organization", - "site_admin": false - }, - "network_count": 151, - "subscribers_count": 68 - } - \ No newline at end of file diff --git a/frontend/packages/dev-console/integration-tests/testData/git-import/devfile-sample/contents.json b/frontend/packages/dev-console/integration-tests/testData/git-import/devfile-sample/contents.json deleted file mode 100644 index e7e115597e8..00000000000 --- a/frontend/packages/dev-console/integration-tests/testData/git-import/devfile-sample/contents.json +++ /dev/null @@ -1,162 +0,0 @@ -[ - { - "name": ".gitignore", - "path": ".gitignore", - "sha": "67045665db202cf951f839a5f3e73efdcfd45021", - "size": 1610, - "url": "https://api.github.com/repos/nodeshift-starters/devfile-sample/contents/.gitignore?ref=main", - "html_url": "https://github.com/nodeshift-starters/devfile-sample/blob/main/.gitignore", - "git_url": "https://api.github.com/repos/nodeshift-starters/devfile-sample/git/blobs/67045665db202cf951f839a5f3e73efdcfd45021", - "download_url": "https://raw.githubusercontent.com/nodeshift-starters/devfile-sample/main/.gitignore", - "type": "file", - "_links": { - "self": "https://api.github.com/repos/nodeshift-starters/devfile-sample/contents/.gitignore?ref=main", - "git": "https://api.github.com/repos/nodeshift-starters/devfile-sample/git/blobs/67045665db202cf951f839a5f3e73efdcfd45021", - "html": "https://github.com/nodeshift-starters/devfile-sample/blob/main/.gitignore" - } - }, - { - "name": "Dockerfile", - "path": "Dockerfile", - "sha": "ba8d5004862f90107fcf94f4ee23e537f86c6670", - "size": 542, - "url": "https://api.github.com/repos/nodeshift-starters/devfile-sample/contents/Dockerfile?ref=main", - "html_url": "https://github.com/nodeshift-starters/devfile-sample/blob/main/Dockerfile", - "git_url": "https://api.github.com/repos/nodeshift-starters/devfile-sample/git/blobs/ba8d5004862f90107fcf94f4ee23e537f86c6670", - "download_url": "https://raw.githubusercontent.com/nodeshift-starters/devfile-sample/main/Dockerfile", - "type": "file", - "_links": { - "self": "https://api.github.com/repos/nodeshift-starters/devfile-sample/contents/Dockerfile?ref=main", - "git": "https://api.github.com/repos/nodeshift-starters/devfile-sample/git/blobs/ba8d5004862f90107fcf94f4ee23e537f86c6670", - "html": "https://github.com/nodeshift-starters/devfile-sample/blob/main/Dockerfile" - } - }, - { - "name": "LICENSE", - "path": "LICENSE", - "sha": "e48e0963459bf4c4e175956b657a8f4a91967880", - "size": 14197, - "url": "https://api.github.com/repos/nodeshift-starters/devfile-sample/contents/LICENSE?ref=main", - "html_url": "https://github.com/nodeshift-starters/devfile-sample/blob/main/LICENSE", - "git_url": "https://api.github.com/repos/nodeshift-starters/devfile-sample/git/blobs/e48e0963459bf4c4e175956b657a8f4a91967880", - "download_url": "https://raw.githubusercontent.com/nodeshift-starters/devfile-sample/main/LICENSE", - "type": "file", - "_links": { - "self": "https://api.github.com/repos/nodeshift-starters/devfile-sample/contents/LICENSE?ref=main", - "git": "https://api.github.com/repos/nodeshift-starters/devfile-sample/git/blobs/e48e0963459bf4c4e175956b657a8f4a91967880", - "html": "https://github.com/nodeshift-starters/devfile-sample/blob/main/LICENSE" - } - }, - { - "name": "README.md", - "path": "README.md", - "sha": "6422a09fbc26ed4385babd4af54e3534fde53c4a", - "size": 1189, - "url": "https://api.github.com/repos/nodeshift-starters/devfile-sample/contents/README.md?ref=main", - "html_url": "https://github.com/nodeshift-starters/devfile-sample/blob/main/README.md", - "git_url": "https://api.github.com/repos/nodeshift-starters/devfile-sample/git/blobs/6422a09fbc26ed4385babd4af54e3534fde53c4a", - "download_url": "https://raw.githubusercontent.com/nodeshift-starters/devfile-sample/main/README.md", - "type": "file", - "_links": { - "self": "https://api.github.com/repos/nodeshift-starters/devfile-sample/contents/README.md?ref=main", - "git": "https://api.github.com/repos/nodeshift-starters/devfile-sample/git/blobs/6422a09fbc26ed4385babd4af54e3534fde53c4a", - "html": "https://github.com/nodeshift-starters/devfile-sample/blob/main/README.md" - } - }, - { - "name": "devfile.yaml", - "path": "devfile.yaml", - "sha": "33a99125923b53c7197ffd3ac4f94d1777686a87", - "size": 1800, - "url": "https://api.github.com/repos/nodeshift-starters/devfile-sample/contents/devfile.yaml?ref=main", - "html_url": "https://github.com/nodeshift-starters/devfile-sample/blob/main/devfile.yaml", - "git_url": "https://api.github.com/repos/nodeshift-starters/devfile-sample/git/blobs/33a99125923b53c7197ffd3ac4f94d1777686a87", - "download_url": "https://raw.githubusercontent.com/nodeshift-starters/devfile-sample/main/devfile.yaml", - "type": "file", - "_links": { - "self": "https://api.github.com/repos/nodeshift-starters/devfile-sample/contents/devfile.yaml?ref=main", - "git": "https://api.github.com/repos/nodeshift-starters/devfile-sample/git/blobs/33a99125923b53c7197ffd3ac4f94d1777686a87", - "html": "https://github.com/nodeshift-starters/devfile-sample/blob/main/devfile.yaml" - } - }, - { - "name": "outerloop-deploy.yaml", - "path": "outerloop-deploy.yaml", - "sha": "c3b22314a950180fc619de4babe2533ad5987fa2", - "size": 493, - "url": "https://api.github.com/repos/nodeshift-starters/devfile-sample/contents/outerloop-deploy.yaml?ref=main", - "html_url": "https://github.com/nodeshift-starters/devfile-sample/blob/main/outerloop-deploy.yaml", - "git_url": "https://api.github.com/repos/nodeshift-starters/devfile-sample/git/blobs/c3b22314a950180fc619de4babe2533ad5987fa2", - "download_url": "https://raw.githubusercontent.com/nodeshift-starters/devfile-sample/main/outerloop-deploy.yaml", - "type": "file", - "_links": { - "self": "https://api.github.com/repos/nodeshift-starters/devfile-sample/contents/outerloop-deploy.yaml?ref=main", - "git": "https://api.github.com/repos/nodeshift-starters/devfile-sample/git/blobs/c3b22314a950180fc619de4babe2533ad5987fa2", - "html": "https://github.com/nodeshift-starters/devfile-sample/blob/main/outerloop-deploy.yaml" - } - }, - { - "name": "package-lock.json", - "path": "package-lock.json", - "sha": "4ea04351482cc74fc5fad9517d814693604e2a6a", - "size": 18290, - "url": "https://api.github.com/repos/nodeshift-starters/devfile-sample/contents/package-lock.json?ref=main", - "html_url": "https://github.com/nodeshift-starters/devfile-sample/blob/main/package-lock.json", - "git_url": "https://api.github.com/repos/nodeshift-starters/devfile-sample/git/blobs/4ea04351482cc74fc5fad9517d814693604e2a6a", - "download_url": "https://raw.githubusercontent.com/nodeshift-starters/devfile-sample/main/package-lock.json", - "type": "file", - "_links": { - "self": "https://api.github.com/repos/nodeshift-starters/devfile-sample/contents/package-lock.json?ref=main", - "git": "https://api.github.com/repos/nodeshift-starters/devfile-sample/git/blobs/4ea04351482cc74fc5fad9517d814693604e2a6a", - "html": "https://github.com/nodeshift-starters/devfile-sample/blob/main/package-lock.json" - } - }, - { - "name": "package.json", - "path": "package.json", - "sha": "73003980284f47ce6ce7fc44098ac5e4c26800ad", - "size": 391, - "url": "https://api.github.com/repos/nodeshift-starters/devfile-sample/contents/package.json?ref=main", - "html_url": "https://github.com/nodeshift-starters/devfile-sample/blob/main/package.json", - "git_url": "https://api.github.com/repos/nodeshift-starters/devfile-sample/git/blobs/73003980284f47ce6ce7fc44098ac5e4c26800ad", - "download_url": "https://raw.githubusercontent.com/nodeshift-starters/devfile-sample/main/package.json", - "type": "file", - "_links": { - "self": "https://api.github.com/repos/nodeshift-starters/devfile-sample/contents/package.json?ref=main", - "git": "https://api.github.com/repos/nodeshift-starters/devfile-sample/git/blobs/73003980284f47ce6ce7fc44098ac5e4c26800ad", - "html": "https://github.com/nodeshift-starters/devfile-sample/blob/main/package.json" - } - }, - { - "name": "server.js", - "path": "server.js", - "sha": "d096b1fe8f53be963b73626a90bb2903d11d25c0", - "size": 1897, - "url": "https://api.github.com/repos/nodeshift-starters/devfile-sample/contents/server.js?ref=main", - "html_url": "https://github.com/nodeshift-starters/devfile-sample/blob/main/server.js", - "git_url": "https://api.github.com/repos/nodeshift-starters/devfile-sample/git/blobs/d096b1fe8f53be963b73626a90bb2903d11d25c0", - "download_url": "https://raw.githubusercontent.com/nodeshift-starters/devfile-sample/main/server.js", - "type": "file", - "_links": { - "self": "https://api.github.com/repos/nodeshift-starters/devfile-sample/contents/server.js?ref=main", - "git": "https://api.github.com/repos/nodeshift-starters/devfile-sample/git/blobs/d096b1fe8f53be963b73626a90bb2903d11d25c0", - "html": "https://github.com/nodeshift-starters/devfile-sample/blob/main/server.js" - } - }, - { - "name": "test", - "path": "test", - "sha": "0e7811b8220b549baa90542ad731e53bbaac48f1", - "size": 0, - "url": "https://api.github.com/repos/nodeshift-starters/devfile-sample/contents/test?ref=main", - "html_url": "https://github.com/nodeshift-starters/devfile-sample/tree/main/test", - "git_url": "https://api.github.com/repos/nodeshift-starters/devfile-sample/git/trees/0e7811b8220b549baa90542ad731e53bbaac48f1", - "download_url": null, - "type": "dir", - "_links": { - "self": "https://api.github.com/repos/nodeshift-starters/devfile-sample/contents/test?ref=main", - "git": "https://api.github.com/repos/nodeshift-starters/devfile-sample/git/trees/0e7811b8220b549baa90542ad731e53bbaac48f1", - "html": "https://github.com/nodeshift-starters/devfile-sample/tree/main/test" - } - } -] diff --git a/frontend/packages/dev-console/integration-tests/testData/git-import/devfile-sample/devFileResources.json b/frontend/packages/dev-console/integration-tests/testData/git-import/devfile-sample/devFileResources.json deleted file mode 100644 index cc5787d13c7..00000000000 --- a/frontend/packages/dev-console/integration-tests/testData/git-import/devfile-sample/devFileResources.json +++ /dev/null @@ -1,138 +0,0 @@ -{ - "imageStream": { - "kind": "ImageStream", - "apiVersion": "image.openshift.io/v1", - "metadata": {}, - "spec": { - "lookupPolicy": { - "local": false - } - }, - "status": { - "dockerImageRepository": "" - } - }, - "buildResource": { - "kind": "BuildConfig", - "apiVersion": "build.openshift.io/v1", - "metadata": {}, - "spec": { - "source": { - "type": "Git", - "git": { - "uri": "https://github.com/nodeshift-starters/devfile-sample" - }, - "contextDir": "." - }, - "strategy": { - "type": "Docker", - "dockerStrategy": { - "dockerfilePath": "Dockerfile" - } - }, - "output": { - "to": { - "kind": "ImageStreamTag", - "name": "devfile-sample:latest:latest" - } - }, - "resources": {}, - "postCommit": {}, - "nodeSelector": null - }, - "status": { - "lastVersion": 0 - } - }, - "deployResource": { - "kind": "Deployment", - "apiVersion": "apps/v1", - "metadata": {}, - "spec": { - "selector": { - "matchLabels": { - "app": "devfile-sample" - } - }, - "template": { - "metadata": { - "creationTimestamp": null - }, - "spec": { - "containers": [ - { - "name": "runtime", - "image": "registry.access.redhat.com/ubi8/nodejs-16:latest", - "ports": [ - { - "name": "3000-tcp", - "containerPort": 3000, - "protocol": "TCP" - } - ], - "env": [ - { - "name": "PROJECTS_ROOT", - "value": "/projects" - }, - { - "name": "PROJECT_SOURCE", - "value": "/projects" - } - ], - "resources": { - "limits": { - "memory": "1Gi" - } - }, - "imagePullPolicy": "Always" - } - ] - } - }, - "strategy": { - "type": "Recreate" - } - }, - "status": {} - }, - "service": { - "kind": "Service", - "apiVersion": "v1", - "metadata": {}, - "spec": { - "ports": [ - { - "name": "port-3000", - "port": 3000, - "targetPort": 3000 - }, - { - "name": "http-3001", - "port": 3001, - "targetPort": "3001" - } - ] - }, - "status": { - "loadBalancer": {} - } - }, - "route": { - "kind": "Route", - "apiVersion": "route.openshift.io/v1", - "metadata": {}, - "spec": { - "path": "/", - "to": { - "kind": "Service", - "name": "devfile-sample", - "weight": null - }, - "port": { - "targetPort": "3001" - } - }, - "status": {} - } -} diff --git a/frontend/packages/dev-console/integration-tests/testData/git-import/devfile-sample/package.json b/frontend/packages/dev-console/integration-tests/testData/git-import/devfile-sample/package.json deleted file mode 100644 index 3406b6df159..00000000000 --- a/frontend/packages/dev-console/integration-tests/testData/git-import/devfile-sample/package.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "name": "package.json", - "path": "package.json", - "sha": "73003980284f47ce6ce7fc44098ac5e4c26800ad", - "size": 391, - "url": "https://api.github.com/repos/nodeshift-starters/devfile-sample/contents/package.json?ref=main", - "html_url": "https://github.com/nodeshift-starters/devfile-sample/blob/main/package.json", - "git_url": "https://api.github.com/repos/nodeshift-starters/devfile-sample/git/blobs/73003980284f47ce6ce7fc44098ac5e4c26800ad", - "download_url": "https://raw.githubusercontent.com/nodeshift-starters/devfile-sample/main/package.json", - "type": "file", - "content": "ewogICJuYW1lIjogIm5vZGVqcy1zdGFydGVyIiwKICAidmVyc2lvbiI6ICIx\nLjAuMCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBOb2RlLmpzIGFwcGxp\nY2F0aW9uIiwKICAibGljZW5zZSI6ICJFUEwtMi4wIiwKICAic2NyaXB0cyI6\nIHsKICAgICJzdGFydCI6ICJub2RlIHNlcnZlci5qcyIsCiAgICAiZGVidWci\nOiAibm9kZSAtLWluc3BlY3Q9JHtERUJVR19QT1JUfSBzZXJ2ZXIuanMiLAog\nICAgInRlc3QiOiAibm9kZSB0ZXN0L3Rlc3QuanMiCiAgfSwKICAiZGVwZW5k\nZW5jaWVzIjogewogICAgImV4cHJlc3MiOiAiXjQuMTcuMSIsCiAgICAicGlu\nbyI6ICJeNi4yLjEiLAogICAgInBpbm8taHR0cCI6ICJeNS4xLjAiLAogICAg\nInByb20tY2xpZW50IjogIl4xMi4wLjAiCiAgfQp9Cg==\n", - "encoding": "base64", - "_links": { - "self": "https://api.github.com/repos/nodeshift-starters/devfile-sample/contents/package.json?ref=main", - "git": "https://api.github.com/repos/nodeshift-starters/devfile-sample/git/blobs/73003980284f47ce6ce7fc44098ac5e4c26800ad", - "html": "https://github.com/nodeshift-starters/devfile-sample/blob/main/package.json" - } -} diff --git a/frontend/packages/dev-console/integration-tests/testData/git-import/devfile-sample/repo.json b/frontend/packages/dev-console/integration-tests/testData/git-import/devfile-sample/repo.json deleted file mode 100644 index 945cccae025..00000000000 --- a/frontend/packages/dev-console/integration-tests/testData/git-import/devfile-sample/repo.json +++ /dev/null @@ -1,129 +0,0 @@ -{ - "id": 374705286, - "node_id": "MDEwOlJlcG9zaXRvcnkzNzQ3MDUyODY=", - "name": "devfile-sample", - "full_name": "nodeshift-starters/devfile-sample", - "private": false, - "owner": { - "login": "nodeshift-starters", - "id": 44318500, - "node_id": "MDEyOk9yZ2FuaXphdGlvbjQ0MzE4NTAw", - "avatar_url": "https://avatars.githubusercontent.com/u/44318500?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/nodeshift-starters", - "html_url": "https://github.com/nodeshift-starters", - "followers_url": "https://api.github.com/users/nodeshift-starters/followers", - "following_url": "https://api.github.com/users/nodeshift-starters/following{/other_user}", - "gists_url": "https://api.github.com/users/nodeshift-starters/gists{/gist_id}", - "starred_url": "https://api.github.com/users/nodeshift-starters/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/nodeshift-starters/subscriptions", - "organizations_url": "https://api.github.com/users/nodeshift-starters/orgs", - "repos_url": "https://api.github.com/users/nodeshift-starters/repos", - "events_url": "https://api.github.com/users/nodeshift-starters/events{/privacy}", - "received_events_url": "https://api.github.com/users/nodeshift-starters/received_events", - "type": "Organization", - "site_admin": false - }, - "html_url": "https://github.com/nodeshift-starters/devfile-sample", - "description": null, - "fork": false, - "url": "https://api.github.com/repos/nodeshift-starters/devfile-sample", - "forks_url": "https://api.github.com/repos/nodeshift-starters/devfile-sample/forks", - "keys_url": "https://api.github.com/repos/nodeshift-starters/devfile-sample/keys{/key_id}", - "collaborators_url": "https://api.github.com/repos/nodeshift-starters/devfile-sample/collaborators{/collaborator}", - "teams_url": "https://api.github.com/repos/nodeshift-starters/devfile-sample/teams", - "hooks_url": "https://api.github.com/repos/nodeshift-starters/devfile-sample/hooks", - "issue_events_url": "https://api.github.com/repos/nodeshift-starters/devfile-sample/issues/events{/number}", - "events_url": "https://api.github.com/repos/nodeshift-starters/devfile-sample/events", - "assignees_url": "https://api.github.com/repos/nodeshift-starters/devfile-sample/assignees{/user}", - "branches_url": "https://api.github.com/repos/nodeshift-starters/devfile-sample/branches{/branch}", - "tags_url": "https://api.github.com/repos/nodeshift-starters/devfile-sample/tags", - "blobs_url": "https://api.github.com/repos/nodeshift-starters/devfile-sample/git/blobs{/sha}", - "git_tags_url": "https://api.github.com/repos/nodeshift-starters/devfile-sample/git/tags{/sha}", - "git_refs_url": "https://api.github.com/repos/nodeshift-starters/devfile-sample/git/refs{/sha}", - "trees_url": "https://api.github.com/repos/nodeshift-starters/devfile-sample/git/trees{/sha}", - "statuses_url": "https://api.github.com/repos/nodeshift-starters/devfile-sample/statuses/{sha}", - "languages_url": "https://api.github.com/repos/nodeshift-starters/devfile-sample/languages", - "stargazers_url": "https://api.github.com/repos/nodeshift-starters/devfile-sample/stargazers", - "contributors_url": "https://api.github.com/repos/nodeshift-starters/devfile-sample/contributors", - "subscribers_url": "https://api.github.com/repos/nodeshift-starters/devfile-sample/subscribers", - "subscription_url": "https://api.github.com/repos/nodeshift-starters/devfile-sample/subscription", - "commits_url": "https://api.github.com/repos/nodeshift-starters/devfile-sample/commits{/sha}", - "git_commits_url": "https://api.github.com/repos/nodeshift-starters/devfile-sample/git/commits{/sha}", - "comments_url": "https://api.github.com/repos/nodeshift-starters/devfile-sample/comments{/number}", - "issue_comment_url": "https://api.github.com/repos/nodeshift-starters/devfile-sample/issues/comments{/number}", - "contents_url": "https://api.github.com/repos/nodeshift-starters/devfile-sample/contents/{+path}", - "compare_url": "https://api.github.com/repos/nodeshift-starters/devfile-sample/compare/{base}...{head}", - "merges_url": "https://api.github.com/repos/nodeshift-starters/devfile-sample/merges", - "archive_url": "https://api.github.com/repos/nodeshift-starters/devfile-sample/{archive_format}{/ref}", - "downloads_url": "https://api.github.com/repos/nodeshift-starters/devfile-sample/downloads", - "issues_url": "https://api.github.com/repos/nodeshift-starters/devfile-sample/issues{/number}", - "pulls_url": "https://api.github.com/repos/nodeshift-starters/devfile-sample/pulls{/number}", - "milestones_url": "https://api.github.com/repos/nodeshift-starters/devfile-sample/milestones{/number}", - "notifications_url": "https://api.github.com/repos/nodeshift-starters/devfile-sample/notifications{?since,all,participating}", - "labels_url": "https://api.github.com/repos/nodeshift-starters/devfile-sample/labels{/name}", - "releases_url": "https://api.github.com/repos/nodeshift-starters/devfile-sample/releases{/id}", - "deployments_url": "https://api.github.com/repos/nodeshift-starters/devfile-sample/deployments", - "created_at": "2021-06-07T14:59:08Z", - "updated_at": "2021-11-10T17:22:51Z", - "pushed_at": "2021-11-10T17:22:48Z", - "git_url": "git://github.com/nodeshift-starters/devfile-sample.git", - "ssh_url": "git@github.com:nodeshift-starters/devfile-sample.git", - "clone_url": "https://github.com/nodeshift-starters/devfile-sample.git", - "svn_url": "https://github.com/nodeshift-starters/devfile-sample", - "homepage": null, - "size": 21, - "stargazers_count": 0, - "watchers_count": 0, - "language": "JavaScript", - "has_issues": true, - "has_projects": true, - "has_downloads": true, - "has_wiki": true, - "has_pages": false, - "forks_count": 5, - "mirror_url": null, - "archived": false, - "disabled": false, - "open_issues_count": 0, - "license": { - "key": "epl-2.0", - "name": "Eclipse Public License 2.0", - "spdx_id": "EPL-2.0", - "url": "https://api.github.com/licenses/epl-2.0", - "node_id": "MDc6TGljZW5zZTMy" - }, - "allow_forking": true, - "is_template": false, - "topics": [ - - ], - "visibility": "public", - "forks": 5, - "open_issues": 0, - "watchers": 0, - "default_branch": "main", - "temp_clone_token": null, - "organization": { - "login": "nodeshift-starters", - "id": 44318500, - "node_id": "MDEyOk9yZ2FuaXphdGlvbjQ0MzE4NTAw", - "avatar_url": "https://avatars.githubusercontent.com/u/44318500?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/nodeshift-starters", - "html_url": "https://github.com/nodeshift-starters", - "followers_url": "https://api.github.com/users/nodeshift-starters/followers", - "following_url": "https://api.github.com/users/nodeshift-starters/following{/other_user}", - "gists_url": "https://api.github.com/users/nodeshift-starters/gists{/gist_id}", - "starred_url": "https://api.github.com/users/nodeshift-starters/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/nodeshift-starters/subscriptions", - "organizations_url": "https://api.github.com/users/nodeshift-starters/orgs", - "repos_url": "https://api.github.com/users/nodeshift-starters/repos", - "events_url": "https://api.github.com/users/nodeshift-starters/events{/privacy}", - "received_events_url": "https://api.github.com/users/nodeshift-starters/received_events", - "type": "Organization", - "site_admin": false - }, - "network_count": 5, - "subscribers_count": 2 -} diff --git a/frontend/packages/dev-console/integration-tests/testData/git-import/django-ex/contents.json b/frontend/packages/dev-console/integration-tests/testData/git-import/django-ex/contents.json deleted file mode 100644 index a95f1f6f727..00000000000 --- a/frontend/packages/dev-console/integration-tests/testData/git-import/django-ex/contents.json +++ /dev/null @@ -1,147 +0,0 @@ -[ - { - "name": ".gitignore", - "path": ".gitignore", - "sha": "651f49f76efb038c8536002ab588b2425cb6cfef", - "size": 736, - "url": "https://api.github.com/repos/sclorg/django-ex/contents/.gitignore?ref=master", - "html_url": "https://github.com/sclorg/django-ex/blob/master/.gitignore", - "git_url": "https://api.github.com/repos/sclorg/django-ex/git/blobs/651f49f76efb038c8536002ab588b2425cb6cfef", - "download_url": "https://raw.githubusercontent.com/sclorg/django-ex/master/.gitignore", - "type": "file", - "_links": { - "self": "https://api.github.com/repos/sclorg/django-ex/contents/.gitignore?ref=master", - "git": "https://api.github.com/repos/sclorg/django-ex/git/blobs/651f49f76efb038c8536002ab588b2425cb6cfef", - "html": "https://github.com/sclorg/django-ex/blob/master/.gitignore" - } - }, - { - "name": "README.md", - "path": "README.md", - "sha": "198fa3945a285022247e317d23ff9185a83dd753", - "size": 10979, - "url": "https://api.github.com/repos/sclorg/django-ex/contents/README.md?ref=master", - "html_url": "https://github.com/sclorg/django-ex/blob/master/README.md", - "git_url": "https://api.github.com/repos/sclorg/django-ex/git/blobs/198fa3945a285022247e317d23ff9185a83dd753", - "download_url": "https://raw.githubusercontent.com/sclorg/django-ex/master/README.md", - "type": "file", - "_links": { - "self": "https://api.github.com/repos/sclorg/django-ex/contents/README.md?ref=master", - "git": "https://api.github.com/repos/sclorg/django-ex/git/blobs/198fa3945a285022247e317d23ff9185a83dd753", - "html": "https://github.com/sclorg/django-ex/blob/master/README.md" - } - }, - { - "name": "conf", - "path": "conf", - "sha": "b5a1e2ee0bbe8b0a21d6cb3291ef56fb10125c48", - "size": 0, - "url": "https://api.github.com/repos/sclorg/django-ex/contents/conf?ref=master", - "html_url": "https://github.com/sclorg/django-ex/tree/master/conf", - "git_url": "https://api.github.com/repos/sclorg/django-ex/git/trees/b5a1e2ee0bbe8b0a21d6cb3291ef56fb10125c48", - "download_url": null, - "type": "dir", - "_links": { - "self": "https://api.github.com/repos/sclorg/django-ex/contents/conf?ref=master", - "git": "https://api.github.com/repos/sclorg/django-ex/git/trees/b5a1e2ee0bbe8b0a21d6cb3291ef56fb10125c48", - "html": "https://github.com/sclorg/django-ex/tree/master/conf" - } - }, - { - "name": "manage.py", - "path": "manage.py", - "sha": "82cfa83a330eb5773026f53cf7c1e560b175d8d2", - "size": 250, - "url": "https://api.github.com/repos/sclorg/django-ex/contents/manage.py?ref=master", - "html_url": "https://github.com/sclorg/django-ex/blob/master/manage.py", - "git_url": "https://api.github.com/repos/sclorg/django-ex/git/blobs/82cfa83a330eb5773026f53cf7c1e560b175d8d2", - "download_url": "https://raw.githubusercontent.com/sclorg/django-ex/master/manage.py", - "type": "file", - "_links": { - "self": "https://api.github.com/repos/sclorg/django-ex/contents/manage.py?ref=master", - "git": "https://api.github.com/repos/sclorg/django-ex/git/blobs/82cfa83a330eb5773026f53cf7c1e560b175d8d2", - "html": "https://github.com/sclorg/django-ex/blob/master/manage.py" - } - }, - { - "name": "openshift", - "path": "openshift", - "sha": "931e902c7fe7ea7f1497d00518e19894279b424e", - "size": 0, - "url": "https://api.github.com/repos/sclorg/django-ex/contents/openshift?ref=master", - "html_url": "https://github.com/sclorg/django-ex/tree/master/openshift", - "git_url": "https://api.github.com/repos/sclorg/django-ex/git/trees/931e902c7fe7ea7f1497d00518e19894279b424e", - "download_url": null, - "type": "dir", - "_links": { - "self": "https://api.github.com/repos/sclorg/django-ex/contents/openshift?ref=master", - "git": "https://api.github.com/repos/sclorg/django-ex/git/trees/931e902c7fe7ea7f1497d00518e19894279b424e", - "html": "https://github.com/sclorg/django-ex/tree/master/openshift" - } - }, - { - "name": "project", - "path": "project", - "sha": "c0de40309ead1e5855e43c44d7ca479c64ef38b1", - "size": 0, - "url": "https://api.github.com/repos/sclorg/django-ex/contents/project?ref=master", - "html_url": "https://github.com/sclorg/django-ex/tree/master/project", - "git_url": "https://api.github.com/repos/sclorg/django-ex/git/trees/c0de40309ead1e5855e43c44d7ca479c64ef38b1", - "download_url": null, - "type": "dir", - "_links": { - "self": "https://api.github.com/repos/sclorg/django-ex/contents/project?ref=master", - "git": "https://api.github.com/repos/sclorg/django-ex/git/trees/c0de40309ead1e5855e43c44d7ca479c64ef38b1", - "html": "https://github.com/sclorg/django-ex/tree/master/project" - } - }, - { - "name": "requirements.txt", - "path": "requirements.txt", - "sha": "ef775839ebf4af8a2ee45dc309cc972a3a8e0328", - "size": 106, - "url": "https://api.github.com/repos/sclorg/django-ex/contents/requirements.txt?ref=master", - "html_url": "https://github.com/sclorg/django-ex/blob/master/requirements.txt", - "git_url": "https://api.github.com/repos/sclorg/django-ex/git/blobs/ef775839ebf4af8a2ee45dc309cc972a3a8e0328", - "download_url": "https://raw.githubusercontent.com/sclorg/django-ex/master/requirements.txt", - "type": "file", - "_links": { - "self": "https://api.github.com/repos/sclorg/django-ex/contents/requirements.txt?ref=master", - "git": "https://api.github.com/repos/sclorg/django-ex/git/blobs/ef775839ebf4af8a2ee45dc309cc972a3a8e0328", - "html": "https://github.com/sclorg/django-ex/blob/master/requirements.txt" - } - }, - { - "name": "welcome", - "path": "welcome", - "sha": "a205532b0359e8c9f57b2dd2a8cb10b9adf45607", - "size": 0, - "url": "https://api.github.com/repos/sclorg/django-ex/contents/welcome?ref=master", - "html_url": "https://github.com/sclorg/django-ex/tree/master/welcome", - "git_url": "https://api.github.com/repos/sclorg/django-ex/git/trees/a205532b0359e8c9f57b2dd2a8cb10b9adf45607", - "download_url": null, - "type": "dir", - "_links": { - "self": "https://api.github.com/repos/sclorg/django-ex/contents/welcome?ref=master", - "git": "https://api.github.com/repos/sclorg/django-ex/git/trees/a205532b0359e8c9f57b2dd2a8cb10b9adf45607", - "html": "https://github.com/sclorg/django-ex/tree/master/welcome" - } - }, - { - "name": "wsgi.py", - "path": "wsgi.py", - "sha": "2ef9a16d4b89eabb4a22ba244bc5a081737cc9d5", - "size": 392, - "url": "https://api.github.com/repos/sclorg/django-ex/contents/wsgi.py?ref=master", - "html_url": "https://github.com/sclorg/django-ex/blob/master/wsgi.py", - "git_url": "https://api.github.com/repos/sclorg/django-ex/git/blobs/2ef9a16d4b89eabb4a22ba244bc5a081737cc9d5", - "download_url": "https://raw.githubusercontent.com/sclorg/django-ex/master/wsgi.py", - "type": "file", - "_links": { - "self": "https://api.github.com/repos/sclorg/django-ex/contents/wsgi.py?ref=master", - "git": "https://api.github.com/repos/sclorg/django-ex/git/blobs/2ef9a16d4b89eabb4a22ba244bc5a081737cc9d5", - "html": "https://github.com/sclorg/django-ex/blob/master/wsgi.py" - } - } - ] - \ No newline at end of file diff --git a/frontend/packages/dev-console/integration-tests/testData/git-import/django-ex/repo.json b/frontend/packages/dev-console/integration-tests/testData/git-import/django-ex/repo.json deleted file mode 100644 index af110d6d5ac..00000000000 --- a/frontend/packages/dev-console/integration-tests/testData/git-import/django-ex/repo.json +++ /dev/null @@ -1,124 +0,0 @@ -{ - "id": 36253029, - "node_id": "MDEwOlJlcG9zaXRvcnkzNjI1MzAyOQ==", - "name": "django-ex", - "full_name": "sclorg/django-ex", - "private": false, - "owner": { - "login": "sclorg", - "id": 9047960, - "node_id": "MDEyOk9yZ2FuaXphdGlvbjkwNDc5NjA=", - "avatar_url": "https://avatars.githubusercontent.com/u/9047960?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/sclorg", - "html_url": "https://github.com/sclorg", - "followers_url": "https://api.github.com/users/sclorg/followers", - "following_url": "https://api.github.com/users/sclorg/following{/other_user}", - "gists_url": "https://api.github.com/users/sclorg/gists{/gist_id}", - "starred_url": "https://api.github.com/users/sclorg/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/sclorg/subscriptions", - "organizations_url": "https://api.github.com/users/sclorg/orgs", - "repos_url": "https://api.github.com/users/sclorg/repos", - "events_url": "https://api.github.com/users/sclorg/events{/privacy}", - "received_events_url": "https://api.github.com/users/sclorg/received_events", - "type": "Organization", - "site_admin": false - }, - "html_url": "https://github.com/sclorg/django-ex", - "description": "Django Example", - "fork": false, - "url": "https://api.github.com/repos/sclorg/django-ex", - "forks_url": "https://api.github.com/repos/sclorg/django-ex/forks", - "keys_url": "https://api.github.com/repos/sclorg/django-ex/keys{/key_id}", - "collaborators_url": "https://api.github.com/repos/sclorg/django-ex/collaborators{/collaborator}", - "teams_url": "https://api.github.com/repos/sclorg/django-ex/teams", - "hooks_url": "https://api.github.com/repos/sclorg/django-ex/hooks", - "issue_events_url": "https://api.github.com/repos/sclorg/django-ex/issues/events{/number}", - "events_url": "https://api.github.com/repos/sclorg/django-ex/events", - "assignees_url": "https://api.github.com/repos/sclorg/django-ex/assignees{/user}", - "branches_url": "https://api.github.com/repos/sclorg/django-ex/branches{/branch}", - "tags_url": "https://api.github.com/repos/sclorg/django-ex/tags", - "blobs_url": "https://api.github.com/repos/sclorg/django-ex/git/blobs{/sha}", - "git_tags_url": "https://api.github.com/repos/sclorg/django-ex/git/tags{/sha}", - "git_refs_url": "https://api.github.com/repos/sclorg/django-ex/git/refs{/sha}", - "trees_url": "https://api.github.com/repos/sclorg/django-ex/git/trees{/sha}", - "statuses_url": "https://api.github.com/repos/sclorg/django-ex/statuses/{sha}", - "languages_url": "https://api.github.com/repos/sclorg/django-ex/languages", - "stargazers_url": "https://api.github.com/repos/sclorg/django-ex/stargazers", - "contributors_url": "https://api.github.com/repos/sclorg/django-ex/contributors", - "subscribers_url": "https://api.github.com/repos/sclorg/django-ex/subscribers", - "subscription_url": "https://api.github.com/repos/sclorg/django-ex/subscription", - "commits_url": "https://api.github.com/repos/sclorg/django-ex/commits{/sha}", - "git_commits_url": "https://api.github.com/repos/sclorg/django-ex/git/commits{/sha}", - "comments_url": "https://api.github.com/repos/sclorg/django-ex/comments{/number}", - "issue_comment_url": "https://api.github.com/repos/sclorg/django-ex/issues/comments{/number}", - "contents_url": "https://api.github.com/repos/sclorg/django-ex/contents/{+path}", - "compare_url": "https://api.github.com/repos/sclorg/django-ex/compare/{base}...{head}", - "merges_url": "https://api.github.com/repos/sclorg/django-ex/merges", - "archive_url": "https://api.github.com/repos/sclorg/django-ex/{archive_format}{/ref}", - "downloads_url": "https://api.github.com/repos/sclorg/django-ex/downloads", - "issues_url": "https://api.github.com/repos/sclorg/django-ex/issues{/number}", - "pulls_url": "https://api.github.com/repos/sclorg/django-ex/pulls{/number}", - "milestones_url": "https://api.github.com/repos/sclorg/django-ex/milestones{/number}", - "notifications_url": "https://api.github.com/repos/sclorg/django-ex/notifications{?since,all,participating}", - "labels_url": "https://api.github.com/repos/sclorg/django-ex/labels{/name}", - "releases_url": "https://api.github.com/repos/sclorg/django-ex/releases{/id}", - "deployments_url": "https://api.github.com/repos/sclorg/django-ex/deployments", - "created_at": "2015-05-25T20:30:23Z", - "updated_at": "2021-12-01T02:50:57Z", - "pushed_at": "2021-11-22T23:55:30Z", - "git_url": "git://github.com/sclorg/django-ex.git", - "ssh_url": "git@github.com:sclorg/django-ex.git", - "clone_url": "https://github.com/sclorg/django-ex.git", - "svn_url": "https://github.com/sclorg/django-ex", - "homepage": null, - "size": 290, - "stargazers_count": 178, - "watchers_count": 178, - "language": "HTML", - "has_issues": true, - "has_projects": true, - "has_downloads": true, - "has_wiki": false, - "has_pages": false, - "forks_count": 1604, - "mirror_url": null, - "archived": false, - "disabled": false, - "open_issues_count": 7, - "license": null, - "allow_forking": true, - "is_template": false, - "topics": [ - - ], - "visibility": "public", - "forks": 1604, - "open_issues": 7, - "watchers": 178, - "default_branch": "master", - "temp_clone_token": null, - "organization": { - "login": "sclorg", - "id": 9047960, - "node_id": "MDEyOk9yZ2FuaXphdGlvbjkwNDc5NjA=", - "avatar_url": "https://avatars.githubusercontent.com/u/9047960?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/sclorg", - "html_url": "https://github.com/sclorg", - "followers_url": "https://api.github.com/users/sclorg/followers", - "following_url": "https://api.github.com/users/sclorg/following{/other_user}", - "gists_url": "https://api.github.com/users/sclorg/gists{/gist_id}", - "starred_url": "https://api.github.com/users/sclorg/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/sclorg/subscriptions", - "organizations_url": "https://api.github.com/users/sclorg/orgs", - "repos_url": "https://api.github.com/users/sclorg/repos", - "events_url": "https://api.github.com/users/sclorg/events{/privacy}", - "received_events_url": "https://api.github.com/users/sclorg/received_events", - "type": "Organization", - "site_admin": false - }, - "network_count": 1604, - "subscribers_count": 70 - } - \ No newline at end of file diff --git a/frontend/packages/dev-console/integration-tests/testData/git-import/flask-dockerfile-example/contents.json b/frontend/packages/dev-console/integration-tests/testData/git-import/flask-dockerfile-example/contents.json deleted file mode 100644 index 403666af656..00000000000 --- a/frontend/packages/dev-console/integration-tests/testData/git-import/flask-dockerfile-example/contents.json +++ /dev/null @@ -1,114 +0,0 @@ -[ - { - "name": ".gitignore", - "path": ".gitignore", - "sha": "894a44cc066a027465cd26d634948d56d13af9af", - "size": 1203, - "url": "https://api.github.com/repos/rohitkrai03/flask-dockerfile-example/contents/.gitignore?ref=master", - "html_url": "https://github.com/rohitkrai03/flask-dockerfile-example/blob/master/.gitignore", - "git_url": "https://api.github.com/repos/rohitkrai03/flask-dockerfile-example/git/blobs/894a44cc066a027465cd26d634948d56d13af9af", - "download_url": "https://raw.githubusercontent.com/rohitkrai03/flask-dockerfile-example/master/.gitignore", - "type": "file", - "_links": { - "self": "https://api.github.com/repos/rohitkrai03/flask-dockerfile-example/contents/.gitignore?ref=master", - "git": "https://api.github.com/repos/rohitkrai03/flask-dockerfile-example/git/blobs/894a44cc066a027465cd26d634948d56d13af9af", - "html": "https://github.com/rohitkrai03/flask-dockerfile-example/blob/master/.gitignore" - } - }, - { - "name": "Dockerfile", - "path": "Dockerfile", - "sha": "daa8e72028d578ac04d63cdb391a81c1ebda12c6", - "size": 527, - "url": "https://api.github.com/repos/rohitkrai03/flask-dockerfile-example/contents/Dockerfile?ref=master", - "html_url": "https://github.com/rohitkrai03/flask-dockerfile-example/blob/master/Dockerfile", - "git_url": "https://api.github.com/repos/rohitkrai03/flask-dockerfile-example/git/blobs/daa8e72028d578ac04d63cdb391a81c1ebda12c6", - "download_url": "https://raw.githubusercontent.com/rohitkrai03/flask-dockerfile-example/master/Dockerfile", - "type": "file", - "_links": { - "self": "https://api.github.com/repos/rohitkrai03/flask-dockerfile-example/contents/Dockerfile?ref=master", - "git": "https://api.github.com/repos/rohitkrai03/flask-dockerfile-example/git/blobs/daa8e72028d578ac04d63cdb391a81c1ebda12c6", - "html": "https://github.com/rohitkrai03/flask-dockerfile-example/blob/master/Dockerfile" - } - }, - { - "name": "LICENSE", - "path": "LICENSE", - "sha": "05d152596a06e21f6de18de5a8f713bc571c0a4a", - "size": 1066, - "url": "https://api.github.com/repos/rohitkrai03/flask-dockerfile-example/contents/LICENSE?ref=master", - "html_url": "https://github.com/rohitkrai03/flask-dockerfile-example/blob/master/LICENSE", - "git_url": "https://api.github.com/repos/rohitkrai03/flask-dockerfile-example/git/blobs/05d152596a06e21f6de18de5a8f713bc571c0a4a", - "download_url": "https://raw.githubusercontent.com/rohitkrai03/flask-dockerfile-example/master/LICENSE", - "type": "file", - "_links": { - "self": "https://api.github.com/repos/rohitkrai03/flask-dockerfile-example/contents/LICENSE?ref=master", - "git": "https://api.github.com/repos/rohitkrai03/flask-dockerfile-example/git/blobs/05d152596a06e21f6de18de5a8f713bc571c0a4a", - "html": "https://github.com/rohitkrai03/flask-dockerfile-example/blob/master/LICENSE" - } - }, - { - "name": "README.md", - "path": "README.md", - "sha": "eefeadb5fd68b3d3878503cfb8d40cc8de49d518", - "size": 69, - "url": "https://api.github.com/repos/rohitkrai03/flask-dockerfile-example/contents/README.md?ref=master", - "html_url": "https://github.com/rohitkrai03/flask-dockerfile-example/blob/master/README.md", - "git_url": "https://api.github.com/repos/rohitkrai03/flask-dockerfile-example/git/blobs/eefeadb5fd68b3d3878503cfb8d40cc8de49d518", - "download_url": "https://raw.githubusercontent.com/rohitkrai03/flask-dockerfile-example/master/README.md", - "type": "file", - "_links": { - "self": "https://api.github.com/repos/rohitkrai03/flask-dockerfile-example/contents/README.md?ref=master", - "git": "https://api.github.com/repos/rohitkrai03/flask-dockerfile-example/git/blobs/eefeadb5fd68b3d3878503cfb8d40cc8de49d518", - "html": "https://github.com/rohitkrai03/flask-dockerfile-example/blob/master/README.md" - } - }, - { - "name": "app.py", - "path": "app.py", - "sha": "c84741ecc642bb31f78e50be733e210b6fa7dda9", - "size": 344, - "url": "https://api.github.com/repos/rohitkrai03/flask-dockerfile-example/contents/app.py?ref=master", - "html_url": "https://github.com/rohitkrai03/flask-dockerfile-example/blob/master/app.py", - "git_url": "https://api.github.com/repos/rohitkrai03/flask-dockerfile-example/git/blobs/c84741ecc642bb31f78e50be733e210b6fa7dda9", - "download_url": "https://raw.githubusercontent.com/rohitkrai03/flask-dockerfile-example/master/app.py", - "type": "file", - "_links": { - "self": "https://api.github.com/repos/rohitkrai03/flask-dockerfile-example/contents/app.py?ref=master", - "git": "https://api.github.com/repos/rohitkrai03/flask-dockerfile-example/git/blobs/c84741ecc642bb31f78e50be733e210b6fa7dda9", - "html": "https://github.com/rohitkrai03/flask-dockerfile-example/blob/master/app.py" - } - }, - { - "name": "requirements.txt", - "path": "requirements.txt", - "sha": "578ac166e654210f1e162019e11243c342c25c9d", - "size": 11, - "url": "https://api.github.com/repos/rohitkrai03/flask-dockerfile-example/contents/requirements.txt?ref=master", - "html_url": "https://github.com/rohitkrai03/flask-dockerfile-example/blob/master/requirements.txt", - "git_url": "https://api.github.com/repos/rohitkrai03/flask-dockerfile-example/git/blobs/578ac166e654210f1e162019e11243c342c25c9d", - "download_url": "https://raw.githubusercontent.com/rohitkrai03/flask-dockerfile-example/master/requirements.txt", - "type": "file", - "_links": { - "self": "https://api.github.com/repos/rohitkrai03/flask-dockerfile-example/contents/requirements.txt?ref=master", - "git": "https://api.github.com/repos/rohitkrai03/flask-dockerfile-example/git/blobs/578ac166e654210f1e162019e11243c342c25c9d", - "html": "https://github.com/rohitkrai03/flask-dockerfile-example/blob/master/requirements.txt" - } - }, - { - "name": "templates", - "path": "templates", - "sha": "e76d7d40cc90e47ae1caf26fa44a6dc2e0917724", - "size": 0, - "url": "https://api.github.com/repos/rohitkrai03/flask-dockerfile-example/contents/templates?ref=master", - "html_url": "https://github.com/rohitkrai03/flask-dockerfile-example/tree/master/templates", - "git_url": "https://api.github.com/repos/rohitkrai03/flask-dockerfile-example/git/trees/e76d7d40cc90e47ae1caf26fa44a6dc2e0917724", - "download_url": null, - "type": "dir", - "_links": { - "self": "https://api.github.com/repos/rohitkrai03/flask-dockerfile-example/contents/templates?ref=master", - "git": "https://api.github.com/repos/rohitkrai03/flask-dockerfile-example/git/trees/e76d7d40cc90e47ae1caf26fa44a6dc2e0917724", - "html": "https://github.com/rohitkrai03/flask-dockerfile-example/tree/master/templates" - } - } -] diff --git a/frontend/packages/dev-console/integration-tests/testData/git-import/flask-dockerfile-example/repo.json b/frontend/packages/dev-console/integration-tests/testData/git-import/flask-dockerfile-example/repo.json deleted file mode 100644 index c538a2cda4c..00000000000 --- a/frontend/packages/dev-console/integration-tests/testData/git-import/flask-dockerfile-example/repo.json +++ /dev/null @@ -1,109 +0,0 @@ -{ - "id": 207126018, - "node_id": "MDEwOlJlcG9zaXRvcnkyMDcxMjYwMTg=", - "name": "flask-dockerfile-example", - "full_name": "rohitkrai03/flask-dockerfile-example", - "private": false, - "owner": { - "login": "rohitkrai03", - "id": 6041994, - "node_id": "MDQ6VXNlcjYwNDE5OTQ=", - "avatar_url": "https://avatars.githubusercontent.com/u/6041994?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/rohitkrai03", - "html_url": "https://github.com/rohitkrai03", - "followers_url": "https://api.github.com/users/rohitkrai03/followers", - "following_url": "https://api.github.com/users/rohitkrai03/following{/other_user}", - "gists_url": "https://api.github.com/users/rohitkrai03/gists{/gist_id}", - "starred_url": "https://api.github.com/users/rohitkrai03/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/rohitkrai03/subscriptions", - "organizations_url": "https://api.github.com/users/rohitkrai03/orgs", - "repos_url": "https://api.github.com/users/rohitkrai03/repos", - "events_url": "https://api.github.com/users/rohitkrai03/events{/privacy}", - "received_events_url": "https://api.github.com/users/rohitkrai03/received_events", - "type": "User", - "site_admin": false - }, - "html_url": "https://github.com/rohitkrai03/flask-dockerfile-example", - "description": "A sample flask app built using dockerfile", - "fork": false, - "url": "https://api.github.com/repos/rohitkrai03/flask-dockerfile-example", - "forks_url": "https://api.github.com/repos/rohitkrai03/flask-dockerfile-example/forks", - "keys_url": "https://api.github.com/repos/rohitkrai03/flask-dockerfile-example/keys{/key_id}", - "collaborators_url": "https://api.github.com/repos/rohitkrai03/flask-dockerfile-example/collaborators{/collaborator}", - "teams_url": "https://api.github.com/repos/rohitkrai03/flask-dockerfile-example/teams", - "hooks_url": "https://api.github.com/repos/rohitkrai03/flask-dockerfile-example/hooks", - "issue_events_url": "https://api.github.com/repos/rohitkrai03/flask-dockerfile-example/issues/events{/number}", - "events_url": "https://api.github.com/repos/rohitkrai03/flask-dockerfile-example/events", - "assignees_url": "https://api.github.com/repos/rohitkrai03/flask-dockerfile-example/assignees{/user}", - "branches_url": "https://api.github.com/repos/rohitkrai03/flask-dockerfile-example/branches{/branch}", - "tags_url": "https://api.github.com/repos/rohitkrai03/flask-dockerfile-example/tags", - "blobs_url": "https://api.github.com/repos/rohitkrai03/flask-dockerfile-example/git/blobs{/sha}", - "git_tags_url": "https://api.github.com/repos/rohitkrai03/flask-dockerfile-example/git/tags{/sha}", - "git_refs_url": "https://api.github.com/repos/rohitkrai03/flask-dockerfile-example/git/refs{/sha}", - "trees_url": "https://api.github.com/repos/rohitkrai03/flask-dockerfile-example/git/trees{/sha}", - "statuses_url": "https://api.github.com/repos/rohitkrai03/flask-dockerfile-example/statuses/{sha}", - "languages_url": "https://api.github.com/repos/rohitkrai03/flask-dockerfile-example/languages", - "stargazers_url": "https://api.github.com/repos/rohitkrai03/flask-dockerfile-example/stargazers", - "contributors_url": "https://api.github.com/repos/rohitkrai03/flask-dockerfile-example/contributors", - "subscribers_url": "https://api.github.com/repos/rohitkrai03/flask-dockerfile-example/subscribers", - "subscription_url": "https://api.github.com/repos/rohitkrai03/flask-dockerfile-example/subscription", - "commits_url": "https://api.github.com/repos/rohitkrai03/flask-dockerfile-example/commits{/sha}", - "git_commits_url": "https://api.github.com/repos/rohitkrai03/flask-dockerfile-example/git/commits{/sha}", - "comments_url": "https://api.github.com/repos/rohitkrai03/flask-dockerfile-example/comments{/number}", - "issue_comment_url": "https://api.github.com/repos/rohitkrai03/flask-dockerfile-example/issues/comments{/number}", - "contents_url": "https://api.github.com/repos/rohitkrai03/flask-dockerfile-example/contents/{+path}", - "compare_url": "https://api.github.com/repos/rohitkrai03/flask-dockerfile-example/compare/{base}...{head}", - "merges_url": "https://api.github.com/repos/rohitkrai03/flask-dockerfile-example/merges", - "archive_url": "https://api.github.com/repos/rohitkrai03/flask-dockerfile-example/{archive_format}{/ref}", - "downloads_url": "https://api.github.com/repos/rohitkrai03/flask-dockerfile-example/downloads", - "issues_url": "https://api.github.com/repos/rohitkrai03/flask-dockerfile-example/issues{/number}", - "pulls_url": "https://api.github.com/repos/rohitkrai03/flask-dockerfile-example/pulls{/number}", - "milestones_url": "https://api.github.com/repos/rohitkrai03/flask-dockerfile-example/milestones{/number}", - "notifications_url": "https://api.github.com/repos/rohitkrai03/flask-dockerfile-example/notifications{?since,all,participating}", - "labels_url": "https://api.github.com/repos/rohitkrai03/flask-dockerfile-example/labels{/name}", - "releases_url": "https://api.github.com/repos/rohitkrai03/flask-dockerfile-example/releases{/id}", - "deployments_url": "https://api.github.com/repos/rohitkrai03/flask-dockerfile-example/deployments", - "created_at": "2019-09-08T14:39:00Z", - "updated_at": "2019-09-08T15:19:56Z", - "pushed_at": "2019-09-08T15:20:01Z", - "git_url": "git://github.com/rohitkrai03/flask-dockerfile-example.git", - "ssh_url": "git@github.com:rohitkrai03/flask-dockerfile-example.git", - "clone_url": "https://github.com/rohitkrai03/flask-dockerfile-example.git", - "svn_url": "https://github.com/rohitkrai03/flask-dockerfile-example", - "homepage": null, - "size": 5, - "stargazers_count": 0, - "watchers_count": 0, - "language": "HTML", - "has_issues": true, - "has_projects": true, - "has_downloads": true, - "has_wiki": true, - "has_pages": false, - "forks_count": 4, - "mirror_url": null, - "archived": false, - "disabled": false, - "open_issues_count": 0, - "license": { - "key": "mit", - "name": "MIT License", - "spdx_id": "MIT", - "url": "https://api.github.com/licenses/mit", - "node_id": "MDc6TGljZW5zZTEz" - }, - "allow_forking": true, - "is_template": false, - "topics": [ - - ], - "visibility": "public", - "forks": 4, - "open_issues": 0, - "watchers": 0, - "default_branch": "master", - "temp_clone_token": null, - "network_count": 4, - "subscribers_count": 1 -} diff --git a/frontend/packages/dev-console/integration-tests/testData/git-import/golang-ex/contents.json b/frontend/packages/dev-console/integration-tests/testData/git-import/golang-ex/contents.json deleted file mode 100644 index bea8b5f8c92..00000000000 --- a/frontend/packages/dev-console/integration-tests/testData/git-import/golang-ex/contents.json +++ /dev/null @@ -1,35 +0,0 @@ -[ - { - "name": "README.md", - "path": "README.md", - "sha": "c623c430d3097ac88a9bde7e218b2a214fd2685b", - "size": 1465, - "url": "https://api.github.com/repos/sclorg/golang-ex/contents/README.md?ref=master", - "html_url": "https://github.com/sclorg/golang-ex/blob/master/README.md", - "git_url": "https://api.github.com/repos/sclorg/golang-ex/git/blobs/c623c430d3097ac88a9bde7e218b2a214fd2685b", - "download_url": "https://raw.githubusercontent.com/sclorg/golang-ex/master/README.md", - "type": "file", - "_links": { - "self": "https://api.github.com/repos/sclorg/golang-ex/contents/README.md?ref=master", - "git": "https://api.github.com/repos/sclorg/golang-ex/git/blobs/c623c430d3097ac88a9bde7e218b2a214fd2685b", - "html": "https://github.com/sclorg/golang-ex/blob/master/README.md" - } - }, - { - "name": "hello_openshift.go", - "path": "hello_openshift.go", - "sha": "911ac655b333b93eac641bd26a4331d3a070ca65", - "size": 707, - "url": "https://api.github.com/repos/sclorg/golang-ex/contents/hello_openshift.go?ref=master", - "html_url": "https://github.com/sclorg/golang-ex/blob/master/hello_openshift.go", - "git_url": "https://api.github.com/repos/sclorg/golang-ex/git/blobs/911ac655b333b93eac641bd26a4331d3a070ca65", - "download_url": "https://raw.githubusercontent.com/sclorg/golang-ex/master/hello_openshift.go", - "type": "file", - "_links": { - "self": "https://api.github.com/repos/sclorg/golang-ex/contents/hello_openshift.go?ref=master", - "git": "https://api.github.com/repos/sclorg/golang-ex/git/blobs/911ac655b333b93eac641bd26a4331d3a070ca65", - "html": "https://github.com/sclorg/golang-ex/blob/master/hello_openshift.go" - } - } - ] - \ No newline at end of file diff --git a/frontend/packages/dev-console/integration-tests/testData/git-import/golang-ex/repo.json b/frontend/packages/dev-console/integration-tests/testData/git-import/golang-ex/repo.json deleted file mode 100644 index 0226304a2ef..00000000000 --- a/frontend/packages/dev-console/integration-tests/testData/git-import/golang-ex/repo.json +++ /dev/null @@ -1,124 +0,0 @@ -{ - "id": 147709323, - "node_id": "MDEwOlJlcG9zaXRvcnkxNDc3MDkzMjM=", - "name": "golang-ex", - "full_name": "sclorg/golang-ex", - "private": false, - "owner": { - "login": "sclorg", - "id": 9047960, - "node_id": "MDEyOk9yZ2FuaXphdGlvbjkwNDc5NjA=", - "avatar_url": "https://avatars.githubusercontent.com/u/9047960?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/sclorg", - "html_url": "https://github.com/sclorg", - "followers_url": "https://api.github.com/users/sclorg/followers", - "following_url": "https://api.github.com/users/sclorg/following{/other_user}", - "gists_url": "https://api.github.com/users/sclorg/gists{/gist_id}", - "starred_url": "https://api.github.com/users/sclorg/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/sclorg/subscriptions", - "organizations_url": "https://api.github.com/users/sclorg/orgs", - "repos_url": "https://api.github.com/users/sclorg/repos", - "events_url": "https://api.github.com/users/sclorg/events{/privacy}", - "received_events_url": "https://api.github.com/users/sclorg/received_events", - "type": "Organization", - "site_admin": false - }, - "html_url": "https://github.com/sclorg/golang-ex", - "description": "A sample app that is built using the s2i golang builder", - "fork": false, - "url": "https://api.github.com/repos/sclorg/golang-ex", - "forks_url": "https://api.github.com/repos/sclorg/golang-ex/forks", - "keys_url": "https://api.github.com/repos/sclorg/golang-ex/keys{/key_id}", - "collaborators_url": "https://api.github.com/repos/sclorg/golang-ex/collaborators{/collaborator}", - "teams_url": "https://api.github.com/repos/sclorg/golang-ex/teams", - "hooks_url": "https://api.github.com/repos/sclorg/golang-ex/hooks", - "issue_events_url": "https://api.github.com/repos/sclorg/golang-ex/issues/events{/number}", - "events_url": "https://api.github.com/repos/sclorg/golang-ex/events", - "assignees_url": "https://api.github.com/repos/sclorg/golang-ex/assignees{/user}", - "branches_url": "https://api.github.com/repos/sclorg/golang-ex/branches{/branch}", - "tags_url": "https://api.github.com/repos/sclorg/golang-ex/tags", - "blobs_url": "https://api.github.com/repos/sclorg/golang-ex/git/blobs{/sha}", - "git_tags_url": "https://api.github.com/repos/sclorg/golang-ex/git/tags{/sha}", - "git_refs_url": "https://api.github.com/repos/sclorg/golang-ex/git/refs{/sha}", - "trees_url": "https://api.github.com/repos/sclorg/golang-ex/git/trees{/sha}", - "statuses_url": "https://api.github.com/repos/sclorg/golang-ex/statuses/{sha}", - "languages_url": "https://api.github.com/repos/sclorg/golang-ex/languages", - "stargazers_url": "https://api.github.com/repos/sclorg/golang-ex/stargazers", - "contributors_url": "https://api.github.com/repos/sclorg/golang-ex/contributors", - "subscribers_url": "https://api.github.com/repos/sclorg/golang-ex/subscribers", - "subscription_url": "https://api.github.com/repos/sclorg/golang-ex/subscription", - "commits_url": "https://api.github.com/repos/sclorg/golang-ex/commits{/sha}", - "git_commits_url": "https://api.github.com/repos/sclorg/golang-ex/git/commits{/sha}", - "comments_url": "https://api.github.com/repos/sclorg/golang-ex/comments{/number}", - "issue_comment_url": "https://api.github.com/repos/sclorg/golang-ex/issues/comments{/number}", - "contents_url": "https://api.github.com/repos/sclorg/golang-ex/contents/{+path}", - "compare_url": "https://api.github.com/repos/sclorg/golang-ex/compare/{base}...{head}", - "merges_url": "https://api.github.com/repos/sclorg/golang-ex/merges", - "archive_url": "https://api.github.com/repos/sclorg/golang-ex/{archive_format}{/ref}", - "downloads_url": "https://api.github.com/repos/sclorg/golang-ex/downloads", - "issues_url": "https://api.github.com/repos/sclorg/golang-ex/issues{/number}", - "pulls_url": "https://api.github.com/repos/sclorg/golang-ex/pulls{/number}", - "milestones_url": "https://api.github.com/repos/sclorg/golang-ex/milestones{/number}", - "notifications_url": "https://api.github.com/repos/sclorg/golang-ex/notifications{?since,all,participating}", - "labels_url": "https://api.github.com/repos/sclorg/golang-ex/labels{/name}", - "releases_url": "https://api.github.com/repos/sclorg/golang-ex/releases{/id}", - "deployments_url": "https://api.github.com/repos/sclorg/golang-ex/deployments", - "created_at": "2018-09-06T17:28:40Z", - "updated_at": "2021-09-07T07:43:18Z", - "pushed_at": "2021-09-13T19:30:12Z", - "git_url": "git://github.com/sclorg/golang-ex.git", - "ssh_url": "git@github.com:sclorg/golang-ex.git", - "clone_url": "https://github.com/sclorg/golang-ex.git", - "svn_url": "https://github.com/sclorg/golang-ex", - "homepage": null, - "size": 3, - "stargazers_count": 4, - "watchers_count": 4, - "language": "Go", - "has_issues": true, - "has_projects": true, - "has_downloads": true, - "has_wiki": true, - "has_pages": false, - "forks_count": 64, - "mirror_url": null, - "archived": false, - "disabled": false, - "open_issues_count": 0, - "license": null, - "allow_forking": true, - "is_template": false, - "topics": [ - - ], - "visibility": "public", - "forks": 64, - "open_issues": 0, - "watchers": 4, - "default_branch": "master", - "temp_clone_token": null, - "organization": { - "login": "sclorg", - "id": 9047960, - "node_id": "MDEyOk9yZ2FuaXphdGlvbjkwNDc5NjA=", - "avatar_url": "https://avatars.githubusercontent.com/u/9047960?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/sclorg", - "html_url": "https://github.com/sclorg", - "followers_url": "https://api.github.com/users/sclorg/followers", - "following_url": "https://api.github.com/users/sclorg/following{/other_user}", - "gists_url": "https://api.github.com/users/sclorg/gists{/gist_id}", - "starred_url": "https://api.github.com/users/sclorg/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/sclorg/subscriptions", - "organizations_url": "https://api.github.com/users/sclorg/orgs", - "repos_url": "https://api.github.com/users/sclorg/repos", - "events_url": "https://api.github.com/users/sclorg/events{/privacy}", - "received_events_url": "https://api.github.com/users/sclorg/received_events", - "type": "Organization", - "site_admin": false - }, - "network_count": 64, - "subscribers_count": 7 - } - \ No newline at end of file diff --git a/frontend/packages/dev-console/integration-tests/testData/git-import/hello-func-node-env/contents.json b/frontend/packages/dev-console/integration-tests/testData/git-import/hello-func-node-env/contents.json deleted file mode 100644 index 02470b5c031..00000000000 --- a/frontend/packages/dev-console/integration-tests/testData/git-import/hello-func-node-env/contents.json +++ /dev/null @@ -1,114 +0,0 @@ -[ - { - "name": ".gitignore", - "path": ".gitignore", - "sha": "3abd5fdff11e295a0d72346ac99fe7034da1c6cb", - "size": 126, - "url": "https://api.github.com/repos/vikram-raj/hello-func-node-env/contents/.gitignore?ref=master", - "html_url": "https://github.com/vikram-raj/hello-func-node-env/blob/master/.gitignore", - "git_url": "https://api.github.com/repos/vikram-raj/hello-func-node-env/git/blobs/3abd5fdff11e295a0d72346ac99fe7034da1c6cb", - "download_url": "https://raw.githubusercontent.com/vikram-raj/hello-func-node-env/master/.gitignore", - "type": "file", - "_links": { - "self": "https://api.github.com/repos/vikram-raj/hello-func-node-env/contents/.gitignore?ref=master", - "git": "https://api.github.com/repos/vikram-raj/hello-func-node-env/git/blobs/3abd5fdff11e295a0d72346ac99fe7034da1c6cb", - "html": "https://github.com/vikram-raj/hello-func-node-env/blob/master/.gitignore" - } - }, - { - "name": "README.md", - "path": "README.md", - "sha": "3ecedd17b45af0a59d4a52dd648eda8ba090047a", - "size": 2096, - "url": "https://api.github.com/repos/vikram-raj/hello-func-node-env/contents/README.md?ref=master", - "html_url": "https://github.com/vikram-raj/hello-func-node-env/blob/master/README.md", - "git_url": "https://api.github.com/repos/vikram-raj/hello-func-node-env/git/blobs/3ecedd17b45af0a59d4a52dd648eda8ba090047a", - "download_url": "https://raw.githubusercontent.com/vikram-raj/hello-func-node-env/master/README.md", - "type": "file", - "_links": { - "self": "https://api.github.com/repos/vikram-raj/hello-func-node-env/contents/README.md?ref=master", - "git": "https://api.github.com/repos/vikram-raj/hello-func-node-env/git/blobs/3ecedd17b45af0a59d4a52dd648eda8ba090047a", - "html": "https://github.com/vikram-raj/hello-func-node-env/blob/master/README.md" - } - }, - { - "name": "func.yaml", - "path": "func.yaml", - "sha": "0ee31c9ad466045e40efa70433806dd40f1ca3c7", - "size": 721, - "url": "https://api.github.com/repos/vikram-raj/hello-func-node-env/contents/func.yaml?ref=master", - "html_url": "https://github.com/vikram-raj/hello-func-node-env/blob/master/func.yaml", - "git_url": "https://api.github.com/repos/vikram-raj/hello-func-node-env/git/blobs/0ee31c9ad466045e40efa70433806dd40f1ca3c7", - "download_url": "https://raw.githubusercontent.com/vikram-raj/hello-func-node-env/master/func.yaml", - "type": "file", - "_links": { - "self": "https://api.github.com/repos/vikram-raj/hello-func-node-env/contents/func.yaml?ref=master", - "git": "https://api.github.com/repos/vikram-raj/hello-func-node-env/git/blobs/0ee31c9ad466045e40efa70433806dd40f1ca3c7", - "html": "https://github.com/vikram-raj/hello-func-node-env/blob/master/func.yaml" - } - }, - { - "name": "index.js", - "path": "index.js", - "sha": "04c81441d0b3e3e39bee13343c4058956f4ee0e4", - "size": 1463, - "url": "https://api.github.com/repos/vikram-raj/hello-func-node-env/contents/index.js?ref=master", - "html_url": "https://github.com/vikram-raj/hello-func-node-env/blob/master/index.js", - "git_url": "https://api.github.com/repos/vikram-raj/hello-func-node-env/git/blobs/04c81441d0b3e3e39bee13343c4058956f4ee0e4", - "download_url": "https://raw.githubusercontent.com/vikram-raj/hello-func-node-env/master/index.js", - "type": "file", - "_links": { - "self": "https://api.github.com/repos/vikram-raj/hello-func-node-env/contents/index.js?ref=master", - "git": "https://api.github.com/repos/vikram-raj/hello-func-node-env/git/blobs/04c81441d0b3e3e39bee13343c4058956f4ee0e4", - "html": "https://github.com/vikram-raj/hello-func-node-env/blob/master/index.js" - } - }, - { - "name": "package-lock.json", - "path": "package-lock.json", - "sha": "14391b4480f8919aa6cedfe7e92585eb55259d8a", - "size": 151831, - "url": "https://api.github.com/repos/vikram-raj/hello-func-node-env/contents/package-lock.json?ref=master", - "html_url": "https://github.com/vikram-raj/hello-func-node-env/blob/master/package-lock.json", - "git_url": "https://api.github.com/repos/vikram-raj/hello-func-node-env/git/blobs/14391b4480f8919aa6cedfe7e92585eb55259d8a", - "download_url": "https://raw.githubusercontent.com/vikram-raj/hello-func-node-env/master/package-lock.json", - "type": "file", - "_links": { - "self": "https://api.github.com/repos/vikram-raj/hello-func-node-env/contents/package-lock.json?ref=master", - "git": "https://api.github.com/repos/vikram-raj/hello-func-node-env/git/blobs/14391b4480f8919aa6cedfe7e92585eb55259d8a", - "html": "https://github.com/vikram-raj/hello-func-node-env/blob/master/package-lock.json" - } - }, - { - "name": "package.json", - "path": "package.json", - "sha": "2806b7a4ce0a7caf6f1e3d9c0a833c81db97f7eb", - "size": 565, - "url": "https://api.github.com/repos/vikram-raj/hello-func-node-env/contents/package.json?ref=master", - "html_url": "https://github.com/vikram-raj/hello-func-node-env/blob/master/package.json", - "git_url": "https://api.github.com/repos/vikram-raj/hello-func-node-env/git/blobs/2806b7a4ce0a7caf6f1e3d9c0a833c81db97f7eb", - "download_url": "https://raw.githubusercontent.com/vikram-raj/hello-func-node-env/master/package.json", - "type": "file", - "_links": { - "self": "https://api.github.com/repos/vikram-raj/hello-func-node-env/contents/package.json?ref=master", - "git": "https://api.github.com/repos/vikram-raj/hello-func-node-env/git/blobs/2806b7a4ce0a7caf6f1e3d9c0a833c81db97f7eb", - "html": "https://github.com/vikram-raj/hello-func-node-env/blob/master/package.json" - } - }, - { - "name": "test", - "path": "test", - "sha": "9cea2aab5cb7d30f925060499367172b566d0842", - "size": 0, - "url": "https://api.github.com/repos/vikram-raj/hello-func-node-env/contents/test?ref=master", - "html_url": "https://github.com/vikram-raj/hello-func-node-env/tree/master/test", - "git_url": "https://api.github.com/repos/vikram-raj/hello-func-node-env/git/trees/9cea2aab5cb7d30f925060499367172b566d0842", - "download_url": null, - "type": "dir", - "_links": { - "self": "https://api.github.com/repos/vikram-raj/hello-func-node-env/contents/test?ref=master", - "git": "https://api.github.com/repos/vikram-raj/hello-func-node-env/git/trees/9cea2aab5cb7d30f925060499367172b566d0842", - "html": "https://github.com/vikram-raj/hello-func-node-env/tree/master/test" - } - } - ] diff --git a/frontend/packages/dev-console/integration-tests/testData/git-import/hello-func-node-env/func.json b/frontend/packages/dev-console/integration-tests/testData/git-import/hello-func-node-env/func.json deleted file mode 100644 index f0d1e760d81..00000000000 --- a/frontend/packages/dev-console/integration-tests/testData/git-import/hello-func-node-env/func.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "name": "func.yaml", - "path": "func.yaml", - "sha": "0ee31c9ad466045e40efa70433806dd40f1ca3c7", - "size": 721, - "url": "https://api.github.com/repos/vikram-raj/hello-func-node-env/contents/func.yaml?ref=master", - "html_url": "https://github.com/vikram-raj/hello-func-node-env/blob/master/func.yaml", - "git_url": "https://api.github.com/repos/vikram-raj/hello-func-node-env/git/blobs/0ee31c9ad466045e40efa70433806dd40f1ca3c7", - "download_url": "https://raw.githubusercontent.com/vikram-raj/hello-func-node-env/master/func.yaml", - "type": "file", - "content": "c3BlY1ZlcnNpb246IDAuMzQuMApuYW1lOiBoZWxsby1mdW5jLW5vZGUtZW52\nCnJ1bnRpbWU6IG5vZGUKcmVnaXN0cnk6IHF1YXkuaW8vdmlyYWpfMQppbWFn\nZTogaW1hZ2UtcmVnaXN0cnkub3BlbnNoaWZ0LWltYWdlLXJlZ2lzdHJ5LnN2\nYzo1MDAwL2RlZmF1bHQvaGVsbG8tZnVuYy1ub2RlLWVudjpsYXRlc3QKaW1h\nZ2VEaWdlc3Q6IHNoYTI1NjoyZjNmMzY2ODM3NDllZDM0YWNiNzVjNjYxMjhl\nYmM3MmVjNmYxZWVlN2RjMTUwNjAyOTMxMTEyMzkzZWI3OGE5CmNyZWF0ZWQ6\nIDIwMjItMTItMjdUMDc6NTQ6NDguMzU2NTY5MjY1KzA1OjMwCmludm9jYXRp\nb246CiAgZm9ybWF0OiBodHRwCmJ1aWxkOgogIGJ1aWxkcGFja3M6IFtdCiAg\nYnVpbGRlcjogczJpCiAgYnVpbGRFbnZzOgogIC0gbmFtZTogYnVpbGRFbnYK\nICAgIHZhbHVlOiBidWlsZEVudlZhbAogIC0gbmFtZTogYnVpbGRFbnYxCiAg\nICB2YWx1ZTogYnVpbGRFbnZWYWwxCnJ1bjoKICB2b2x1bWVzOiBbXQogIGVu\ndnM6CiAgLSBuYW1lOiBoZWxsbwogICAgdmFsdWU6IHdvcmxkCiAgLSBuYW1l\nOiBlbnYKICAgIHZhbHVlOiBlbnZWYWx1ZQpkZXBsb3k6CiAgbmFtZXNwYWNl\nOiB2aXJhagogIGFubm90YXRpb25zOiB7fQogIG9wdGlvbnM6IHt9CiAgbGFi\nZWxzOiBbXQogIGhlYWx0aEVuZHBvaW50czoKICAgIGxpdmVuZXNzOiAvaGVh\nbHRoL2xpdmVuZXNzCiAgICByZWFkaW5lc3M6IC9oZWFsdGgvcmVhZGluZXNz\nCg==\n", - "encoding": "base64", - "_links": { - "self": "https://api.github.com/repos/vikram-raj/hello-func-node-env/contents/func.yaml?ref=master", - "git": "https://api.github.com/repos/vikram-raj/hello-func-node-env/git/blobs/0ee31c9ad466045e40efa70433806dd40f1ca3c7", - "html": "https://github.com/vikram-raj/hello-func-node-env/blob/master/func.yaml" - } -} \ No newline at end of file diff --git a/frontend/packages/dev-console/integration-tests/testData/git-import/hello-func-node-env/package.json b/frontend/packages/dev-console/integration-tests/testData/git-import/hello-func-node-env/package.json deleted file mode 100644 index 9b34d155c95..00000000000 --- a/frontend/packages/dev-console/integration-tests/testData/git-import/hello-func-node-env/package.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "name": "package.json", - "path": "package.json", - "sha": "2806b7a4ce0a7caf6f1e3d9c0a833c81db97f7eb", - "size": 565, - "url": "https://api.github.com/repos/vikram-raj/hello-func-node-env/contents/package.json?ref=master", - "html_url": "https://github.com/vikram-raj/hello-func-node-env/blob/master/package.json", - "git_url": "https://api.github.com/repos/vikram-raj/hello-func-node-env/git/blobs/2806b7a4ce0a7caf6f1e3d9c0a833c81db97f7eb", - "download_url": "https://raw.githubusercontent.com/vikram-raj/hello-func-node-env/master/package.json", - "type": "file", - "content": "ewogICJuYW1lIjogImh0dHAtaGFuZGxlciIsCiAgInZlcnNpb24iOiAiMC4x\nLjAiLAogICJkZXNjcmlwdGlvbiI6ICJBIGZ1bmN0aW9uIHdoaWNoIHJlc3Bv\nbmRzIHRvIEhUVFAgcmVxdWVzdHMiLAogICJtYWluIjogImluZGV4LmpzIiwK\nICAic2NyaXB0cyI6IHsKICAgICJ0ZXN0IjogIm5vZGUgdGVzdC91bml0Lmpz\nICYmIG5vZGUgdGVzdC9pbnRlZ3JhdGlvbi5qcyIsCiAgICAic3RhcnQiOiAi\nZmFhcy1qcy1ydW50aW1lIC4vaW5kZXguanMiLAogICAgImRlYnVnIjogIm5v\nZGVtb24gLS1pbnNwZWN0IC4vbm9kZV9tb2R1bGVzL2ZhYXMtanMtcnVudGlt\nZS9iaW4vY2xpLmpzIC4vaW5kZXguanMiCiAgfSwKICAia2V5d29yZHMiOiBb\nXSwKICAiYXV0aG9yIjogIiIsCiAgImxpY2Vuc2UiOiAiQXBhY2hlLTIuMCIs\nCiAgImRlcGVuZGVuY2llcyI6IHsKICAgICJmYWFzLWpzLXJ1bnRpbWUiOiAi\nXjAuOS4wIgogIH0sCiAgImRldkRlcGVuZGVuY2llcyI6IHsKICAgICJub2Rl\nbW9uIjogIl4yLjAuNCIsCiAgICAic3VwZXJ0ZXN0IjogIl40LjAuMiIsCiAg\nICAidGFwZSI6ICJeNS4wLjEiCiAgfQp9Cg==\n", - "encoding": "base64", - "_links": { - "self": "https://api.github.com/repos/vikram-raj/hello-func-node-env/contents/package.json?ref=master", - "git": "https://api.github.com/repos/vikram-raj/hello-func-node-env/git/blobs/2806b7a4ce0a7caf6f1e3d9c0a833c81db97f7eb", - "html": "https://github.com/vikram-raj/hello-func-node-env/blob/master/package.json" - } -} diff --git a/frontend/packages/dev-console/integration-tests/testData/git-import/hello-func-node-env/repo.json b/frontend/packages/dev-console/integration-tests/testData/git-import/hello-func-node-env/repo.json deleted file mode 100644 index 7e1b3ef25b2..00000000000 --- a/frontend/packages/dev-console/integration-tests/testData/git-import/hello-func-node-env/repo.json +++ /dev/null @@ -1,105 +0,0 @@ -{ - "id": 582727984, - "node_id": "R_kgDOIru5MA", - "name": "hello-func-node-env", - "full_name": "vikram-raj/hello-func-node-env", - "private": false, - "owner": { - "login": "vikram-raj", - "id": 2561818, - "node_id": "MDQ6VXNlcjI1NjE4MTg=", - "avatar_url": "https://avatars.githubusercontent.com/u/2561818?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/vikram-raj", - "html_url": "https://github.com/vikram-raj", - "followers_url": "https://api.github.com/users/vikram-raj/followers", - "following_url": "https://api.github.com/users/vikram-raj/following{/other_user}", - "gists_url": "https://api.github.com/users/vikram-raj/gists{/gist_id}", - "starred_url": "https://api.github.com/users/vikram-raj/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/vikram-raj/subscriptions", - "organizations_url": "https://api.github.com/users/vikram-raj/orgs", - "repos_url": "https://api.github.com/users/vikram-raj/repos", - "events_url": "https://api.github.com/users/vikram-raj/events{/privacy}", - "received_events_url": "https://api.github.com/users/vikram-raj/received_events", - "type": "User", - "site_admin": false - }, - "html_url": "https://github.com/vikram-raj/hello-func-node-env", - "description": null, - "fork": false, - "url": "https://api.github.com/repos/vikram-raj/hello-func-node-env", - "forks_url": "https://api.github.com/repos/vikram-raj/hello-func-node-env/forks", - "keys_url": "https://api.github.com/repos/vikram-raj/hello-func-node-env/keys{/key_id}", - "collaborators_url": "https://api.github.com/repos/vikram-raj/hello-func-node-env/collaborators{/collaborator}", - "teams_url": "https://api.github.com/repos/vikram-raj/hello-func-node-env/teams", - "hooks_url": "https://api.github.com/repos/vikram-raj/hello-func-node-env/hooks", - "issue_events_url": "https://api.github.com/repos/vikram-raj/hello-func-node-env/issues/events{/number}", - "events_url": "https://api.github.com/repos/vikram-raj/hello-func-node-env/events", - "assignees_url": "https://api.github.com/repos/vikram-raj/hello-func-node-env/assignees{/user}", - "branches_url": "https://api.github.com/repos/vikram-raj/hello-func-node-env/branches{/branch}", - "tags_url": "https://api.github.com/repos/vikram-raj/hello-func-node-env/tags", - "blobs_url": "https://api.github.com/repos/vikram-raj/hello-func-node-env/git/blobs{/sha}", - "git_tags_url": "https://api.github.com/repos/vikram-raj/hello-func-node-env/git/tags{/sha}", - "git_refs_url": "https://api.github.com/repos/vikram-raj/hello-func-node-env/git/refs{/sha}", - "trees_url": "https://api.github.com/repos/vikram-raj/hello-func-node-env/git/trees{/sha}", - "statuses_url": "https://api.github.com/repos/vikram-raj/hello-func-node-env/statuses/{sha}", - "languages_url": "https://api.github.com/repos/vikram-raj/hello-func-node-env/languages", - "stargazers_url": "https://api.github.com/repos/vikram-raj/hello-func-node-env/stargazers", - "contributors_url": "https://api.github.com/repos/vikram-raj/hello-func-node-env/contributors", - "subscribers_url": "https://api.github.com/repos/vikram-raj/hello-func-node-env/subscribers", - "subscription_url": "https://api.github.com/repos/vikram-raj/hello-func-node-env/subscription", - "commits_url": "https://api.github.com/repos/vikram-raj/hello-func-node-env/commits{/sha}", - "git_commits_url": "https://api.github.com/repos/vikram-raj/hello-func-node-env/git/commits{/sha}", - "comments_url": "https://api.github.com/repos/vikram-raj/hello-func-node-env/comments{/number}", - "issue_comment_url": "https://api.github.com/repos/vikram-raj/hello-func-node-env/issues/comments{/number}", - "contents_url": "https://api.github.com/repos/vikram-raj/hello-func-node-env/contents/{+path}", - "compare_url": "https://api.github.com/repos/vikram-raj/hello-func-node-env/compare/{base}...{head}", - "merges_url": "https://api.github.com/repos/vikram-raj/hello-func-node-env/merges", - "archive_url": "https://api.github.com/repos/vikram-raj/hello-func-node-env/{archive_format}{/ref}", - "downloads_url": "https://api.github.com/repos/vikram-raj/hello-func-node-env/downloads", - "issues_url": "https://api.github.com/repos/vikram-raj/hello-func-node-env/issues{/number}", - "pulls_url": "https://api.github.com/repos/vikram-raj/hello-func-node-env/pulls{/number}", - "milestones_url": "https://api.github.com/repos/vikram-raj/hello-func-node-env/milestones{/number}", - "notifications_url": "https://api.github.com/repos/vikram-raj/hello-func-node-env/notifications{?since,all,participating}", - "labels_url": "https://api.github.com/repos/vikram-raj/hello-func-node-env/labels{/name}", - "releases_url": "https://api.github.com/repos/vikram-raj/hello-func-node-env/releases{/id}", - "deployments_url": "https://api.github.com/repos/vikram-raj/hello-func-node-env/deployments", - "created_at": "2022-12-27T17:45:59Z", - "updated_at": "2022-12-27T17:47:32Z", - "pushed_at": "2022-12-27T17:47:28Z", - "git_url": "git://github.com/vikram-raj/hello-func-node-env.git", - "ssh_url": "git@github.com:vikram-raj/hello-func-node-env.git", - "clone_url": "https://github.com/vikram-raj/hello-func-node-env.git", - "svn_url": "https://github.com/vikram-raj/hello-func-node-env", - "homepage": null, - "size": 45, - "stargazers_count": 0, - "watchers_count": 0, - "language": "JavaScript", - "has_issues": true, - "has_projects": true, - "has_downloads": true, - "has_wiki": true, - "has_pages": false, - "has_discussions": false, - "forks_count": 0, - "mirror_url": null, - "archived": false, - "disabled": false, - "open_issues_count": 0, - "license": null, - "allow_forking": true, - "is_template": false, - "web_commit_signoff_required": false, - "topics": [ - - ], - "visibility": "public", - "forks": 0, - "open_issues": 0, - "watchers": 0, - "default_branch": "master", - "temp_clone_token": null, - "network_count": 0, - "subscribers_count": 1 - } diff --git a/frontend/packages/dev-console/integration-tests/testData/git-import/hello-func-node/contents.json b/frontend/packages/dev-console/integration-tests/testData/git-import/hello-func-node/contents.json deleted file mode 100644 index 50d4a3e0666..00000000000 --- a/frontend/packages/dev-console/integration-tests/testData/git-import/hello-func-node/contents.json +++ /dev/null @@ -1,114 +0,0 @@ -[ - { - "name": ".gitignore", - "path": ".gitignore", - "sha": "3abd5fdff11e295a0d72346ac99fe7034da1c6cb", - "size": 126, - "url": "https://api.github.com/repos/vikram-raj/hello-func-node/contents/.gitignore?ref=master", - "html_url": "https://github.com/vikram-raj/hello-func-node/blob/master/.gitignore", - "git_url": "https://api.github.com/repos/vikram-raj/hello-func-node/git/blobs/3abd5fdff11e295a0d72346ac99fe7034da1c6cb", - "download_url": "https://raw.githubusercontent.com/vikram-raj/hello-func-node/master/.gitignore", - "type": "file", - "_links": { - "self": "https://api.github.com/repos/vikram-raj/hello-func-node/contents/.gitignore?ref=master", - "git": "https://api.github.com/repos/vikram-raj/hello-func-node/git/blobs/3abd5fdff11e295a0d72346ac99fe7034da1c6cb", - "html": "https://github.com/vikram-raj/hello-func-node/blob/master/.gitignore" - } - }, - { - "name": "README.md", - "path": "README.md", - "sha": "3ecedd17b45af0a59d4a52dd648eda8ba090047a", - "size": 2096, - "url": "https://api.github.com/repos/vikram-raj/hello-func-node/contents/README.md?ref=master", - "html_url": "https://github.com/vikram-raj/hello-func-node/blob/master/README.md", - "git_url": "https://api.github.com/repos/vikram-raj/hello-func-node/git/blobs/3ecedd17b45af0a59d4a52dd648eda8ba090047a", - "download_url": "https://raw.githubusercontent.com/vikram-raj/hello-func-node/master/README.md", - "type": "file", - "_links": { - "self": "https://api.github.com/repos/vikram-raj/hello-func-node/contents/README.md?ref=master", - "git": "https://api.github.com/repos/vikram-raj/hello-func-node/git/blobs/3ecedd17b45af0a59d4a52dd648eda8ba090047a", - "html": "https://github.com/vikram-raj/hello-func-node/blob/master/README.md" - } - }, - { - "name": "func.yaml", - "path": "func.yaml", - "sha": "296531d91cee272407f90494bca2a20736b4ff30", - "size": 364, - "url": "https://api.github.com/repos/vikram-raj/hello-func-node/contents/func.yaml?ref=master", - "html_url": "https://github.com/vikram-raj/hello-func-node/blob/master/func.yaml", - "git_url": "https://api.github.com/repos/vikram-raj/hello-func-node/git/blobs/296531d91cee272407f90494bca2a20736b4ff30", - "download_url": "https://raw.githubusercontent.com/vikram-raj/hello-func-node/master/func.yaml", - "type": "file", - "_links": { - "self": "https://api.github.com/repos/vikram-raj/hello-func-node/contents/func.yaml?ref=master", - "git": "https://api.github.com/repos/vikram-raj/hello-func-node/git/blobs/296531d91cee272407f90494bca2a20736b4ff30", - "html": "https://github.com/vikram-raj/hello-func-node/blob/master/func.yaml" - } - }, - { - "name": "index.js", - "path": "index.js", - "sha": "04c81441d0b3e3e39bee13343c4058956f4ee0e4", - "size": 1463, - "url": "https://api.github.com/repos/vikram-raj/hello-func-node/contents/index.js?ref=master", - "html_url": "https://github.com/vikram-raj/hello-func-node/blob/master/index.js", - "git_url": "https://api.github.com/repos/vikram-raj/hello-func-node/git/blobs/04c81441d0b3e3e39bee13343c4058956f4ee0e4", - "download_url": "https://raw.githubusercontent.com/vikram-raj/hello-func-node/master/index.js", - "type": "file", - "_links": { - "self": "https://api.github.com/repos/vikram-raj/hello-func-node/contents/index.js?ref=master", - "git": "https://api.github.com/repos/vikram-raj/hello-func-node/git/blobs/04c81441d0b3e3e39bee13343c4058956f4ee0e4", - "html": "https://github.com/vikram-raj/hello-func-node/blob/master/index.js" - } - }, - { - "name": "package-lock.json", - "path": "package-lock.json", - "sha": "14391b4480f8919aa6cedfe7e92585eb55259d8a", - "size": 151831, - "url": "https://api.github.com/repos/vikram-raj/hello-func-node/contents/package-lock.json?ref=master", - "html_url": "https://github.com/vikram-raj/hello-func-node/blob/master/package-lock.json", - "git_url": "https://api.github.com/repos/vikram-raj/hello-func-node/git/blobs/14391b4480f8919aa6cedfe7e92585eb55259d8a", - "download_url": "https://raw.githubusercontent.com/vikram-raj/hello-func-node/master/package-lock.json", - "type": "file", - "_links": { - "self": "https://api.github.com/repos/vikram-raj/hello-func-node/contents/package-lock.json?ref=master", - "git": "https://api.github.com/repos/vikram-raj/hello-func-node/git/blobs/14391b4480f8919aa6cedfe7e92585eb55259d8a", - "html": "https://github.com/vikram-raj/hello-func-node/blob/master/package-lock.json" - } - }, - { - "name": "package.json", - "path": "package.json", - "sha": "2806b7a4ce0a7caf6f1e3d9c0a833c81db97f7eb", - "size": 565, - "url": "https://api.github.com/repos/vikram-raj/hello-func-node/contents/package.json?ref=master", - "html_url": "https://github.com/vikram-raj/hello-func-node/blob/master/package.json", - "git_url": "https://api.github.com/repos/vikram-raj/hello-func-node/git/blobs/2806b7a4ce0a7caf6f1e3d9c0a833c81db97f7eb", - "download_url": "https://raw.githubusercontent.com/vikram-raj/hello-func-node/master/package.json", - "type": "file", - "_links": { - "self": "https://api.github.com/repos/vikram-raj/hello-func-node/contents/package.json?ref=master", - "git": "https://api.github.com/repos/vikram-raj/hello-func-node/git/blobs/2806b7a4ce0a7caf6f1e3d9c0a833c81db97f7eb", - "html": "https://github.com/vikram-raj/hello-func-node/blob/master/package.json" - } - }, - { - "name": "test", - "path": "test", - "sha": "9cea2aab5cb7d30f925060499367172b566d0842", - "size": 0, - "url": "https://api.github.com/repos/vikram-raj/hello-func-node/contents/test?ref=master", - "html_url": "https://github.com/vikram-raj/hello-func-node/tree/master/test", - "git_url": "https://api.github.com/repos/vikram-raj/hello-func-node/git/trees/9cea2aab5cb7d30f925060499367172b566d0842", - "download_url": null, - "type": "dir", - "_links": { - "self": "https://api.github.com/repos/vikram-raj/hello-func-node/contents/test?ref=master", - "git": "https://api.github.com/repos/vikram-raj/hello-func-node/git/trees/9cea2aab5cb7d30f925060499367172b566d0842", - "html": "https://github.com/vikram-raj/hello-func-node/tree/master/test" - } - } - ] \ No newline at end of file diff --git a/frontend/packages/dev-console/integration-tests/testData/git-import/hello-func-node/func.json b/frontend/packages/dev-console/integration-tests/testData/git-import/hello-func-node/func.json deleted file mode 100644 index 65a3a91ca74..00000000000 --- a/frontend/packages/dev-console/integration-tests/testData/git-import/hello-func-node/func.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "name": "func.yaml", - "path": "func.yaml", - "sha": "296531d91cee272407f90494bca2a20736b4ff30", - "size": 364, - "url": "https://api.github.com/repos/vikram-raj/hello-func-node/contents/func.yaml?ref=master", - "html_url": "https://github.com/vikram-raj/hello-func-node/blob/master/func.yaml", - "git_url": "https://api.github.com/repos/vikram-raj/hello-func-node/git/blobs/296531d91cee272407f90494bca2a20736b4ff30", - "download_url": "https://raw.githubusercontent.com/vikram-raj/hello-func-node/master/func.yaml", - "type": "file", - "content": "c3BlY1ZlcnNpb246IDAuMzQuMApuYW1lOiBoZWxsby1mdW5jLW5vZGUKcnVu\ndGltZTogbm9kZQpyZWdpc3RyeTogJycKaW1hZ2U6ICcnCmludm9jYXRpb246\nCiAgZm9ybWF0OiBodHRwCmJ1aWxkOgogIGJ1aWxkcGFja3M6IFtdCiAgYnVp\nbGRlcjogczJpCiAgYnVpbGRFbnZzOiBbXQpydW46CiAgdm9sdW1lczogW10K\nICBlbnZzOgogIC0gbmFtZTogTVlfQVBJX0tFWQogICAgdmFsdWU6ICcxMjM0\nNScKZGVwbG95OgogIGFubm90YXRpb25zOiB7fQogIG9wdGlvbnM6IHt9CiAg\nbGFiZWxzOiBbXQogIGhlYWx0aEVuZHBvaW50czoKICAgIGxpdmVuZXNzOiAv\naGVhbHRoL2xpdmVuZXNzCiAgICByZWFkaW5lc3M6IC9oZWFsdGgvcmVhZGlu\nZXNzCg==\n", - "encoding": "base64", - "_links": { - "self": "https://api.github.com/repos/vikram-raj/hello-func-node/contents/func.yaml?ref=master", - "git": "https://api.github.com/repos/vikram-raj/hello-func-node/git/blobs/296531d91cee272407f90494bca2a20736b4ff30", - "html": "https://github.com/vikram-raj/hello-func-node/blob/master/func.yaml" - } -} \ No newline at end of file diff --git a/frontend/packages/dev-console/integration-tests/testData/git-import/hello-func-node/package.json b/frontend/packages/dev-console/integration-tests/testData/git-import/hello-func-node/package.json deleted file mode 100644 index f5054cefcd1..00000000000 --- a/frontend/packages/dev-console/integration-tests/testData/git-import/hello-func-node/package.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "name": "package.json", - "path": "package.json", - "sha": "2806b7a4ce0a7caf6f1e3d9c0a833c81db97f7eb", - "size": 565, - "url": "https://api.github.com/repos/vikram-raj/hello-func-node/contents/package.json?ref=master", - "html_url": "https://github.com/vikram-raj/hello-func-node/blob/master/package.json", - "git_url": "https://api.github.com/repos/vikram-raj/hello-func-node/git/blobs/2806b7a4ce0a7caf6f1e3d9c0a833c81db97f7eb", - "download_url": "https://raw.githubusercontent.com/vikram-raj/hello-func-node/master/package.json", - "type": "file", - "content": "ewogICJuYW1lIjogImh0dHAtaGFuZGxlciIsCiAgInZlcnNpb24iOiAiMC4x\nLjAiLAogICJkZXNjcmlwdGlvbiI6ICJBIGZ1bmN0aW9uIHdoaWNoIHJlc3Bv\nbmRzIHRvIEhUVFAgcmVxdWVzdHMiLAogICJtYWluIjogImluZGV4LmpzIiwK\nICAic2NyaXB0cyI6IHsKICAgICJ0ZXN0IjogIm5vZGUgdGVzdC91bml0Lmpz\nICYmIG5vZGUgdGVzdC9pbnRlZ3JhdGlvbi5qcyIsCiAgICAic3RhcnQiOiAi\nZmFhcy1qcy1ydW50aW1lIC4vaW5kZXguanMiLAogICAgImRlYnVnIjogIm5v\nZGVtb24gLS1pbnNwZWN0IC4vbm9kZV9tb2R1bGVzL2ZhYXMtanMtcnVudGlt\nZS9iaW4vY2xpLmpzIC4vaW5kZXguanMiCiAgfSwKICAia2V5d29yZHMiOiBb\nXSwKICAiYXV0aG9yIjogIiIsCiAgImxpY2Vuc2UiOiAiQXBhY2hlLTIuMCIs\nCiAgImRlcGVuZGVuY2llcyI6IHsKICAgICJmYWFzLWpzLXJ1bnRpbWUiOiAi\nXjAuOS4wIgogIH0sCiAgImRldkRlcGVuZGVuY2llcyI6IHsKICAgICJub2Rl\nbW9uIjogIl4yLjAuNCIsCiAgICAic3VwZXJ0ZXN0IjogIl40LjAuMiIsCiAg\nICAidGFwZSI6ICJeNS4wLjEiCiAgfQp9Cg==\n", - "encoding": "base64", - "_links": { - "self": "https://api.github.com/repos/vikram-raj/hello-func-node/contents/package.json?ref=master", - "git": "https://api.github.com/repos/vikram-raj/hello-func-node/git/blobs/2806b7a4ce0a7caf6f1e3d9c0a833c81db97f7eb", - "html": "https://github.com/vikram-raj/hello-func-node/blob/master/package.json" - } -} diff --git a/frontend/packages/dev-console/integration-tests/testData/git-import/hello-func-node/repo.json b/frontend/packages/dev-console/integration-tests/testData/git-import/hello-func-node/repo.json deleted file mode 100644 index fa3a76df3c0..00000000000 --- a/frontend/packages/dev-console/integration-tests/testData/git-import/hello-func-node/repo.json +++ /dev/null @@ -1,105 +0,0 @@ -{ - "id": 561716556, - "node_id": "R_kgDOIXsdTA", - "name": "hello-func-node", - "full_name": "vikram-raj/hello-func-node", - "private": false, - "owner": { - "login": "vikram-raj", - "id": 2561818, - "node_id": "MDQ6VXNlcjI1NjE4MTg=", - "avatar_url": "https://avatars.githubusercontent.com/u/2561818?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/vikram-raj", - "html_url": "https://github.com/vikram-raj", - "followers_url": "https://api.github.com/users/vikram-raj/followers", - "following_url": "https://api.github.com/users/vikram-raj/following{/other_user}", - "gists_url": "https://api.github.com/users/vikram-raj/gists{/gist_id}", - "starred_url": "https://api.github.com/users/vikram-raj/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/vikram-raj/subscriptions", - "organizations_url": "https://api.github.com/users/vikram-raj/orgs", - "repos_url": "https://api.github.com/users/vikram-raj/repos", - "events_url": "https://api.github.com/users/vikram-raj/events{/privacy}", - "received_events_url": "https://api.github.com/users/vikram-raj/received_events", - "type": "User", - "site_admin": false - }, - "html_url": "https://github.com/vikram-raj/hello-func-node", - "description": null, - "fork": false, - "url": "https://api.github.com/repos/vikram-raj/hello-func-node", - "forks_url": "https://api.github.com/repos/vikram-raj/hello-func-node/forks", - "keys_url": "https://api.github.com/repos/vikram-raj/hello-func-node/keys{/key_id}", - "collaborators_url": "https://api.github.com/repos/vikram-raj/hello-func-node/collaborators{/collaborator}", - "teams_url": "https://api.github.com/repos/vikram-raj/hello-func-node/teams", - "hooks_url": "https://api.github.com/repos/vikram-raj/hello-func-node/hooks", - "issue_events_url": "https://api.github.com/repos/vikram-raj/hello-func-node/issues/events{/number}", - "events_url": "https://api.github.com/repos/vikram-raj/hello-func-node/events", - "assignees_url": "https://api.github.com/repos/vikram-raj/hello-func-node/assignees{/user}", - "branches_url": "https://api.github.com/repos/vikram-raj/hello-func-node/branches{/branch}", - "tags_url": "https://api.github.com/repos/vikram-raj/hello-func-node/tags", - "blobs_url": "https://api.github.com/repos/vikram-raj/hello-func-node/git/blobs{/sha}", - "git_tags_url": "https://api.github.com/repos/vikram-raj/hello-func-node/git/tags{/sha}", - "git_refs_url": "https://api.github.com/repos/vikram-raj/hello-func-node/git/refs{/sha}", - "trees_url": "https://api.github.com/repos/vikram-raj/hello-func-node/git/trees{/sha}", - "statuses_url": "https://api.github.com/repos/vikram-raj/hello-func-node/statuses/{sha}", - "languages_url": "https://api.github.com/repos/vikram-raj/hello-func-node/languages", - "stargazers_url": "https://api.github.com/repos/vikram-raj/hello-func-node/stargazers", - "contributors_url": "https://api.github.com/repos/vikram-raj/hello-func-node/contributors", - "subscribers_url": "https://api.github.com/repos/vikram-raj/hello-func-node/subscribers", - "subscription_url": "https://api.github.com/repos/vikram-raj/hello-func-node/subscription", - "commits_url": "https://api.github.com/repos/vikram-raj/hello-func-node/commits{/sha}", - "git_commits_url": "https://api.github.com/repos/vikram-raj/hello-func-node/git/commits{/sha}", - "comments_url": "https://api.github.com/repos/vikram-raj/hello-func-node/comments{/number}", - "issue_comment_url": "https://api.github.com/repos/vikram-raj/hello-func-node/issues/comments{/number}", - "contents_url": "https://api.github.com/repos/vikram-raj/hello-func-node/contents/{+path}", - "compare_url": "https://api.github.com/repos/vikram-raj/hello-func-node/compare/{base}...{head}", - "merges_url": "https://api.github.com/repos/vikram-raj/hello-func-node/merges", - "archive_url": "https://api.github.com/repos/vikram-raj/hello-func-node/{archive_format}{/ref}", - "downloads_url": "https://api.github.com/repos/vikram-raj/hello-func-node/downloads", - "issues_url": "https://api.github.com/repos/vikram-raj/hello-func-node/issues{/number}", - "pulls_url": "https://api.github.com/repos/vikram-raj/hello-func-node/pulls{/number}", - "milestones_url": "https://api.github.com/repos/vikram-raj/hello-func-node/milestones{/number}", - "notifications_url": "https://api.github.com/repos/vikram-raj/hello-func-node/notifications{?since,all,participating}", - "labels_url": "https://api.github.com/repos/vikram-raj/hello-func-node/labels{/name}", - "releases_url": "https://api.github.com/repos/vikram-raj/hello-func-node/releases{/id}", - "deployments_url": "https://api.github.com/repos/vikram-raj/hello-func-node/deployments", - "created_at": "2022-11-04T10:27:10Z", - "updated_at": "2022-11-17T08:20:02Z", - "pushed_at": "2023-02-13T17:49:55Z", - "git_url": "git://github.com/vikram-raj/hello-func-node.git", - "ssh_url": "git@github.com:vikram-raj/hello-func-node.git", - "clone_url": "https://github.com/vikram-raj/hello-func-node.git", - "svn_url": "https://github.com/vikram-raj/hello-func-node", - "homepage": null, - "size": 49, - "stargazers_count": 0, - "watchers_count": 0, - "language": "JavaScript", - "has_issues": true, - "has_projects": true, - "has_downloads": true, - "has_wiki": true, - "has_pages": false, - "has_discussions": false, - "forks_count": 1, - "mirror_url": null, - "archived": false, - "disabled": false, - "open_issues_count": 0, - "license": null, - "allow_forking": true, - "is_template": false, - "web_commit_signoff_required": false, - "topics": [ - - ], - "visibility": "public", - "forks": 1, - "open_issues": 0, - "watchers": 0, - "default_branch": "master", - "temp_clone_token": null, - "network_count": 1, - "subscribers_count": 1 - } diff --git a/frontend/packages/dev-console/integration-tests/testData/git-import/hello-func-quarkus/contents.json b/frontend/packages/dev-console/integration-tests/testData/git-import/hello-func-quarkus/contents.json deleted file mode 100644 index d71d13f969c..00000000000 --- a/frontend/packages/dev-console/integration-tests/testData/git-import/hello-func-quarkus/contents.json +++ /dev/null @@ -1,130 +0,0 @@ -[ - { - "name": ".gitignore", - "path": ".gitignore", - "sha": "3abd5fdff11e295a0d72346ac99fe7034da1c6cb", - "size": 126, - "url": "https://api.github.com/repos/vikram-raj/hello-func-quarkus/contents/.gitignore?ref=master", - "html_url": "https://github.com/vikram-raj/hello-func-quarkus/blob/master/.gitignore", - "git_url": "https://api.github.com/repos/vikram-raj/hello-func-quarkus/git/blobs/3abd5fdff11e295a0d72346ac99fe7034da1c6cb", - "download_url": "https://raw.githubusercontent.com/vikram-raj/hello-func-quarkus/master/.gitignore", - "type": "file", - "_links": { - "self": "https://api.github.com/repos/vikram-raj/hello-func-quarkus/contents/.gitignore?ref=master", - "git": "https://api.github.com/repos/vikram-raj/hello-func-quarkus/git/blobs/3abd5fdff11e295a0d72346ac99fe7034da1c6cb", - "html": "https://github.com/vikram-raj/hello-func-quarkus/blob/master/.gitignore" - } - }, - { - "name": ".mvn", - "path": ".mvn", - "sha": "321dbd85deb16a24bcc0a29b974aa7a9bab5f85c", - "size": 0, - "url": "https://api.github.com/repos/vikram-raj/hello-func-quarkus/contents/.mvn?ref=master", - "html_url": "https://github.com/vikram-raj/hello-func-quarkus/tree/master/.mvn", - "git_url": "https://api.github.com/repos/vikram-raj/hello-func-quarkus/git/trees/321dbd85deb16a24bcc0a29b974aa7a9bab5f85c", - "download_url": null, - "type": "dir", - "_links": { - "self": "https://api.github.com/repos/vikram-raj/hello-func-quarkus/contents/.mvn?ref=master", - "git": "https://api.github.com/repos/vikram-raj/hello-func-quarkus/git/trees/321dbd85deb16a24bcc0a29b974aa7a9bab5f85c", - "html": "https://github.com/vikram-raj/hello-func-quarkus/tree/master/.mvn" - } - }, - { - "name": "README.md", - "path": "README.md", - "sha": "db59866a5a0668c68245b07c538f0dd5ba145bbe", - "size": 2276, - "url": "https://api.github.com/repos/vikram-raj/hello-func-quarkus/contents/README.md?ref=master", - "html_url": "https://github.com/vikram-raj/hello-func-quarkus/blob/master/README.md", - "git_url": "https://api.github.com/repos/vikram-raj/hello-func-quarkus/git/blobs/db59866a5a0668c68245b07c538f0dd5ba145bbe", - "download_url": "https://raw.githubusercontent.com/vikram-raj/hello-func-quarkus/master/README.md", - "type": "file", - "_links": { - "self": "https://api.github.com/repos/vikram-raj/hello-func-quarkus/contents/README.md?ref=master", - "git": "https://api.github.com/repos/vikram-raj/hello-func-quarkus/git/blobs/db59866a5a0668c68245b07c538f0dd5ba145bbe", - "html": "https://github.com/vikram-raj/hello-func-quarkus/blob/master/README.md" - } - }, - { - "name": "func.yaml", - "path": "func.yaml", - "sha": "afa4aa0b8b1cce8265bd358ece2aab321d38ad77", - "size": 1014, - "url": "https://api.github.com/repos/vikram-raj/hello-func-quarkus/contents/func.yaml?ref=master", - "html_url": "https://github.com/vikram-raj/hello-func-quarkus/blob/master/func.yaml", - "git_url": "https://api.github.com/repos/vikram-raj/hello-func-quarkus/git/blobs/afa4aa0b8b1cce8265bd358ece2aab321d38ad77", - "download_url": "https://raw.githubusercontent.com/vikram-raj/hello-func-quarkus/master/func.yaml", - "type": "file", - "_links": { - "self": "https://api.github.com/repos/vikram-raj/hello-func-quarkus/contents/func.yaml?ref=master", - "git": "https://api.github.com/repos/vikram-raj/hello-func-quarkus/git/blobs/afa4aa0b8b1cce8265bd358ece2aab321d38ad77", - "html": "https://github.com/vikram-raj/hello-func-quarkus/blob/master/func.yaml" - } - }, - { - "name": "mvnw", - "path": "mvnw", - "sha": "41c0f0c23db5dca836d3db1a17a7a28444d17d74", - "size": 10069, - "url": "https://api.github.com/repos/vikram-raj/hello-func-quarkus/contents/mvnw?ref=master", - "html_url": "https://github.com/vikram-raj/hello-func-quarkus/blob/master/mvnw", - "git_url": "https://api.github.com/repos/vikram-raj/hello-func-quarkus/git/blobs/41c0f0c23db5dca836d3db1a17a7a28444d17d74", - "download_url": "https://raw.githubusercontent.com/vikram-raj/hello-func-quarkus/master/mvnw", - "type": "file", - "_links": { - "self": "https://api.github.com/repos/vikram-raj/hello-func-quarkus/contents/mvnw?ref=master", - "git": "https://api.github.com/repos/vikram-raj/hello-func-quarkus/git/blobs/41c0f0c23db5dca836d3db1a17a7a28444d17d74", - "html": "https://github.com/vikram-raj/hello-func-quarkus/blob/master/mvnw" - } - }, - { - "name": "mvnw.cmd", - "path": "mvnw.cmd", - "sha": "86115719e5383e94597f918bf18c5ecbb7cfe492", - "size": 6607, - "url": "https://api.github.com/repos/vikram-raj/hello-func-quarkus/contents/mvnw.cmd?ref=master", - "html_url": "https://github.com/vikram-raj/hello-func-quarkus/blob/master/mvnw.cmd", - "git_url": "https://api.github.com/repos/vikram-raj/hello-func-quarkus/git/blobs/86115719e5383e94597f918bf18c5ecbb7cfe492", - "download_url": "https://raw.githubusercontent.com/vikram-raj/hello-func-quarkus/master/mvnw.cmd", - "type": "file", - "_links": { - "self": "https://api.github.com/repos/vikram-raj/hello-func-quarkus/contents/mvnw.cmd?ref=master", - "git": "https://api.github.com/repos/vikram-raj/hello-func-quarkus/git/blobs/86115719e5383e94597f918bf18c5ecbb7cfe492", - "html": "https://github.com/vikram-raj/hello-func-quarkus/blob/master/mvnw.cmd" - } - }, - { - "name": "pom.xml", - "path": "pom.xml", - "sha": "d20f62895f702f3dd5fcdc215ae40150d4b754c4", - "size": 4351, - "url": "https://api.github.com/repos/vikram-raj/hello-func-quarkus/contents/pom.xml?ref=master", - "html_url": "https://github.com/vikram-raj/hello-func-quarkus/blob/master/pom.xml", - "git_url": "https://api.github.com/repos/vikram-raj/hello-func-quarkus/git/blobs/d20f62895f702f3dd5fcdc215ae40150d4b754c4", - "download_url": "https://raw.githubusercontent.com/vikram-raj/hello-func-quarkus/master/pom.xml", - "type": "file", - "_links": { - "self": "https://api.github.com/repos/vikram-raj/hello-func-quarkus/contents/pom.xml?ref=master", - "git": "https://api.github.com/repos/vikram-raj/hello-func-quarkus/git/blobs/d20f62895f702f3dd5fcdc215ae40150d4b754c4", - "html": "https://github.com/vikram-raj/hello-func-quarkus/blob/master/pom.xml" - } - }, - { - "name": "src", - "path": "src", - "sha": "8f2034073149a21b1daf2a2f1e60a30fa3f4ccb5", - "size": 0, - "url": "https://api.github.com/repos/vikram-raj/hello-func-quarkus/contents/src?ref=master", - "html_url": "https://github.com/vikram-raj/hello-func-quarkus/tree/master/src", - "git_url": "https://api.github.com/repos/vikram-raj/hello-func-quarkus/git/trees/8f2034073149a21b1daf2a2f1e60a30fa3f4ccb5", - "download_url": null, - "type": "dir", - "_links": { - "self": "https://api.github.com/repos/vikram-raj/hello-func-quarkus/contents/src?ref=master", - "git": "https://api.github.com/repos/vikram-raj/hello-func-quarkus/git/trees/8f2034073149a21b1daf2a2f1e60a30fa3f4ccb5", - "html": "https://github.com/vikram-raj/hello-func-quarkus/tree/master/src" - } - } - ] diff --git a/frontend/packages/dev-console/integration-tests/testData/git-import/hello-func-quarkus/func.json b/frontend/packages/dev-console/integration-tests/testData/git-import/hello-func-quarkus/func.json deleted file mode 100644 index c3e9c1e43fa..00000000000 --- a/frontend/packages/dev-console/integration-tests/testData/git-import/hello-func-quarkus/func.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "name": "func.yaml", - "path": "func.yaml", - "sha": "afa4aa0b8b1cce8265bd358ece2aab321d38ad77", - "size": 1014, - "url": "https://api.github.com/repos/vikram-raj/hello-func-quarkus/contents/func.yaml?ref=master", - "html_url": "https://github.com/vikram-raj/hello-func-quarkus/blob/master/func.yaml", - "git_url": "https://api.github.com/repos/vikram-raj/hello-func-quarkus/git/blobs/afa4aa0b8b1cce8265bd358ece2aab321d38ad77", - "download_url": "https://raw.githubusercontent.com/vikram-raj/hello-func-quarkus/master/func.yaml", - "type": "file", - "content": "c3BlY1ZlcnNpb246IDAuMzQuMApuYW1lOiBoZWxsby1mdW5jLXF1YXJrdXMK\ncnVudGltZTogcXVhcmt1cwpyZWdpc3RyeTogcXVheS5pby92aXJhal8xCmlt\nYWdlOiBxdWF5LmlvL3ZpcmFqXzEvaGVsbG8tZnVuYy1xdWFya3VzOmxhdGVz\ndAppbWFnZURpZ2VzdDogc2hhMjU2OmFkNjMyZDNkNGQ0N2Q0NjM3YjA2Yjk3\nZjU1M2ZiMWRlODIxYTg2Mjk0ODU0MzE1Njc2YjViZDM2ZTllZWRiMzAKY3Jl\nYXRlZDogMjAyMi0xMS0xNlQxNjoxNjoxNC4wNTgzNDg2MDIrMDU6MzAKaW52\nb2NhdGlvbjoKICBmb3JtYXQ6IGh0dHAKYnVpbGQ6CiAgYnVpbGRwYWNrczog\nW10KICBidWlsZGVyOiBzMmkKICBidWlsZEVudnM6CiAgLSBuYW1lOiBCUF9O\nQVRJVkVfSU1BR0UKICAgIHZhbHVlOiAiZmFsc2UiCiAgLSBuYW1lOiBCUF9N\nQVZFTl9CVUlMVF9BUlRJRkFDVAogICAgdmFsdWU6IGZ1bmMueWFtbCB0YXJn\nZXQvcXVhcmt1cy1hcHAvbGliLyB0YXJnZXQvcXVhcmt1cy1hcHAvKi5qYXIg\ndGFyZ2V0L3F1YXJrdXMtYXBwL2FwcC8KICAgICAgdGFyZ2V0L3F1YXJrdXMt\nYXBwL3F1YXJrdXMvCiAgLSBuYW1lOiBCUF9NQVZFTl9CVUlMRF9BUkdVTUVO\nVFMKICAgIHZhbHVlOiBwYWNrYWdlIC1Ec2tpcFRlc3RzPXRydWUgLURtYXZl\nbi5qYXZhZG9jLnNraXA9dHJ1ZSAtRHF1YXJrdXMucGFja2FnZS50eXBlPWZh\nc3QtamFyCiAgLSBuYW1lOiBNQVZFTl9TMklfQVJUSUZBQ1RfRElSUwogICAg\ndmFsdWU6IHRhcmdldC9xdWFya3VzLWFwcAogIC0gbmFtZTogUzJJX1NPVVJD\nRV9ERVBMT1lNRU5UU19GSUxURVIKICAgIHZhbHVlOiBsaWIgcXVhcmt1cy1y\ndW4uamFyIGFwcCBxdWFya3VzCnJ1bjoKICB2b2x1bWVzOiBbXQogIGVudnM6\nIFtdCmRlcGxveToKICBuYW1lc3BhY2U6IHZpcmFqCiAgYW5ub3RhdGlvbnM6\nIHt9CiAgb3B0aW9uczoge30KICBsYWJlbHM6IFtdCiAgaGVhbHRoRW5kcG9p\nbnRzOgogICAgbGl2ZW5lc3M6IC9oZWFsdGgvbGl2ZW5lc3MKICAgIHJlYWRp\nbmVzczogL2hlYWx0aC9yZWFkaW5lc3MK\n", - "encoding": "base64", - "_links": { - "self": "https://api.github.com/repos/vikram-raj/hello-func-quarkus/contents/func.yaml?ref=master", - "git": "https://api.github.com/repos/vikram-raj/hello-func-quarkus/git/blobs/afa4aa0b8b1cce8265bd358ece2aab321d38ad77", - "html": "https://github.com/vikram-raj/hello-func-quarkus/blob/master/func.yaml" - } -} \ No newline at end of file diff --git a/frontend/packages/dev-console/integration-tests/testData/git-import/hello-func-quarkus/repo.json b/frontend/packages/dev-console/integration-tests/testData/git-import/hello-func-quarkus/repo.json deleted file mode 100644 index 29d4f956e4e..00000000000 --- a/frontend/packages/dev-console/integration-tests/testData/git-import/hello-func-quarkus/repo.json +++ /dev/null @@ -1,105 +0,0 @@ -{ - "id": 567175013, - "node_id": "R_kgDOIc5nZQ", - "name": "hello-func-quarkus", - "full_name": "vikram-raj/hello-func-quarkus", - "private": false, - "owner": { - "login": "vikram-raj", - "id": 2561818, - "node_id": "MDQ6VXNlcjI1NjE4MTg=", - "avatar_url": "https://avatars.githubusercontent.com/u/2561818?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/vikram-raj", - "html_url": "https://github.com/vikram-raj", - "followers_url": "https://api.github.com/users/vikram-raj/followers", - "following_url": "https://api.github.com/users/vikram-raj/following{/other_user}", - "gists_url": "https://api.github.com/users/vikram-raj/gists{/gist_id}", - "starred_url": "https://api.github.com/users/vikram-raj/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/vikram-raj/subscriptions", - "organizations_url": "https://api.github.com/users/vikram-raj/orgs", - "repos_url": "https://api.github.com/users/vikram-raj/repos", - "events_url": "https://api.github.com/users/vikram-raj/events{/privacy}", - "received_events_url": "https://api.github.com/users/vikram-raj/received_events", - "type": "User", - "site_admin": false - }, - "html_url": "https://github.com/vikram-raj/hello-func-quarkus", - "description": null, - "fork": false, - "url": "https://api.github.com/repos/vikram-raj/hello-func-quarkus", - "forks_url": "https://api.github.com/repos/vikram-raj/hello-func-quarkus/forks", - "keys_url": "https://api.github.com/repos/vikram-raj/hello-func-quarkus/keys{/key_id}", - "collaborators_url": "https://api.github.com/repos/vikram-raj/hello-func-quarkus/collaborators{/collaborator}", - "teams_url": "https://api.github.com/repos/vikram-raj/hello-func-quarkus/teams", - "hooks_url": "https://api.github.com/repos/vikram-raj/hello-func-quarkus/hooks", - "issue_events_url": "https://api.github.com/repos/vikram-raj/hello-func-quarkus/issues/events{/number}", - "events_url": "https://api.github.com/repos/vikram-raj/hello-func-quarkus/events", - "assignees_url": "https://api.github.com/repos/vikram-raj/hello-func-quarkus/assignees{/user}", - "branches_url": "https://api.github.com/repos/vikram-raj/hello-func-quarkus/branches{/branch}", - "tags_url": "https://api.github.com/repos/vikram-raj/hello-func-quarkus/tags", - "blobs_url": "https://api.github.com/repos/vikram-raj/hello-func-quarkus/git/blobs{/sha}", - "git_tags_url": "https://api.github.com/repos/vikram-raj/hello-func-quarkus/git/tags{/sha}", - "git_refs_url": "https://api.github.com/repos/vikram-raj/hello-func-quarkus/git/refs{/sha}", - "trees_url": "https://api.github.com/repos/vikram-raj/hello-func-quarkus/git/trees{/sha}", - "statuses_url": "https://api.github.com/repos/vikram-raj/hello-func-quarkus/statuses/{sha}", - "languages_url": "https://api.github.com/repos/vikram-raj/hello-func-quarkus/languages", - "stargazers_url": "https://api.github.com/repos/vikram-raj/hello-func-quarkus/stargazers", - "contributors_url": "https://api.github.com/repos/vikram-raj/hello-func-quarkus/contributors", - "subscribers_url": "https://api.github.com/repos/vikram-raj/hello-func-quarkus/subscribers", - "subscription_url": "https://api.github.com/repos/vikram-raj/hello-func-quarkus/subscription", - "commits_url": "https://api.github.com/repos/vikram-raj/hello-func-quarkus/commits{/sha}", - "git_commits_url": "https://api.github.com/repos/vikram-raj/hello-func-quarkus/git/commits{/sha}", - "comments_url": "https://api.github.com/repos/vikram-raj/hello-func-quarkus/comments{/number}", - "issue_comment_url": "https://api.github.com/repos/vikram-raj/hello-func-quarkus/issues/comments{/number}", - "contents_url": "https://api.github.com/repos/vikram-raj/hello-func-quarkus/contents/{+path}", - "compare_url": "https://api.github.com/repos/vikram-raj/hello-func-quarkus/compare/{base}...{head}", - "merges_url": "https://api.github.com/repos/vikram-raj/hello-func-quarkus/merges", - "archive_url": "https://api.github.com/repos/vikram-raj/hello-func-quarkus/{archive_format}{/ref}", - "downloads_url": "https://api.github.com/repos/vikram-raj/hello-func-quarkus/downloads", - "issues_url": "https://api.github.com/repos/vikram-raj/hello-func-quarkus/issues{/number}", - "pulls_url": "https://api.github.com/repos/vikram-raj/hello-func-quarkus/pulls{/number}", - "milestones_url": "https://api.github.com/repos/vikram-raj/hello-func-quarkus/milestones{/number}", - "notifications_url": "https://api.github.com/repos/vikram-raj/hello-func-quarkus/notifications{?since,all,participating}", - "labels_url": "https://api.github.com/repos/vikram-raj/hello-func-quarkus/labels{/name}", - "releases_url": "https://api.github.com/repos/vikram-raj/hello-func-quarkus/releases{/id}", - "deployments_url": "https://api.github.com/repos/vikram-raj/hello-func-quarkus/deployments", - "created_at": "2022-11-17T08:26:21Z", - "updated_at": "2022-11-17T08:27:02Z", - "pushed_at": "2023-01-17T01:31:12Z", - "git_url": "git://github.com/vikram-raj/hello-func-quarkus.git", - "ssh_url": "git@github.com:vikram-raj/hello-func-quarkus.git", - "clone_url": "https://github.com/vikram-raj/hello-func-quarkus.git", - "svn_url": "https://github.com/vikram-raj/hello-func-quarkus", - "homepage": null, - "size": 13, - "stargazers_count": 0, - "watchers_count": 0, - "language": "Java", - "has_issues": true, - "has_projects": true, - "has_downloads": true, - "has_wiki": true, - "has_pages": false, - "has_discussions": false, - "forks_count": 0, - "mirror_url": null, - "archived": false, - "disabled": false, - "open_issues_count": 0, - "license": null, - "allow_forking": true, - "is_template": false, - "web_commit_signoff_required": false, - "topics": [ - - ], - "visibility": "public", - "forks": 0, - "open_issues": 0, - "watchers": 0, - "default_branch": "master", - "temp_clone_token": null, - "network_count": 0, - "subscribers_count": 1 - } diff --git a/frontend/packages/dev-console/integration-tests/testData/git-import/kn-func-typescript-cloudevents/contents.json b/frontend/packages/dev-console/integration-tests/testData/git-import/kn-func-typescript-cloudevents/contents.json deleted file mode 100644 index c23b1a08cef..00000000000 --- a/frontend/packages/dev-console/integration-tests/testData/git-import/kn-func-typescript-cloudevents/contents.json +++ /dev/null @@ -1,162 +0,0 @@ -[ - { - "name": ".eslintrc", - "path": ".eslintrc", - "sha": "03c44bafb5e59cc0a5931256afc71df24937f44d", - "size": 457, - "url": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-cloudevents/contents/.eslintrc?ref=main", - "html_url": "https://github.com/openshift-dev-console/kn-func-typescript-cloudevents/blob/main/.eslintrc", - "git_url": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-cloudevents/git/blobs/03c44bafb5e59cc0a5931256afc71df24937f44d", - "download_url": "https://raw.githubusercontent.com/openshift-dev-console/kn-func-typescript-cloudevents/main/.eslintrc", - "type": "file", - "_links": { - "self": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-cloudevents/contents/.eslintrc?ref=main", - "git": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-cloudevents/git/blobs/03c44bafb5e59cc0a5931256afc71df24937f44d", - "html": "https://github.com/openshift-dev-console/kn-func-typescript-cloudevents/blob/main/.eslintrc" - } - }, - { - "name": ".gitignore", - "path": ".gitignore", - "sha": "3abd5fdff11e295a0d72346ac99fe7034da1c6cb", - "size": 126, - "url": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-cloudevents/contents/.gitignore?ref=main", - "html_url": "https://github.com/openshift-dev-console/kn-func-typescript-cloudevents/blob/main/.gitignore", - "git_url": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-cloudevents/git/blobs/3abd5fdff11e295a0d72346ac99fe7034da1c6cb", - "download_url": "https://raw.githubusercontent.com/openshift-dev-console/kn-func-typescript-cloudevents/main/.gitignore", - "type": "file", - "_links": { - "self": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-cloudevents/contents/.gitignore?ref=main", - "git": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-cloudevents/git/blobs/3abd5fdff11e295a0d72346ac99fe7034da1c6cb", - "html": "https://github.com/openshift-dev-console/kn-func-typescript-cloudevents/blob/main/.gitignore" - } - }, - { - "name": ".prettierrc", - "path": ".prettierrc", - "sha": "d2b80b80b387b3c5159b7f20413844850ed51748", - "size": 90, - "url": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-cloudevents/contents/.prettierrc?ref=main", - "html_url": "https://github.com/openshift-dev-console/kn-func-typescript-cloudevents/blob/main/.prettierrc", - "git_url": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-cloudevents/git/blobs/d2b80b80b387b3c5159b7f20413844850ed51748", - "download_url": "https://raw.githubusercontent.com/openshift-dev-console/kn-func-typescript-cloudevents/main/.prettierrc", - "type": "file", - "_links": { - "self": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-cloudevents/contents/.prettierrc?ref=main", - "git": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-cloudevents/git/blobs/d2b80b80b387b3c5159b7f20413844850ed51748", - "html": "https://github.com/openshift-dev-console/kn-func-typescript-cloudevents/blob/main/.prettierrc" - } - }, - { - "name": "README.md", - "path": "README.md", - "sha": "956f08860c7ccbdfd25c35b4e645155fc085e070", - "size": 1656, - "url": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-cloudevents/contents/README.md?ref=main", - "html_url": "https://github.com/openshift-dev-console/kn-func-typescript-cloudevents/blob/main/README.md", - "git_url": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-cloudevents/git/blobs/956f08860c7ccbdfd25c35b4e645155fc085e070", - "download_url": "https://raw.githubusercontent.com/openshift-dev-console/kn-func-typescript-cloudevents/main/README.md", - "type": "file", - "_links": { - "self": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-cloudevents/contents/README.md?ref=main", - "git": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-cloudevents/git/blobs/956f08860c7ccbdfd25c35b4e645155fc085e070", - "html": "https://github.com/openshift-dev-console/kn-func-typescript-cloudevents/blob/main/README.md" - } - }, - { - "name": "func.yaml", - "path": "func.yaml", - "sha": "a9a73b03d5b80a12919f514f070cbe0fc6316a80", - "size": 432, - "url": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-cloudevents/contents/func.yaml?ref=main", - "html_url": "https://github.com/openshift-dev-console/kn-func-typescript-cloudevents/blob/main/func.yaml", - "git_url": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-cloudevents/git/blobs/a9a73b03d5b80a12919f514f070cbe0fc6316a80", - "download_url": "https://raw.githubusercontent.com/openshift-dev-console/kn-func-typescript-cloudevents/main/func.yaml", - "type": "file", - "_links": { - "self": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-cloudevents/contents/func.yaml?ref=main", - "git": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-cloudevents/git/blobs/a9a73b03d5b80a12919f514f070cbe0fc6316a80", - "html": "https://github.com/openshift-dev-console/kn-func-typescript-cloudevents/blob/main/func.yaml" - } - }, - { - "name": "package-lock.json", - "path": "package-lock.json", - "sha": "7d701ae401bf3fb62ea82bcca2a30ceb8bd0a251", - "size": 297047, - "url": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-cloudevents/contents/package-lock.json?ref=main", - "html_url": "https://github.com/openshift-dev-console/kn-func-typescript-cloudevents/blob/main/package-lock.json", - "git_url": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-cloudevents/git/blobs/7d701ae401bf3fb62ea82bcca2a30ceb8bd0a251", - "download_url": "https://raw.githubusercontent.com/openshift-dev-console/kn-func-typescript-cloudevents/main/package-lock.json", - "type": "file", - "_links": { - "self": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-cloudevents/contents/package-lock.json?ref=main", - "git": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-cloudevents/git/blobs/7d701ae401bf3fb62ea82bcca2a30ceb8bd0a251", - "html": "https://github.com/openshift-dev-console/kn-func-typescript-cloudevents/blob/main/package-lock.json" - } - }, - { - "name": "package.json", - "path": "package.json", - "sha": "f4dc806d2f050d1a96cb9e47301015d48a723c87", - "size": 1336, - "url": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-cloudevents/contents/package.json?ref=main", - "html_url": "https://github.com/openshift-dev-console/kn-func-typescript-cloudevents/blob/main/package.json", - "git_url": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-cloudevents/git/blobs/f4dc806d2f050d1a96cb9e47301015d48a723c87", - "download_url": "https://raw.githubusercontent.com/openshift-dev-console/kn-func-typescript-cloudevents/main/package.json", - "type": "file", - "_links": { - "self": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-cloudevents/contents/package.json?ref=main", - "git": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-cloudevents/git/blobs/f4dc806d2f050d1a96cb9e47301015d48a723c87", - "html": "https://github.com/openshift-dev-console/kn-func-typescript-cloudevents/blob/main/package.json" - } - }, - { - "name": "src", - "path": "src", - "sha": "93a375a5a8bf422e82e2cb600f40e50fc487f0af", - "size": 0, - "url": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-cloudevents/contents/src?ref=main", - "html_url": "https://github.com/openshift-dev-console/kn-func-typescript-cloudevents/tree/main/src", - "git_url": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-cloudevents/git/trees/93a375a5a8bf422e82e2cb600f40e50fc487f0af", - "download_url": null, - "type": "dir", - "_links": { - "self": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-cloudevents/contents/src?ref=main", - "git": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-cloudevents/git/trees/93a375a5a8bf422e82e2cb600f40e50fc487f0af", - "html": "https://github.com/openshift-dev-console/kn-func-typescript-cloudevents/tree/main/src" - } - }, - { - "name": "test", - "path": "test", - "sha": "c4e8f3e9a0104139eacf2869a3250615d68de213", - "size": 0, - "url": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-cloudevents/contents/test?ref=main", - "html_url": "https://github.com/openshift-dev-console/kn-func-typescript-cloudevents/tree/main/test", - "git_url": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-cloudevents/git/trees/c4e8f3e9a0104139eacf2869a3250615d68de213", - "download_url": null, - "type": "dir", - "_links": { - "self": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-cloudevents/contents/test?ref=main", - "git": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-cloudevents/git/trees/c4e8f3e9a0104139eacf2869a3250615d68de213", - "html": "https://github.com/openshift-dev-console/kn-func-typescript-cloudevents/tree/main/test" - } - }, - { - "name": "tsconfig.json", - "path": "tsconfig.json", - "sha": "bbe4487b41fd333aea843fd133e3d250160fb703", - "size": 1830, - "url": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-cloudevents/contents/tsconfig.json?ref=main", - "html_url": "https://github.com/openshift-dev-console/kn-func-typescript-cloudevents/blob/main/tsconfig.json", - "git_url": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-cloudevents/git/blobs/bbe4487b41fd333aea843fd133e3d250160fb703", - "download_url": "https://raw.githubusercontent.com/openshift-dev-console/kn-func-typescript-cloudevents/main/tsconfig.json", - "type": "file", - "_links": { - "self": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-cloudevents/contents/tsconfig.json?ref=main", - "git": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-cloudevents/git/blobs/bbe4487b41fd333aea843fd133e3d250160fb703", - "html": "https://github.com/openshift-dev-console/kn-func-typescript-cloudevents/blob/main/tsconfig.json" - } - } - ] diff --git a/frontend/packages/dev-console/integration-tests/testData/git-import/kn-func-typescript-cloudevents/func.json b/frontend/packages/dev-console/integration-tests/testData/git-import/kn-func-typescript-cloudevents/func.json deleted file mode 100644 index c26bf735e61..00000000000 --- a/frontend/packages/dev-console/integration-tests/testData/git-import/kn-func-typescript-cloudevents/func.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "name": "func.yaml", - "path": "func.yaml", - "sha": "a9a73b03d5b80a12919f514f070cbe0fc6316a80", - "size": 432, - "url": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-cloudevents/contents/func.yaml?ref=main", - "html_url": "https://github.com/openshift-dev-console/kn-func-typescript-cloudevents/blob/main/func.yaml", - "git_url": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-cloudevents/git/blobs/a9a73b03d5b80a12919f514f070cbe0fc6316a80", - "download_url": "https://raw.githubusercontent.com/openshift-dev-console/kn-func-typescript-cloudevents/main/func.yaml", - "type": "file", - "content": "c3BlY1ZlcnNpb246IDAuMzUuMApuYW1lOiBrbi1mdW5jLXR5cGVzY3JpcHQt\nY2xvdWRldmVudHMKcnVudGltZTogdHlwZXNjcmlwdApyZWdpc3RyeTogIiIK\naW1hZ2U6ICIiCmltYWdlRGlnZXN0OiAiIgppbnZva2U6IGNsb3VkZXZlbnQK\nYnVpbGQ6CiAgYnVpbGRwYWNrczogW10KICBidWlsZGVyOiBzMmkKICBidWls\nZEVudnM6CiAgLSBuYW1lOiBCUF9OT0RFX1JVTl9TQ1JJUFRTCiAgICB2YWx1\nZTogYnVpbGQKcnVuOgogIHZvbHVtZXM6IFtdCiAgZW52czogW10KZGVwbG95\nOgogIG5hbWVzcGFjZTogIiIKICByZW1vdGU6IGZhbHNlCiAgYW5ub3RhdGlv\nbnM6IHt9CiAgb3B0aW9uczoge30KICBsYWJlbHM6IFtdCiAgaGVhbHRoRW5k\ncG9pbnRzOgogICAgbGl2ZW5lc3M6IC9oZWFsdGgvbGl2ZW5lc3MKICAgIHJl\nYWRpbmVzczogL2hlYWx0aC9yZWFkaW5lc3MK\n", - "encoding": "base64", - "_links": { - "self": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-cloudevents/contents/func.yaml?ref=main", - "git": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-cloudevents/git/blobs/a9a73b03d5b80a12919f514f070cbe0fc6316a80", - "html": "https://github.com/openshift-dev-console/kn-func-typescript-cloudevents/blob/main/func.yaml" - } -} \ No newline at end of file diff --git a/frontend/packages/dev-console/integration-tests/testData/git-import/kn-func-typescript-cloudevents/package.json b/frontend/packages/dev-console/integration-tests/testData/git-import/kn-func-typescript-cloudevents/package.json deleted file mode 100644 index 27ba4525fc2..00000000000 --- a/frontend/packages/dev-console/integration-tests/testData/git-import/kn-func-typescript-cloudevents/package.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "name": "package.json", - "path": "package.json", - "sha": "f4dc806d2f050d1a96cb9e47301015d48a723c87", - "size": 1336, - "url": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-cloudevents/contents/package.json?ref=main", - "html_url": "https://github.com/openshift-dev-console/kn-func-typescript-cloudevents/blob/main/package.json", - "git_url": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-cloudevents/git/blobs/f4dc806d2f050d1a96cb9e47301015d48a723c87", - "download_url": "https://raw.githubusercontent.com/openshift-dev-console/kn-func-typescript-cloudevents/main/package.json", - "type": "file", - "content": "ewogICJuYW1lIjogImV2ZW50LWhhbmRsZXIiLAogICJ2ZXJzaW9uIjogIjAu\nMS4wIiwKICAiZGVzY3JpcHRpb24iOiAiVHlwZVNjcmlwdCBDbG91ZEV2ZW50\nIEhhbmRsZXIiLAogICJsaWNlbnNlIjogIkFwYWNoZS0yLjAiLAogICJyZXBv\nc2l0b3J5IjogewogICAgInR5cGUiOiAiZ2l0IiwKICAgICJ1cmwiOiAiIgog\nIH0sCiAgInNjcmlwdHMiOiB7CiAgICAiYnVpbGQiOiAibnB4IC1wIHR5cGVz\nY3JpcHQgdHNjIiwKICAgICJwcmV0ZXN0IjogIm5wbSBydW4gbGludCAmJiBu\ncG0gcnVuIGJ1aWxkIiwKICAgICJ0ZXN0OnVuaXQiOiAidHMtbm9kZSBub2Rl\nX21vZHVsZXMvdGFwZS9iaW4vdGFwZSB0ZXN0L3VuaXQudHMiLAogICAgInRl\nc3Q6aW50ZWdyYXRpb24iOiAidHMtbm9kZSBub2RlX21vZHVsZXMvdGFwZS9i\naW4vdGFwZSB0ZXN0L2ludGVncmF0aW9uLnRzIiwKICAgICJ0ZXN0IjogIm5w\nbSBydW4gdGVzdDp1bml0ICYmIG5wbSBydW4gdGVzdDppbnRlZ3JhdGlvbiIs\nCiAgICAic3RhcnQiOiAiRlVOQ19MT0dfTEVWRUw9aW5mbyBmYWFzLWpzLXJ1\nbnRpbWUgLi9idWlsZC9pbmRleC5qcyIsCiAgICAibGludCI6ICJlc2xpbnQg\nXCJzcmMvKiovKi57anMsdHMsdHN4fVwiIFwidGVzdC8qKi8qLntqcyx0cyx0\nc3h9XCIgLS1xdWlldCIsCiAgICAiZGVidWciOiAibm9kZW1vbiAtLWluc3Bl\nY3QgLi9ub2RlX21vZHVsZXMvZmFhcy1qcy1ydW50aW1lL2Jpbi9jbGkuanMg\nLi9idWlsZC9pbmRleC5qcyIKICB9LAogICJkZXZEZXBlbmRlbmNpZXMiOiB7\nCiAgICAiQHR5cGVzL3RhcGUiOiAiXjQuMTMuMCIsCiAgICAiQHR5cGVzY3Jp\ncHQtZXNsaW50L2VzbGludC1wbHVnaW4iOiAiXjQuMjQuMCIsCiAgICAiQHR5\ncGVzY3JpcHQtZXNsaW50L3BhcnNlciI6ICJeNC4yNC4wIiwKICAgICJlc2xp\nbnQiOiAiXjcuMjYuMCIsCiAgICAiZXNsaW50LWNvbmZpZy1wcmV0dGllciI6\nICJeOC4zLjAiLAogICAgImVzbGludC1wbHVnaW4tcHJldHRpZXIiOiAiXjMu\nNC4wIiwKICAgICJub2RlbW9uIjogIl4yLjAuNCIsCiAgICAicHJldHRpZXIi\nOiAiXjIuMy4wIiwKICAgICJzdXBlcnRlc3QiOiAiXjYuMy4xIiwKICAgICJ0\nYXBlIjogIl40LjEzLjAiLAogICAgInRzLW5vZGUiOiAiXjkuMS4xIiwKICAg\nICJ0c2QiOiAiXjAuMjQuMSIsCiAgICAidHNsaW50LWNvbmZpZy1wcmV0dGll\nciI6ICJeMS4xOC4wIiwKICAgICJ0eXBlc2NyaXB0IjogIl40LjIuNCIKICB9\nLAogICJkZXBlbmRlbmNpZXMiOiB7CiAgICAiQHR5cGVzL25vZGUiOiAiXjE2\nLjExLjEyIiwKICAgICJjbG91ZGV2ZW50cyI6ICJeNi4wLjMiLAogICAgImZh\nYXMtanMtcnVudGltZSI6ICJeMC45LjciCiAgfQp9Cg==\n", - "encoding": "base64", - "_links": { - "self": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-cloudevents/contents/package.json?ref=main", - "git": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-cloudevents/git/blobs/f4dc806d2f050d1a96cb9e47301015d48a723c87", - "html": "https://github.com/openshift-dev-console/kn-func-typescript-cloudevents/blob/main/package.json" - } -} \ No newline at end of file diff --git a/frontend/packages/dev-console/integration-tests/testData/git-import/kn-func-typescript-cloudevents/repo.json b/frontend/packages/dev-console/integration-tests/testData/git-import/kn-func-typescript-cloudevents/repo.json deleted file mode 100644 index e4cf8b0478c..00000000000 --- a/frontend/packages/dev-console/integration-tests/testData/git-import/kn-func-typescript-cloudevents/repo.json +++ /dev/null @@ -1,125 +0,0 @@ -{ - "id": 621518463, - "node_id": "R_kgDOJQuefw", - "name": "kn-func-typescript-cloudevents", - "full_name": "openshift-dev-console/kn-func-typescript-cloudevents", - "private": false, - "owner": { - "login": "openshift-dev-console", - "id": 123080219, - "node_id": "O_kgDOB1YOGw", - "avatar_url": "https://avatars.githubusercontent.com/u/123080219?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/openshift-dev-console", - "html_url": "https://github.com/openshift-dev-console", - "followers_url": "https://api.github.com/users/openshift-dev-console/followers", - "following_url": "https://api.github.com/users/openshift-dev-console/following{/other_user}", - "gists_url": "https://api.github.com/users/openshift-dev-console/gists{/gist_id}", - "starred_url": "https://api.github.com/users/openshift-dev-console/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/openshift-dev-console/subscriptions", - "organizations_url": "https://api.github.com/users/openshift-dev-console/orgs", - "repos_url": "https://api.github.com/users/openshift-dev-console/repos", - "events_url": "https://api.github.com/users/openshift-dev-console/events{/privacy}", - "received_events_url": "https://api.github.com/users/openshift-dev-console/received_events", - "type": "Organization", - "site_admin": false - }, - "html_url": "https://github.com/openshift-dev-console/kn-func-typescript-cloudevents", - "description": "Knative func example created with [kn] func create -l typescript -t cloudevents", - "fork": false, - "url": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-cloudevents", - "forks_url": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-cloudevents/forks", - "keys_url": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-cloudevents/keys{/key_id}", - "collaborators_url": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-cloudevents/collaborators{/collaborator}", - "teams_url": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-cloudevents/teams", - "hooks_url": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-cloudevents/hooks", - "issue_events_url": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-cloudevents/issues/events{/number}", - "events_url": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-cloudevents/events", - "assignees_url": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-cloudevents/assignees{/user}", - "branches_url": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-cloudevents/branches{/branch}", - "tags_url": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-cloudevents/tags", - "blobs_url": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-cloudevents/git/blobs{/sha}", - "git_tags_url": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-cloudevents/git/tags{/sha}", - "git_refs_url": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-cloudevents/git/refs{/sha}", - "trees_url": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-cloudevents/git/trees{/sha}", - "statuses_url": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-cloudevents/statuses/{sha}", - "languages_url": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-cloudevents/languages", - "stargazers_url": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-cloudevents/stargazers", - "contributors_url": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-cloudevents/contributors", - "subscribers_url": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-cloudevents/subscribers", - "subscription_url": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-cloudevents/subscription", - "commits_url": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-cloudevents/commits{/sha}", - "git_commits_url": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-cloudevents/git/commits{/sha}", - "comments_url": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-cloudevents/comments{/number}", - "issue_comment_url": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-cloudevents/issues/comments{/number}", - "contents_url": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-cloudevents/contents/{+path}", - "compare_url": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-cloudevents/compare/{base}...{head}", - "merges_url": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-cloudevents/merges", - "archive_url": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-cloudevents/{archive_format}{/ref}", - "downloads_url": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-cloudevents/downloads", - "issues_url": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-cloudevents/issues{/number}", - "pulls_url": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-cloudevents/pulls{/number}", - "milestones_url": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-cloudevents/milestones{/number}", - "notifications_url": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-cloudevents/notifications{?since,all,participating}", - "labels_url": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-cloudevents/labels{/name}", - "releases_url": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-cloudevents/releases{/id}", - "deployments_url": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-cloudevents/deployments", - "created_at": "2023-03-30T20:34:38Z", - "updated_at": "2023-03-30T21:00:31Z", - "pushed_at": "2023-03-30T20:53:09Z", - "git_url": "git://github.com/openshift-dev-console/kn-func-typescript-cloudevents.git", - "ssh_url": "git@github.com:openshift-dev-console/kn-func-typescript-cloudevents.git", - "clone_url": "https://github.com/openshift-dev-console/kn-func-typescript-cloudevents.git", - "svn_url": "https://github.com/openshift-dev-console/kn-func-typescript-cloudevents", - "homepage": "", - "size": 84, - "stargazers_count": 0, - "watchers_count": 0, - "language": "TypeScript", - "has_issues": true, - "has_projects": true, - "has_downloads": true, - "has_wiki": true, - "has_pages": false, - "has_discussions": false, - "forks_count": 1, - "mirror_url": null, - "archived": false, - "disabled": false, - "open_issues_count": 0, - "license": null, - "allow_forking": true, - "is_template": false, - "web_commit_signoff_required": false, - "topics": [ - - ], - "visibility": "public", - "forks": 1, - "open_issues": 0, - "watchers": 0, - "default_branch": "main", - "temp_clone_token": null, - "organization": { - "login": "openshift-dev-console", - "id": 123080219, - "node_id": "O_kgDOB1YOGw", - "avatar_url": "https://avatars.githubusercontent.com/u/123080219?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/openshift-dev-console", - "html_url": "https://github.com/openshift-dev-console", - "followers_url": "https://api.github.com/users/openshift-dev-console/followers", - "following_url": "https://api.github.com/users/openshift-dev-console/following{/other_user}", - "gists_url": "https://api.github.com/users/openshift-dev-console/gists{/gist_id}", - "starred_url": "https://api.github.com/users/openshift-dev-console/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/openshift-dev-console/subscriptions", - "organizations_url": "https://api.github.com/users/openshift-dev-console/orgs", - "repos_url": "https://api.github.com/users/openshift-dev-console/repos", - "events_url": "https://api.github.com/users/openshift-dev-console/events{/privacy}", - "received_events_url": "https://api.github.com/users/openshift-dev-console/received_events", - "type": "Organization", - "site_admin": false - }, - "network_count": 1, - "subscribers_count": 1 - } diff --git a/frontend/packages/dev-console/integration-tests/testData/git-import/kn-func-typescript-http/contents.json b/frontend/packages/dev-console/integration-tests/testData/git-import/kn-func-typescript-http/contents.json deleted file mode 100644 index b187270652f..00000000000 --- a/frontend/packages/dev-console/integration-tests/testData/git-import/kn-func-typescript-http/contents.json +++ /dev/null @@ -1,162 +0,0 @@ -[ - { - "name": ".eslintrc", - "path": ".eslintrc", - "sha": "f9d619ca7dbe59d7fa9ca8fd7c5a9122b254d03d", - "size": 458, - "url": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-http/contents/.eslintrc?ref=main", - "html_url": "https://github.com/openshift-dev-console/kn-func-typescript-http/blob/main/.eslintrc", - "git_url": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-http/git/blobs/f9d619ca7dbe59d7fa9ca8fd7c5a9122b254d03d", - "download_url": "https://raw.githubusercontent.com/openshift-dev-console/kn-func-typescript-http/main/.eslintrc", - "type": "file", - "_links": { - "self": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-http/contents/.eslintrc?ref=main", - "git": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-http/git/blobs/f9d619ca7dbe59d7fa9ca8fd7c5a9122b254d03d", - "html": "https://github.com/openshift-dev-console/kn-func-typescript-http/blob/main/.eslintrc" - } - }, - { - "name": ".gitignore", - "path": ".gitignore", - "sha": "3abd5fdff11e295a0d72346ac99fe7034da1c6cb", - "size": 126, - "url": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-http/contents/.gitignore?ref=main", - "html_url": "https://github.com/openshift-dev-console/kn-func-typescript-http/blob/main/.gitignore", - "git_url": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-http/git/blobs/3abd5fdff11e295a0d72346ac99fe7034da1c6cb", - "download_url": "https://raw.githubusercontent.com/openshift-dev-console/kn-func-typescript-http/main/.gitignore", - "type": "file", - "_links": { - "self": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-http/contents/.gitignore?ref=main", - "git": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-http/git/blobs/3abd5fdff11e295a0d72346ac99fe7034da1c6cb", - "html": "https://github.com/openshift-dev-console/kn-func-typescript-http/blob/main/.gitignore" - } - }, - { - "name": ".prettierrc", - "path": ".prettierrc", - "sha": "0706fd1552751fdb3b3e69defb7135b426b18616", - "size": 90, - "url": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-http/contents/.prettierrc?ref=main", - "html_url": "https://github.com/openshift-dev-console/kn-func-typescript-http/blob/main/.prettierrc", - "git_url": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-http/git/blobs/0706fd1552751fdb3b3e69defb7135b426b18616", - "download_url": "https://raw.githubusercontent.com/openshift-dev-console/kn-func-typescript-http/main/.prettierrc", - "type": "file", - "_links": { - "self": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-http/contents/.prettierrc?ref=main", - "git": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-http/git/blobs/0706fd1552751fdb3b3e69defb7135b426b18616", - "html": "https://github.com/openshift-dev-console/kn-func-typescript-http/blob/main/.prettierrc" - } - }, - { - "name": "README.md", - "path": "README.md", - "sha": "d6cc12f6d20a25cf0bf414ca0099e0dd1270d8c9", - "size": 1889, - "url": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-http/contents/README.md?ref=main", - "html_url": "https://github.com/openshift-dev-console/kn-func-typescript-http/blob/main/README.md", - "git_url": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-http/git/blobs/d6cc12f6d20a25cf0bf414ca0099e0dd1270d8c9", - "download_url": "https://raw.githubusercontent.com/openshift-dev-console/kn-func-typescript-http/main/README.md", - "type": "file", - "_links": { - "self": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-http/contents/README.md?ref=main", - "git": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-http/git/blobs/d6cc12f6d20a25cf0bf414ca0099e0dd1270d8c9", - "html": "https://github.com/openshift-dev-console/kn-func-typescript-http/blob/main/README.md" - } - }, - { - "name": "func.yaml", - "path": "func.yaml", - "sha": "91767c9c02cee2efe4fe901e10ca94a2fbda3f54", - "size": 406, - "url": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-http/contents/func.yaml?ref=main", - "html_url": "https://github.com/openshift-dev-console/kn-func-typescript-http/blob/main/func.yaml", - "git_url": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-http/git/blobs/91767c9c02cee2efe4fe901e10ca94a2fbda3f54", - "download_url": "https://raw.githubusercontent.com/openshift-dev-console/kn-func-typescript-http/main/func.yaml", - "type": "file", - "_links": { - "self": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-http/contents/func.yaml?ref=main", - "git": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-http/git/blobs/91767c9c02cee2efe4fe901e10ca94a2fbda3f54", - "html": "https://github.com/openshift-dev-console/kn-func-typescript-http/blob/main/func.yaml" - } - }, - { - "name": "package-lock.json", - "path": "package-lock.json", - "sha": "ac311a535ab217264cfd5d8510112a40f4f07f9b", - "size": 296890, - "url": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-http/contents/package-lock.json?ref=main", - "html_url": "https://github.com/openshift-dev-console/kn-func-typescript-http/blob/main/package-lock.json", - "git_url": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-http/git/blobs/ac311a535ab217264cfd5d8510112a40f4f07f9b", - "download_url": "https://raw.githubusercontent.com/openshift-dev-console/kn-func-typescript-http/main/package-lock.json", - "type": "file", - "_links": { - "self": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-http/contents/package-lock.json?ref=main", - "git": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-http/git/blobs/ac311a535ab217264cfd5d8510112a40f4f07f9b", - "html": "https://github.com/openshift-dev-console/kn-func-typescript-http/blob/main/package-lock.json" - } - }, - { - "name": "package.json", - "path": "package.json", - "sha": "3736c3a890ae67db07e77ec5b12fd22680d50faf", - "size": 1301, - "url": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-http/contents/package.json?ref=main", - "html_url": "https://github.com/openshift-dev-console/kn-func-typescript-http/blob/main/package.json", - "git_url": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-http/git/blobs/3736c3a890ae67db07e77ec5b12fd22680d50faf", - "download_url": "https://raw.githubusercontent.com/openshift-dev-console/kn-func-typescript-http/main/package.json", - "type": "file", - "_links": { - "self": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-http/contents/package.json?ref=main", - "git": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-http/git/blobs/3736c3a890ae67db07e77ec5b12fd22680d50faf", - "html": "https://github.com/openshift-dev-console/kn-func-typescript-http/blob/main/package.json" - } - }, - { - "name": "src", - "path": "src", - "sha": "80c0fadc3c8404384d87c8bd0cfadada12556314", - "size": 0, - "url": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-http/contents/src?ref=main", - "html_url": "https://github.com/openshift-dev-console/kn-func-typescript-http/tree/main/src", - "git_url": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-http/git/trees/80c0fadc3c8404384d87c8bd0cfadada12556314", - "download_url": null, - "type": "dir", - "_links": { - "self": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-http/contents/src?ref=main", - "git": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-http/git/trees/80c0fadc3c8404384d87c8bd0cfadada12556314", - "html": "https://github.com/openshift-dev-console/kn-func-typescript-http/tree/main/src" - } - }, - { - "name": "test", - "path": "test", - "sha": "9c3fe3b01ca33d4caefa4599074dbd3634f9d809", - "size": 0, - "url": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-http/contents/test?ref=main", - "html_url": "https://github.com/openshift-dev-console/kn-func-typescript-http/tree/main/test", - "git_url": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-http/git/trees/9c3fe3b01ca33d4caefa4599074dbd3634f9d809", - "download_url": null, - "type": "dir", - "_links": { - "self": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-http/contents/test?ref=main", - "git": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-http/git/trees/9c3fe3b01ca33d4caefa4599074dbd3634f9d809", - "html": "https://github.com/openshift-dev-console/kn-func-typescript-http/tree/main/test" - } - }, - { - "name": "tsconfig.json", - "path": "tsconfig.json", - "sha": "bbe4487b41fd333aea843fd133e3d250160fb703", - "size": 1830, - "url": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-http/contents/tsconfig.json?ref=main", - "html_url": "https://github.com/openshift-dev-console/kn-func-typescript-http/blob/main/tsconfig.json", - "git_url": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-http/git/blobs/bbe4487b41fd333aea843fd133e3d250160fb703", - "download_url": "https://raw.githubusercontent.com/openshift-dev-console/kn-func-typescript-http/main/tsconfig.json", - "type": "file", - "_links": { - "self": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-http/contents/tsconfig.json?ref=main", - "git": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-http/git/blobs/bbe4487b41fd333aea843fd133e3d250160fb703", - "html": "https://github.com/openshift-dev-console/kn-func-typescript-http/blob/main/tsconfig.json" - } - } - ] diff --git a/frontend/packages/dev-console/integration-tests/testData/git-import/kn-func-typescript-http/func.json b/frontend/packages/dev-console/integration-tests/testData/git-import/kn-func-typescript-http/func.json deleted file mode 100644 index 4e34374ced3..00000000000 --- a/frontend/packages/dev-console/integration-tests/testData/git-import/kn-func-typescript-http/func.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "name": "func.yaml", - "path": "func.yaml", - "sha": "91767c9c02cee2efe4fe901e10ca94a2fbda3f54", - "size": 406, - "url": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-http/contents/func.yaml?ref=main", - "html_url": "https://github.com/openshift-dev-console/kn-func-typescript-http/blob/main/func.yaml", - "git_url": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-http/git/blobs/91767c9c02cee2efe4fe901e10ca94a2fbda3f54", - "download_url": "https://raw.githubusercontent.com/openshift-dev-console/kn-func-typescript-http/main/func.yaml", - "type": "file", - "content": "c3BlY1ZlcnNpb246IDAuMzUuMApuYW1lOiBrbi1mdW5jLXR5cGVzY3JpcHQt\naHR0cApydW50aW1lOiB0eXBlc2NyaXB0CnJlZ2lzdHJ5OiAiIgppbWFnZTog\nIiIKaW1hZ2VEaWdlc3Q6ICIiCmJ1aWxkOgogIGJ1aWxkcGFja3M6IFtdCiAg\nYnVpbGRlcjogczJpCiAgYnVpbGRFbnZzOgogIC0gbmFtZTogQlBfTk9ERV9S\nVU5fU0NSSVBUUwogICAgdmFsdWU6IGJ1aWxkCnJ1bjoKICB2b2x1bWVzOiBb\nXQogIGVudnM6IFtdCmRlcGxveToKICBuYW1lc3BhY2U6ICIiCiAgcmVtb3Rl\nOiBmYWxzZQogIGFubm90YXRpb25zOiB7fQogIG9wdGlvbnM6IHt9CiAgbGFi\nZWxzOiBbXQogIGhlYWx0aEVuZHBvaW50czoKICAgIGxpdmVuZXNzOiAvaGVh\nbHRoL2xpdmVuZXNzCiAgICByZWFkaW5lc3M6IC9oZWFsdGgvcmVhZGluZXNz\nCg==\n", - "encoding": "base64", - "_links": { - "self": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-http/contents/func.yaml?ref=main", - "git": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-http/git/blobs/91767c9c02cee2efe4fe901e10ca94a2fbda3f54", - "html": "https://github.com/openshift-dev-console/kn-func-typescript-http/blob/main/func.yaml" - } -} diff --git a/frontend/packages/dev-console/integration-tests/testData/git-import/kn-func-typescript-http/package.json b/frontend/packages/dev-console/integration-tests/testData/git-import/kn-func-typescript-http/package.json deleted file mode 100644 index 0a527ac511f..00000000000 --- a/frontend/packages/dev-console/integration-tests/testData/git-import/kn-func-typescript-http/package.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "name": "package.json", - "path": "package.json", - "sha": "3736c3a890ae67db07e77ec5b12fd22680d50faf", - "size": 1301, - "url": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-http/contents/package.json?ref=main", - "html_url": "https://github.com/openshift-dev-console/kn-func-typescript-http/blob/main/package.json", - "git_url": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-http/git/blobs/3736c3a890ae67db07e77ec5b12fd22680d50faf", - "download_url": "https://raw.githubusercontent.com/openshift-dev-console/kn-func-typescript-http/main/package.json", - "type": "file", - "content": "ewogICJuYW1lIjogImV2ZW50LWhhbmRsZXIiLAogICJ2ZXJzaW9uIjogIjAu\nMS4wIiwKICAiZGVzY3JpcHRpb24iOiAiVHlwZVNjcmlwdCBIVFRQIEhhbmRs\nZXIiLAogICJsaWNlbnNlIjogIkFwYWNoZS0yLjAiLAogICJyZXBvc2l0b3J5\nIjogewogICAgInR5cGUiOiAiZ2l0IiwKICAgICJ1cmwiOiAiIgogIH0sCiAg\nInNjcmlwdHMiOiB7CiAgICAiYnVpbGQiOiAibnB4IC1wIHR5cGVzY3JpcHQg\ndHNjIiwKICAgICJwcmV0ZXN0IjogIm5wbSBydW4gbGludCAmJiBucG0gcnVu\nIGJ1aWxkIiwKICAgICJ0ZXN0OnVuaXQiOiAidHMtbm9kZSBub2RlX21vZHVs\nZXMvdGFwZS9iaW4vdGFwZSB0ZXN0L3VuaXQudHMiLAogICAgInRlc3Q6aW50\nZWdyYXRpb24iOiAidHMtbm9kZSBub2RlX21vZHVsZXMvdGFwZS9iaW4vdGFw\nZSB0ZXN0L2ludGVncmF0aW9uLnRzIiwKICAgICJ0ZXN0IjogIm5wbSBydW4g\ndGVzdDp1bml0ICYmIG5wbSBydW4gdGVzdDppbnRlZ3JhdGlvbiIsCiAgICAi\nc3RhcnQiOiAiRlVOQ19MT0dfTEVWRUw9aW5mbyBmYWFzLWpzLXJ1bnRpbWUg\nLi9idWlsZC9pbmRleC5qcyIsCiAgICAibGludCI6ICJlc2xpbnQgXCJzcmMv\nKiovKi57anMsdHMsdHN4fVwiIFwidGVzdC8qKi8qLntqcyx0cyx0c3h9XCIg\nLS1xdWlldCIsCiAgICAiZGVidWciOiAibm9kZW1vbiAtLWluc3BlY3QgLi9u\nb2RlX21vZHVsZXMvZmFhcy1qcy1ydW50aW1lL2Jpbi9jbGkuanMgLi9idWls\nZC9pbmRleC5qcyIKICB9LAogICJkZXZEZXBlbmRlbmNpZXMiOiB7CiAgICAi\nQHR5cGVzL3RhcGUiOiAiXjQuMTMuMCIsCiAgICAiQHR5cGVzY3JpcHQtZXNs\naW50L2VzbGludC1wbHVnaW4iOiAiXjQuMjQuMCIsCiAgICAiQHR5cGVzY3Jp\ncHQtZXNsaW50L3BhcnNlciI6ICJeNC4yNC4wIiwKICAgICJlc2xpbnQiOiAi\nXjcuMjYuMCIsCiAgICAiZXNsaW50LWNvbmZpZy1wcmV0dGllciI6ICJeOC4z\nLjAiLAogICAgImVzbGludC1wbHVnaW4tcHJldHRpZXIiOiAiXjMuNC4wIiwK\nICAgICJub2RlbW9uIjogIl4yLjAuNCIsCiAgICAicHJldHRpZXIiOiAiXjIu\nMy4wIiwKICAgICJzdXBlcnRlc3QiOiAiXjYuMy4xIiwKICAgICJ0YXBlIjog\nIl40LjEzLjAiLAogICAgInRzLW5vZGUiOiAiXjkuMS4xIiwKICAgICJ0c2Qi\nOiAiXjAuMjQuMSIsCiAgICAidHNsaW50LWNvbmZpZy1wcmV0dGllciI6ICJe\nMS4xOC4wIiwKICAgICJ0eXBlc2NyaXB0IjogIl40LjIuNCIKICB9LAogICJk\nZXBlbmRlbmNpZXMiOiB7CiAgICAiQHR5cGVzL25vZGUiOiAiXjE2LjExLjEy\nIiwKICAgICJmYWFzLWpzLXJ1bnRpbWUiOiAiXjAuOS43IgogIH0KfQo=\n", - "encoding": "base64", - "_links": { - "self": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-http/contents/package.json?ref=main", - "git": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-http/git/blobs/3736c3a890ae67db07e77ec5b12fd22680d50faf", - "html": "https://github.com/openshift-dev-console/kn-func-typescript-http/blob/main/package.json" - } -} \ No newline at end of file diff --git a/frontend/packages/dev-console/integration-tests/testData/git-import/kn-func-typescript-http/repo.json b/frontend/packages/dev-console/integration-tests/testData/git-import/kn-func-typescript-http/repo.json deleted file mode 100644 index 16457827efb..00000000000 --- a/frontend/packages/dev-console/integration-tests/testData/git-import/kn-func-typescript-http/repo.json +++ /dev/null @@ -1,125 +0,0 @@ -{ - "id": 621518477, - "node_id": "R_kgDOJQuejQ", - "name": "kn-func-typescript-http", - "full_name": "openshift-dev-console/kn-func-typescript-http", - "private": false, - "owner": { - "login": "openshift-dev-console", - "id": 123080219, - "node_id": "O_kgDOB1YOGw", - "avatar_url": "https://avatars.githubusercontent.com/u/123080219?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/openshift-dev-console", - "html_url": "https://github.com/openshift-dev-console", - "followers_url": "https://api.github.com/users/openshift-dev-console/followers", - "following_url": "https://api.github.com/users/openshift-dev-console/following{/other_user}", - "gists_url": "https://api.github.com/users/openshift-dev-console/gists{/gist_id}", - "starred_url": "https://api.github.com/users/openshift-dev-console/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/openshift-dev-console/subscriptions", - "organizations_url": "https://api.github.com/users/openshift-dev-console/orgs", - "repos_url": "https://api.github.com/users/openshift-dev-console/repos", - "events_url": "https://api.github.com/users/openshift-dev-console/events{/privacy}", - "received_events_url": "https://api.github.com/users/openshift-dev-console/received_events", - "type": "Organization", - "site_admin": false - }, - "html_url": "https://github.com/openshift-dev-console/kn-func-typescript-http", - "description": "Knative func example created with [kn] func create -l typescript -t http", - "fork": false, - "url": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-http", - "forks_url": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-http/forks", - "keys_url": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-http/keys{/key_id}", - "collaborators_url": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-http/collaborators{/collaborator}", - "teams_url": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-http/teams", - "hooks_url": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-http/hooks", - "issue_events_url": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-http/issues/events{/number}", - "events_url": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-http/events", - "assignees_url": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-http/assignees{/user}", - "branches_url": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-http/branches{/branch}", - "tags_url": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-http/tags", - "blobs_url": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-http/git/blobs{/sha}", - "git_tags_url": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-http/git/tags{/sha}", - "git_refs_url": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-http/git/refs{/sha}", - "trees_url": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-http/git/trees{/sha}", - "statuses_url": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-http/statuses/{sha}", - "languages_url": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-http/languages", - "stargazers_url": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-http/stargazers", - "contributors_url": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-http/contributors", - "subscribers_url": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-http/subscribers", - "subscription_url": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-http/subscription", - "commits_url": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-http/commits{/sha}", - "git_commits_url": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-http/git/commits{/sha}", - "comments_url": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-http/comments{/number}", - "issue_comment_url": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-http/issues/comments{/number}", - "contents_url": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-http/contents/{+path}", - "compare_url": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-http/compare/{base}...{head}", - "merges_url": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-http/merges", - "archive_url": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-http/{archive_format}{/ref}", - "downloads_url": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-http/downloads", - "issues_url": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-http/issues{/number}", - "pulls_url": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-http/pulls{/number}", - "milestones_url": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-http/milestones{/number}", - "notifications_url": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-http/notifications{?since,all,participating}", - "labels_url": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-http/labels{/name}", - "releases_url": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-http/releases{/id}", - "deployments_url": "https://api.github.com/repos/openshift-dev-console/kn-func-typescript-http/deployments", - "created_at": "2023-03-30T20:34:40Z", - "updated_at": "2023-03-30T21:00:39Z", - "pushed_at": "2023-03-30T20:53:11Z", - "git_url": "git://github.com/openshift-dev-console/kn-func-typescript-http.git", - "ssh_url": "git@github.com:openshift-dev-console/kn-func-typescript-http.git", - "clone_url": "https://github.com/openshift-dev-console/kn-func-typescript-http.git", - "svn_url": "https://github.com/openshift-dev-console/kn-func-typescript-http", - "homepage": "", - "size": 84, - "stargazers_count": 1, - "watchers_count": 1, - "language": "TypeScript", - "has_issues": true, - "has_projects": true, - "has_downloads": true, - "has_wiki": true, - "has_pages": false, - "has_discussions": false, - "forks_count": 1, - "mirror_url": null, - "archived": false, - "disabled": false, - "open_issues_count": 0, - "license": null, - "allow_forking": true, - "is_template": false, - "web_commit_signoff_required": false, - "topics": [ - - ], - "visibility": "public", - "forks": 1, - "open_issues": 0, - "watchers": 1, - "default_branch": "main", - "temp_clone_token": null, - "organization": { - "login": "openshift-dev-console", - "id": 123080219, - "node_id": "O_kgDOB1YOGw", - "avatar_url": "https://avatars.githubusercontent.com/u/123080219?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/openshift-dev-console", - "html_url": "https://github.com/openshift-dev-console", - "followers_url": "https://api.github.com/users/openshift-dev-console/followers", - "following_url": "https://api.github.com/users/openshift-dev-console/following{/other_user}", - "gists_url": "https://api.github.com/users/openshift-dev-console/gists{/gist_id}", - "starred_url": "https://api.github.com/users/openshift-dev-console/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/openshift-dev-console/subscriptions", - "organizations_url": "https://api.github.com/users/openshift-dev-console/orgs", - "repos_url": "https://api.github.com/users/openshift-dev-console/repos", - "events_url": "https://api.github.com/users/openshift-dev-console/events{/privacy}", - "received_events_url": "https://api.github.com/users/openshift-dev-console/received_events", - "type": "Organization", - "site_admin": false - }, - "network_count": 1, - "subscribers_count": 1 - } diff --git a/frontend/packages/dev-console/integration-tests/testData/git-import/nodejs-ex/contents.json b/frontend/packages/dev-console/integration-tests/testData/git-import/nodejs-ex/contents.json deleted file mode 100644 index 28842c2a23e..00000000000 --- a/frontend/packages/dev-console/integration-tests/testData/git-import/nodejs-ex/contents.json +++ /dev/null @@ -1,130 +0,0 @@ -[ - { - "name": ".gitignore", - "path": ".gitignore", - "sha": "57289ac37eebff256b0cef1bf11b7b589cd8c94e", - "size": 28, - "url": "https://api.github.com/repos/sclorg/nodejs-ex/contents/.gitignore?ref=master", - "html_url": "https://github.com/sclorg/nodejs-ex/blob/master/.gitignore", - "git_url": "https://api.github.com/repos/sclorg/nodejs-ex/git/blobs/57289ac37eebff256b0cef1bf11b7b589cd8c94e", - "download_url": "https://raw.githubusercontent.com/sclorg/nodejs-ex/master/.gitignore", - "type": "file", - "_links": { - "self": "https://api.github.com/repos/sclorg/nodejs-ex/contents/.gitignore?ref=master", - "git": "https://api.github.com/repos/sclorg/nodejs-ex/git/blobs/57289ac37eebff256b0cef1bf11b7b589cd8c94e", - "html": "https://github.com/sclorg/nodejs-ex/blob/master/.gitignore" - } - }, - { - "name": "README.md", - "path": "README.md", - "sha": "c4803b030577c488c4b3008deb240c45ae8c7150", - "size": 12927, - "url": "https://api.github.com/repos/sclorg/nodejs-ex/contents/README.md?ref=master", - "html_url": "https://github.com/sclorg/nodejs-ex/blob/master/README.md", - "git_url": "https://api.github.com/repos/sclorg/nodejs-ex/git/blobs/c4803b030577c488c4b3008deb240c45ae8c7150", - "download_url": "https://raw.githubusercontent.com/sclorg/nodejs-ex/master/README.md", - "type": "file", - "_links": { - "self": "https://api.github.com/repos/sclorg/nodejs-ex/contents/README.md?ref=master", - "git": "https://api.github.com/repos/sclorg/nodejs-ex/git/blobs/c4803b030577c488c4b3008deb240c45ae8c7150", - "html": "https://github.com/sclorg/nodejs-ex/blob/master/README.md" - } - }, - { - "name": "helm", - "path": "helm", - "sha": "82e8afd30208dc2332243668633fc94b90b19fcd", - "size": 0, - "url": "https://api.github.com/repos/sclorg/nodejs-ex/contents/helm?ref=master", - "html_url": "https://github.com/sclorg/nodejs-ex/tree/master/helm", - "git_url": "https://api.github.com/repos/sclorg/nodejs-ex/git/trees/82e8afd30208dc2332243668633fc94b90b19fcd", - "download_url": null, - "type": "dir", - "_links": { - "self": "https://api.github.com/repos/sclorg/nodejs-ex/contents/helm?ref=master", - "git": "https://api.github.com/repos/sclorg/nodejs-ex/git/trees/82e8afd30208dc2332243668633fc94b90b19fcd", - "html": "https://github.com/sclorg/nodejs-ex/tree/master/helm" - } - }, - { - "name": "openshift", - "path": "openshift", - "sha": "770ec97d38ba2138eb8127cdfcd3b4d47bc52df4", - "size": 0, - "url": "https://api.github.com/repos/sclorg/nodejs-ex/contents/openshift?ref=master", - "html_url": "https://github.com/sclorg/nodejs-ex/tree/master/openshift", - "git_url": "https://api.github.com/repos/sclorg/nodejs-ex/git/trees/770ec97d38ba2138eb8127cdfcd3b4d47bc52df4", - "download_url": null, - "type": "dir", - "_links": { - "self": "https://api.github.com/repos/sclorg/nodejs-ex/contents/openshift?ref=master", - "git": "https://api.github.com/repos/sclorg/nodejs-ex/git/trees/770ec97d38ba2138eb8127cdfcd3b4d47bc52df4", - "html": "https://github.com/sclorg/nodejs-ex/tree/master/openshift" - } - }, - { - "name": "package.json", - "path": "package.json", - "sha": "c3188637a910a7867cbcb592c37125a83fadf117", - "size": 817, - "url": "https://api.github.com/repos/sclorg/nodejs-ex/contents/package.json?ref=master", - "html_url": "https://github.com/sclorg/nodejs-ex/blob/master/package.json", - "git_url": "https://api.github.com/repos/sclorg/nodejs-ex/git/blobs/c3188637a910a7867cbcb592c37125a83fadf117", - "download_url": "https://raw.githubusercontent.com/sclorg/nodejs-ex/master/package.json", - "type": "file", - "_links": { - "self": "https://api.github.com/repos/sclorg/nodejs-ex/contents/package.json?ref=master", - "git": "https://api.github.com/repos/sclorg/nodejs-ex/git/blobs/c3188637a910a7867cbcb592c37125a83fadf117", - "html": "https://github.com/sclorg/nodejs-ex/blob/master/package.json" - } - }, - { - "name": "server.js", - "path": "server.js", - "sha": "746838cc7ab5483171788e09e11b2623a6f8cc22", - "size": 3814, - "url": "https://api.github.com/repos/sclorg/nodejs-ex/contents/server.js?ref=master", - "html_url": "https://github.com/sclorg/nodejs-ex/blob/master/server.js", - "git_url": "https://api.github.com/repos/sclorg/nodejs-ex/git/blobs/746838cc7ab5483171788e09e11b2623a6f8cc22", - "download_url": "https://raw.githubusercontent.com/sclorg/nodejs-ex/master/server.js", - "type": "file", - "_links": { - "self": "https://api.github.com/repos/sclorg/nodejs-ex/contents/server.js?ref=master", - "git": "https://api.github.com/repos/sclorg/nodejs-ex/git/blobs/746838cc7ab5483171788e09e11b2623a6f8cc22", - "html": "https://github.com/sclorg/nodejs-ex/blob/master/server.js" - } - }, - { - "name": "tests", - "path": "tests", - "sha": "c477c6368c3300b8396c7026455ea8994ff3141f", - "size": 0, - "url": "https://api.github.com/repos/sclorg/nodejs-ex/contents/tests?ref=master", - "html_url": "https://github.com/sclorg/nodejs-ex/tree/master/tests", - "git_url": "https://api.github.com/repos/sclorg/nodejs-ex/git/trees/c477c6368c3300b8396c7026455ea8994ff3141f", - "download_url": null, - "type": "dir", - "_links": { - "self": "https://api.github.com/repos/sclorg/nodejs-ex/contents/tests?ref=master", - "git": "https://api.github.com/repos/sclorg/nodejs-ex/git/trees/c477c6368c3300b8396c7026455ea8994ff3141f", - "html": "https://github.com/sclorg/nodejs-ex/tree/master/tests" - } - }, - { - "name": "views", - "path": "views", - "sha": "7ecf4649989233740f5d9a880e75c5b16dc2ce79", - "size": 0, - "url": "https://api.github.com/repos/sclorg/nodejs-ex/contents/views?ref=master", - "html_url": "https://github.com/sclorg/nodejs-ex/tree/master/views", - "git_url": "https://api.github.com/repos/sclorg/nodejs-ex/git/trees/7ecf4649989233740f5d9a880e75c5b16dc2ce79", - "download_url": null, - "type": "dir", - "_links": { - "self": "https://api.github.com/repos/sclorg/nodejs-ex/contents/views?ref=master", - "git": "https://api.github.com/repos/sclorg/nodejs-ex/git/trees/7ecf4649989233740f5d9a880e75c5b16dc2ce79", - "html": "https://github.com/sclorg/nodejs-ex/tree/master/views" - } - } -] \ No newline at end of file diff --git a/frontend/packages/dev-console/integration-tests/testData/git-import/nodejs-ex/package.json b/frontend/packages/dev-console/integration-tests/testData/git-import/nodejs-ex/package.json deleted file mode 100644 index ef8d1d6c0f5..00000000000 --- a/frontend/packages/dev-console/integration-tests/testData/git-import/nodejs-ex/package.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "name": "package.json", - "path": "package.json", - "sha": "c3188637a910a7867cbcb592c37125a83fadf117", - "size": 817, - "url": "https://api.github.com/repos/sclorg/nodejs-ex/contents/package.json?ref=master", - "html_url": "https://github.com/sclorg/nodejs-ex/blob/master/package.json", - "git_url": "https://api.github.com/repos/sclorg/nodejs-ex/git/blobs/c3188637a910a7867cbcb592c37125a83fadf117", - "download_url": "https://raw.githubusercontent.com/sclorg/nodejs-ex/master/package.json", - "type": "file", - "content": "ewogICJuYW1lIjogIm5vZGVqcy1leCIsCiAgInZlcnNpb24iOiAiMC4wLjEi\nLAogICJkZXNjcmlwdGlvbiI6ICJOb2RlLmpzIHNhbXBsZSBhcHAgZm9yIE9w\nZW5TaGlmdCAzIiwKICAibWFpbiI6ICJzZXJ2ZXIuanMiLAogICJkZXBlbmRl\nbmNpZXMiOiB7CiAgICAiY2hhaSI6ICJeMy41LjAiLAogICAgImNoYWktaHR0\ncCI6ICJeMi4wLjEiLAogICAgImVqcyI6ICJeMi40LjEiLAogICAgImV4cHJl\nc3MiOiAiXjQuMTMuNCIsCiAgICAibW9jaGEiOiAiXjIuNC41IiwKICAgICJt\nb25nb2RiIjogIl4yLjEuMTYiLAogICAgIm1vcmdhbiI6ICJeMS43LjAiLAog\nICAgIm9iamVjdC1hc3NpZ24iOiI0LjEuMCIKICB9LAogICJlbmdpbmUiOiB7\nCiAgICAibm9kZSI6ICIqIiwKICAgICJucG0iOiAiKiIKICB9LAogICJzY3Jp\ncHRzIjogewogICAgInN0YXJ0IjogIm5vZGUgc2VydmVyLmpzIiwKICAgICJ0\nZXN0IjogIklQPTAuMC4wLjAgUE9SVD0zMDMwIG1vY2hhIC0tdGltZW91dCA1\nMDAwIHRlc3RzLypfdGVzdC5qcyIKICB9LAogICJyZXBvc2l0b3J5Ijogewog\nICAgInR5cGUiOiAiZ2l0IiwKICAgICJ1cmwiOiAiaHR0cDovL2dpdGh1Yi5j\nb20vc2Nsb3JnL25vZGVqcy1leC5naXQiCiAgfSwKICAiYXV0aG9yIjogIlN0\nZXZlIFNwZWljaGVyIDxzc3BlaWNoZUBnbWFpbC5jb20+IiwKICAibGljZW5z\nZSI6ICJDQy1CWS0xLjAiLAogICJidWdzIjogewogICAgInVybCI6ICJodHRw\nOi8vZ2l0aHViLmNvbS9zY2xvcmcvbm9kZWpzLWV4L2lzc3VlcyIKICB9LAog\nICJob21lcGFnZSI6ICJodHRwOi8vZ2l0aHViLmNvbS9zY2xvcmcvbm9kZWpz\nLWV4Igp9Cg==\n", - "encoding": "base64", - "_links": { - "self": "https://api.github.com/repos/sclorg/nodejs-ex/contents/package.json?ref=master", - "git": "https://api.github.com/repos/sclorg/nodejs-ex/git/blobs/c3188637a910a7867cbcb592c37125a83fadf117", - "html": "https://github.com/sclorg/nodejs-ex/blob/master/package.json" - } - } \ No newline at end of file diff --git a/frontend/packages/dev-console/integration-tests/testData/git-import/nodejs-ex/repo.json b/frontend/packages/dev-console/integration-tests/testData/git-import/nodejs-ex/repo.json deleted file mode 100644 index 1d59d651c31..00000000000 --- a/frontend/packages/dev-console/integration-tests/testData/git-import/nodejs-ex/repo.json +++ /dev/null @@ -1,323 +0,0 @@ -{ - "id": 34531079, - "node_id": "MDEwOlJlcG9zaXRvcnkzNDUzMTA3OQ==", - "name": "nodejs-ex", - "full_name": "sclorg/nodejs-ex", - "private": false, - "owner": { - "login": "sclorg", - "id": 9047960, - "node_id": "MDEyOk9yZ2FuaXphdGlvbjkwNDc5NjA=", - "avatar_url": "https://avatars.githubusercontent.com/u/9047960?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/sclorg", - "html_url": "https://github.com/sclorg", - "followers_url": "https://api.github.com/users/sclorg/followers", - "following_url": "https://api.github.com/users/sclorg/following{/other_user}", - "gists_url": "https://api.github.com/users/sclorg/gists{/gist_id}", - "starred_url": "https://api.github.com/users/sclorg/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/sclorg/subscriptions", - "organizations_url": "https://api.github.com/users/sclorg/orgs", - "repos_url": "https://api.github.com/users/sclorg/repos", - "events_url": "https://api.github.com/users/sclorg/events{/privacy}", - "received_events_url": "https://api.github.com/users/sclorg/received_events", - "type": "Organization", - "site_admin": false - }, - "html_url": "https://github.com/sclorg/nodejs-ex", - "description": "node.js example", - "fork": true, - "url": "https://api.github.com/repos/sclorg/nodejs-ex", - "forks_url": "https://api.github.com/repos/sclorg/nodejs-ex/forks", - "keys_url": "https://api.github.com/repos/sclorg/nodejs-ex/keys{/key_id}", - "collaborators_url": "https://api.github.com/repos/sclorg/nodejs-ex/collaborators{/collaborator}", - "teams_url": "https://api.github.com/repos/sclorg/nodejs-ex/teams", - "hooks_url": "https://api.github.com/repos/sclorg/nodejs-ex/hooks", - "issue_events_url": "https://api.github.com/repos/sclorg/nodejs-ex/issues/events{/number}", - "events_url": "https://api.github.com/repos/sclorg/nodejs-ex/events", - "assignees_url": "https://api.github.com/repos/sclorg/nodejs-ex/assignees{/user}", - "branches_url": "https://api.github.com/repos/sclorg/nodejs-ex/branches{/branch}", - "tags_url": "https://api.github.com/repos/sclorg/nodejs-ex/tags", - "blobs_url": "https://api.github.com/repos/sclorg/nodejs-ex/git/blobs{/sha}", - "git_tags_url": "https://api.github.com/repos/sclorg/nodejs-ex/git/tags{/sha}", - "git_refs_url": "https://api.github.com/repos/sclorg/nodejs-ex/git/refs{/sha}", - "trees_url": "https://api.github.com/repos/sclorg/nodejs-ex/git/trees{/sha}", - "statuses_url": "https://api.github.com/repos/sclorg/nodejs-ex/statuses/{sha}", - "languages_url": "https://api.github.com/repos/sclorg/nodejs-ex/languages", - "stargazers_url": "https://api.github.com/repos/sclorg/nodejs-ex/stargazers", - "contributors_url": "https://api.github.com/repos/sclorg/nodejs-ex/contributors", - "subscribers_url": "https://api.github.com/repos/sclorg/nodejs-ex/subscribers", - "subscription_url": "https://api.github.com/repos/sclorg/nodejs-ex/subscription", - "commits_url": "https://api.github.com/repos/sclorg/nodejs-ex/commits{/sha}", - "git_commits_url": "https://api.github.com/repos/sclorg/nodejs-ex/git/commits{/sha}", - "comments_url": "https://api.github.com/repos/sclorg/nodejs-ex/comments{/number}", - "issue_comment_url": "https://api.github.com/repos/sclorg/nodejs-ex/issues/comments{/number}", - "contents_url": "https://api.github.com/repos/sclorg/nodejs-ex/contents/{+path}", - "compare_url": "https://api.github.com/repos/sclorg/nodejs-ex/compare/{base}...{head}", - "merges_url": "https://api.github.com/repos/sclorg/nodejs-ex/merges", - "archive_url": "https://api.github.com/repos/sclorg/nodejs-ex/{archive_format}{/ref}", - "downloads_url": "https://api.github.com/repos/sclorg/nodejs-ex/downloads", - "issues_url": "https://api.github.com/repos/sclorg/nodejs-ex/issues{/number}", - "pulls_url": "https://api.github.com/repos/sclorg/nodejs-ex/pulls{/number}", - "milestones_url": "https://api.github.com/repos/sclorg/nodejs-ex/milestones{/number}", - "notifications_url": "https://api.github.com/repos/sclorg/nodejs-ex/notifications{?since,all,participating}", - "labels_url": "https://api.github.com/repos/sclorg/nodejs-ex/labels{/name}", - "releases_url": "https://api.github.com/repos/sclorg/nodejs-ex/releases{/id}", - "deployments_url": "https://api.github.com/repos/sclorg/nodejs-ex/deployments", - "created_at": "2015-04-24T17:04:25Z", - "updated_at": "2021-11-18T13:34:02Z", - "pushed_at": "2021-11-22T13:36:42Z", - "git_url": "git://github.com/sclorg/nodejs-ex.git", - "ssh_url": "git@github.com:sclorg/nodejs-ex.git", - "clone_url": "https://github.com/sclorg/nodejs-ex.git", - "svn_url": "https://github.com/sclorg/nodejs-ex", - "homepage": "", - "size": 262, - "stargazers_count": 334, - "watchers_count": 334, - "language": "HTML", - "has_issues": true, - "has_projects": true, - "has_downloads": true, - "has_wiki": false, - "has_pages": false, - "forks_count": 9388, - "mirror_url": null, - "archived": false, - "disabled": false, - "open_issues_count": 19, - "license": null, - "allow_forking": true, - "is_template": false, - "topics": [ - - ], - "visibility": "public", - "forks": 9388, - "open_issues": 19, - "watchers": 334, - "default_branch": "master", - "temp_clone_token": null, - "organization": { - "login": "sclorg", - "id": 9047960, - "node_id": "MDEyOk9yZ2FuaXphdGlvbjkwNDc5NjA=", - "avatar_url": "https://avatars.githubusercontent.com/u/9047960?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/sclorg", - "html_url": "https://github.com/sclorg", - "followers_url": "https://api.github.com/users/sclorg/followers", - "following_url": "https://api.github.com/users/sclorg/following{/other_user}", - "gists_url": "https://api.github.com/users/sclorg/gists{/gist_id}", - "starred_url": "https://api.github.com/users/sclorg/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/sclorg/subscriptions", - "organizations_url": "https://api.github.com/users/sclorg/orgs", - "repos_url": "https://api.github.com/users/sclorg/repos", - "events_url": "https://api.github.com/users/sclorg/events{/privacy}", - "received_events_url": "https://api.github.com/users/sclorg/received_events", - "type": "Organization", - "site_admin": false - }, - "parent": { - "id": 19961473, - "node_id": "MDEwOlJlcG9zaXRvcnkxOTk2MTQ3Mw==", - "name": "node-echo", - "full_name": "ryanj/node-echo", - "private": false, - "owner": { - "login": "ryanj", - "id": 17562, - "node_id": "MDQ6VXNlcjE3NTYy", - "avatar_url": "https://avatars.githubusercontent.com/u/17562?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/ryanj", - "html_url": "https://github.com/ryanj", - "followers_url": "https://api.github.com/users/ryanj/followers", - "following_url": "https://api.github.com/users/ryanj/following{/other_user}", - "gists_url": "https://api.github.com/users/ryanj/gists{/gist_id}", - "starred_url": "https://api.github.com/users/ryanj/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/ryanj/subscriptions", - "organizations_url": "https://api.github.com/users/ryanj/orgs", - "repos_url": "https://api.github.com/users/ryanj/repos", - "events_url": "https://api.github.com/users/ryanj/events{/privacy}", - "received_events_url": "https://api.github.com/users/ryanj/received_events", - "type": "User", - "site_admin": false - }, - "html_url": "https://github.com/ryanj/node-echo", - "description": "my least favorite nodejs server example", - "fork": true, - "url": "https://api.github.com/repos/ryanj/node-echo", - "forks_url": "https://api.github.com/repos/ryanj/node-echo/forks", - "keys_url": "https://api.github.com/repos/ryanj/node-echo/keys{/key_id}", - "collaborators_url": "https://api.github.com/repos/ryanj/node-echo/collaborators{/collaborator}", - "teams_url": "https://api.github.com/repos/ryanj/node-echo/teams", - "hooks_url": "https://api.github.com/repos/ryanj/node-echo/hooks", - "issue_events_url": "https://api.github.com/repos/ryanj/node-echo/issues/events{/number}", - "events_url": "https://api.github.com/repos/ryanj/node-echo/events", - "assignees_url": "https://api.github.com/repos/ryanj/node-echo/assignees{/user}", - "branches_url": "https://api.github.com/repos/ryanj/node-echo/branches{/branch}", - "tags_url": "https://api.github.com/repos/ryanj/node-echo/tags", - "blobs_url": "https://api.github.com/repos/ryanj/node-echo/git/blobs{/sha}", - "git_tags_url": "https://api.github.com/repos/ryanj/node-echo/git/tags{/sha}", - "git_refs_url": "https://api.github.com/repos/ryanj/node-echo/git/refs{/sha}", - "trees_url": "https://api.github.com/repos/ryanj/node-echo/git/trees{/sha}", - "statuses_url": "https://api.github.com/repos/ryanj/node-echo/statuses/{sha}", - "languages_url": "https://api.github.com/repos/ryanj/node-echo/languages", - "stargazers_url": "https://api.github.com/repos/ryanj/node-echo/stargazers", - "contributors_url": "https://api.github.com/repos/ryanj/node-echo/contributors", - "subscribers_url": "https://api.github.com/repos/ryanj/node-echo/subscribers", - "subscription_url": "https://api.github.com/repos/ryanj/node-echo/subscription", - "commits_url": "https://api.github.com/repos/ryanj/node-echo/commits{/sha}", - "git_commits_url": "https://api.github.com/repos/ryanj/node-echo/git/commits{/sha}", - "comments_url": "https://api.github.com/repos/ryanj/node-echo/comments{/number}", - "issue_comment_url": "https://api.github.com/repos/ryanj/node-echo/issues/comments{/number}", - "contents_url": "https://api.github.com/repos/ryanj/node-echo/contents/{+path}", - "compare_url": "https://api.github.com/repos/ryanj/node-echo/compare/{base}...{head}", - "merges_url": "https://api.github.com/repos/ryanj/node-echo/merges", - "archive_url": "https://api.github.com/repos/ryanj/node-echo/{archive_format}{/ref}", - "downloads_url": "https://api.github.com/repos/ryanj/node-echo/downloads", - "issues_url": "https://api.github.com/repos/ryanj/node-echo/issues{/number}", - "pulls_url": "https://api.github.com/repos/ryanj/node-echo/pulls{/number}", - "milestones_url": "https://api.github.com/repos/ryanj/node-echo/milestones{/number}", - "notifications_url": "https://api.github.com/repos/ryanj/node-echo/notifications{?since,all,participating}", - "labels_url": "https://api.github.com/repos/ryanj/node-echo/labels{/name}", - "releases_url": "https://api.github.com/repos/ryanj/node-echo/releases{/id}", - "deployments_url": "https://api.github.com/repos/ryanj/node-echo/deployments", - "created_at": "2014-05-19T23:47:30Z", - "updated_at": "2020-09-09T02:22:09Z", - "pushed_at": "2021-10-26T14:29:44Z", - "git_url": "git://github.com/ryanj/node-echo.git", - "ssh_url": "git@github.com:ryanj/node-echo.git", - "clone_url": "https://github.com/ryanj/node-echo.git", - "svn_url": "https://github.com/ryanj/node-echo", - "homepage": "http://notagoodexamplerepo.com", - "size": 63, - "stargazers_count": 9, - "watchers_count": 9, - "language": "HTML", - "has_issues": false, - "has_projects": true, - "has_downloads": true, - "has_wiki": true, - "has_pages": false, - "forks_count": 24, - "mirror_url": null, - "archived": false, - "disabled": false, - "open_issues_count": 3, - "license": null, - "allow_forking": true, - "is_template": false, - "topics": [ - - ], - "visibility": "public", - "forks": 24, - "open_issues": 3, - "watchers": 9, - "default_branch": "master" - }, - "source": { - "id": 19838020, - "node_id": "MDEwOlJlcG9zaXRvcnkxOTgzODAyMA==", - "name": "node-echo", - "full_name": "bettiolo/node-echo", - "private": false, - "owner": { - "login": "bettiolo", - "id": 1333608, - "node_id": "MDQ6VXNlcjEzMzM2MDg=", - "avatar_url": "https://avatars.githubusercontent.com/u/1333608?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/bettiolo", - "html_url": "https://github.com/bettiolo", - "followers_url": "https://api.github.com/users/bettiolo/followers", - "following_url": "https://api.github.com/users/bettiolo/following{/other_user}", - "gists_url": "https://api.github.com/users/bettiolo/gists{/gist_id}", - "starred_url": "https://api.github.com/users/bettiolo/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/bettiolo/subscriptions", - "organizations_url": "https://api.github.com/users/bettiolo/orgs", - "repos_url": "https://api.github.com/users/bettiolo/repos", - "events_url": "https://api.github.com/users/bettiolo/events{/privacy}", - "received_events_url": "https://api.github.com/users/bettiolo/received_events", - "type": "User", - "site_admin": false - }, - "html_url": "https://github.com/bettiolo/node-echo", - "description": "node.js echo server, returns request data to response", - "fork": false, - "url": "https://api.github.com/repos/bettiolo/node-echo", - "forks_url": "https://api.github.com/repos/bettiolo/node-echo/forks", - "keys_url": "https://api.github.com/repos/bettiolo/node-echo/keys{/key_id}", - "collaborators_url": "https://api.github.com/repos/bettiolo/node-echo/collaborators{/collaborator}", - "teams_url": "https://api.github.com/repos/bettiolo/node-echo/teams", - "hooks_url": "https://api.github.com/repos/bettiolo/node-echo/hooks", - "issue_events_url": "https://api.github.com/repos/bettiolo/node-echo/issues/events{/number}", - "events_url": "https://api.github.com/repos/bettiolo/node-echo/events", - "assignees_url": "https://api.github.com/repos/bettiolo/node-echo/assignees{/user}", - "branches_url": "https://api.github.com/repos/bettiolo/node-echo/branches{/branch}", - "tags_url": "https://api.github.com/repos/bettiolo/node-echo/tags", - "blobs_url": "https://api.github.com/repos/bettiolo/node-echo/git/blobs{/sha}", - "git_tags_url": "https://api.github.com/repos/bettiolo/node-echo/git/tags{/sha}", - "git_refs_url": "https://api.github.com/repos/bettiolo/node-echo/git/refs{/sha}", - "trees_url": "https://api.github.com/repos/bettiolo/node-echo/git/trees{/sha}", - "statuses_url": "https://api.github.com/repos/bettiolo/node-echo/statuses/{sha}", - "languages_url": "https://api.github.com/repos/bettiolo/node-echo/languages", - "stargazers_url": "https://api.github.com/repos/bettiolo/node-echo/stargazers", - "contributors_url": "https://api.github.com/repos/bettiolo/node-echo/contributors", - "subscribers_url": "https://api.github.com/repos/bettiolo/node-echo/subscribers", - "subscription_url": "https://api.github.com/repos/bettiolo/node-echo/subscription", - "commits_url": "https://api.github.com/repos/bettiolo/node-echo/commits{/sha}", - "git_commits_url": "https://api.github.com/repos/bettiolo/node-echo/git/commits{/sha}", - "comments_url": "https://api.github.com/repos/bettiolo/node-echo/comments{/number}", - "issue_comment_url": "https://api.github.com/repos/bettiolo/node-echo/issues/comments{/number}", - "contents_url": "https://api.github.com/repos/bettiolo/node-echo/contents/{+path}", - "compare_url": "https://api.github.com/repos/bettiolo/node-echo/compare/{base}...{head}", - "merges_url": "https://api.github.com/repos/bettiolo/node-echo/merges", - "archive_url": "https://api.github.com/repos/bettiolo/node-echo/{archive_format}{/ref}", - "downloads_url": "https://api.github.com/repos/bettiolo/node-echo/downloads", - "issues_url": "https://api.github.com/repos/bettiolo/node-echo/issues{/number}", - "pulls_url": "https://api.github.com/repos/bettiolo/node-echo/pulls{/number}", - "milestones_url": "https://api.github.com/repos/bettiolo/node-echo/milestones{/number}", - "notifications_url": "https://api.github.com/repos/bettiolo/node-echo/notifications{?since,all,participating}", - "labels_url": "https://api.github.com/repos/bettiolo/node-echo/labels{/name}", - "releases_url": "https://api.github.com/repos/bettiolo/node-echo/releases{/id}", - "deployments_url": "https://api.github.com/repos/bettiolo/node-echo/deployments", - "created_at": "2014-05-15T23:02:07Z", - "updated_at": "2021-10-29T11:11:24Z", - "pushed_at": "2020-10-01T16:07:06Z", - "git_url": "git://github.com/bettiolo/node-echo.git", - "ssh_url": "git@github.com:bettiolo/node-echo.git", - "clone_url": "https://github.com/bettiolo/node-echo.git", - "svn_url": "https://github.com/bettiolo/node-echo", - "homepage": null, - "size": 267, - "stargazers_count": 13, - "watchers_count": 13, - "language": "JavaScript", - "has_issues": true, - "has_projects": true, - "has_downloads": true, - "has_wiki": true, - "has_pages": false, - "forks_count": 9675, - "mirror_url": null, - "archived": false, - "disabled": false, - "open_issues_count": 2, - "license": null, - "allow_forking": true, - "is_template": false, - "topics": [ - - ], - "visibility": "public", - "forks": 9675, - "open_issues": 2, - "watchers": 13, - "default_branch": "master" - }, - "network_count": 9675, - "subscribers_count": 76 - } \ No newline at end of file diff --git a/frontend/packages/dev-console/integration-tests/testData/git-import/repos.ts b/frontend/packages/dev-console/integration-tests/testData/git-import/repos.ts deleted file mode 100644 index 9a902c2675f..00000000000 --- a/frontend/packages/dev-console/integration-tests/testData/git-import/repos.ts +++ /dev/null @@ -1,77 +0,0 @@ -/* eslint-disable import/no-dynamic-require, @typescript-eslint/no-require-imports */ - -export const gitImportRepos: GithubRepo[] = [ - { url: 'https://github.com/sclorg/dancer-ex', folder: 'dancer-ex' }, - { url: 'https://github.com/sclorg/cakephp-ex', folder: 'cakephp-ex' }, - { url: 'https://github.com/sclorg/golang-ex', folder: 'golang-ex' }, - { url: 'https://github.com/sclorg/ruby-ex', folder: 'ruby-ex' }, - { url: 'https://github.com/sclorg/django-ex', folder: 'django-ex' }, - { url: 'https://github.com/spring-projects/spring-boot', folder: 'spring-boot' }, - { url: 'https://github.com/sclorg/nodejs-ex', folder: 'nodejs-ex' }, - { url: 'https://github.com/redhat-developer/s2i-dotnetcore-ex', folder: 's2i-dotnetcore-ex' }, - { url: 'https://github.com/nodeshift-starters/devfile-sample', folder: 'devfile-sample' }, - { - url: 'https://github.com/rohitkrai03/flask-dockerfile-example', - folder: 'flask-dockerfile-example', - }, - { - url: 'https://github.com/Lucifergene/serverless-func-repo', - folder: 'serverless-func-repo', - }, - { - url: 'https://github.com/vikram-raj/hello-func-node', - folder: 'hello-func-node', - }, - { - url: 'https://github.com/vikram-raj/hello-func-node-env', - folder: 'hello-func-node-env', - }, - { - url: 'https://github.com/vikram-raj/hello-func-quarkus', - folder: 'hello-func-quarkus', - }, - { - url: 'https://github.com/openshift-dev-console/kn-func-typescript-http', - folder: 'kn-func-typescript-http', - }, - { - url: 'https://github.com/openshift-dev-console/kn-func-typescript-cloudevents', - folder: 'kn-func-typescript-cloudevents', - }, -]; - -interface GithubRepo { - url: string; - folder: string; -} - -export function getResponseMocks(repo: GithubRepo) { - const repoJson = require(`./${repo.folder}/repo.json`); - const contentsJson = require(`./${repo.folder}/contents.json`); - - let packageJson = null; - let devFileResources = null; - let funcJson = null; - try { - packageJson = require(`./${repo.folder}/package.json`); - } catch (err) { - // nothing, the file does not exist - } - try { - devFileResources = require(`./${repo.folder}/devFileResources.json`); - } catch (err) { - // nothing, the file does not exist - } - try { - funcJson = require(`./${repo.folder}/func.json`); - } catch (err) { - // nothing, the file does not exist - } - return { - repoResponse: repoJson, - contentsResponse: contentsJson, - packageResponse: packageJson, - devFileResources, - funcJson, - }; -} diff --git a/frontend/packages/dev-console/integration-tests/testData/git-import/ruby-ex/contents.json b/frontend/packages/dev-console/integration-tests/testData/git-import/ruby-ex/contents.json deleted file mode 100644 index b970a108568..00000000000 --- a/frontend/packages/dev-console/integration-tests/testData/git-import/ruby-ex/contents.json +++ /dev/null @@ -1,67 +0,0 @@ -[ - { - "name": "Gemfile", - "path": "Gemfile", - "sha": "8e06a0c70d181ab7443bb4580841d26409721c96", - "size": 52, - "url": "https://api.github.com/repos/sclorg/ruby-ex/contents/Gemfile?ref=master", - "html_url": "https://github.com/sclorg/ruby-ex/blob/master/Gemfile", - "git_url": "https://api.github.com/repos/sclorg/ruby-ex/git/blobs/8e06a0c70d181ab7443bb4580841d26409721c96", - "download_url": "https://raw.githubusercontent.com/sclorg/ruby-ex/master/Gemfile", - "type": "file", - "_links": { - "self": "https://api.github.com/repos/sclorg/ruby-ex/contents/Gemfile?ref=master", - "git": "https://api.github.com/repos/sclorg/ruby-ex/git/blobs/8e06a0c70d181ab7443bb4580841d26409721c96", - "html": "https://github.com/sclorg/ruby-ex/blob/master/Gemfile" - } - }, - { - "name": "Gemfile.lock", - "path": "Gemfile.lock", - "sha": "fa374199454882be1eab2d8b183c8889525bf10d", - "size": 164, - "url": "https://api.github.com/repos/sclorg/ruby-ex/contents/Gemfile.lock?ref=master", - "html_url": "https://github.com/sclorg/ruby-ex/blob/master/Gemfile.lock", - "git_url": "https://api.github.com/repos/sclorg/ruby-ex/git/blobs/fa374199454882be1eab2d8b183c8889525bf10d", - "download_url": "https://raw.githubusercontent.com/sclorg/ruby-ex/master/Gemfile.lock", - "type": "file", - "_links": { - "self": "https://api.github.com/repos/sclorg/ruby-ex/contents/Gemfile.lock?ref=master", - "git": "https://api.github.com/repos/sclorg/ruby-ex/git/blobs/fa374199454882be1eab2d8b183c8889525bf10d", - "html": "https://github.com/sclorg/ruby-ex/blob/master/Gemfile.lock" - } - }, - { - "name": "README.md", - "path": "README.md", - "sha": "b87a73df5fef089a3a2d111c4f8243816c76a944", - "size": 3532, - "url": "https://api.github.com/repos/sclorg/ruby-ex/contents/README.md?ref=master", - "html_url": "https://github.com/sclorg/ruby-ex/blob/master/README.md", - "git_url": "https://api.github.com/repos/sclorg/ruby-ex/git/blobs/b87a73df5fef089a3a2d111c4f8243816c76a944", - "download_url": "https://raw.githubusercontent.com/sclorg/ruby-ex/master/README.md", - "type": "file", - "_links": { - "self": "https://api.github.com/repos/sclorg/ruby-ex/contents/README.md?ref=master", - "git": "https://api.github.com/repos/sclorg/ruby-ex/git/blobs/b87a73df5fef089a3a2d111c4f8243816c76a944", - "html": "https://github.com/sclorg/ruby-ex/blob/master/README.md" - } - }, - { - "name": "config.ru", - "path": "config.ru", - "sha": "713704e0d318a9673f43e0e550c037d3f471027f", - "size": 40207, - "url": "https://api.github.com/repos/sclorg/ruby-ex/contents/config.ru?ref=master", - "html_url": "https://github.com/sclorg/ruby-ex/blob/master/config.ru", - "git_url": "https://api.github.com/repos/sclorg/ruby-ex/git/blobs/713704e0d318a9673f43e0e550c037d3f471027f", - "download_url": "https://raw.githubusercontent.com/sclorg/ruby-ex/master/config.ru", - "type": "file", - "_links": { - "self": "https://api.github.com/repos/sclorg/ruby-ex/contents/config.ru?ref=master", - "git": "https://api.github.com/repos/sclorg/ruby-ex/git/blobs/713704e0d318a9673f43e0e550c037d3f471027f", - "html": "https://github.com/sclorg/ruby-ex/blob/master/config.ru" - } - } - ] - \ No newline at end of file diff --git a/frontend/packages/dev-console/integration-tests/testData/git-import/ruby-ex/repo.json b/frontend/packages/dev-console/integration-tests/testData/git-import/ruby-ex/repo.json deleted file mode 100644 index a78e5ca172b..00000000000 --- a/frontend/packages/dev-console/integration-tests/testData/git-import/ruby-ex/repo.json +++ /dev/null @@ -1,124 +0,0 @@ -{ - "id": 42273563, - "node_id": "MDEwOlJlcG9zaXRvcnk0MjI3MzU2Mw==", - "name": "ruby-ex", - "full_name": "sclorg/ruby-ex", - "private": false, - "owner": { - "login": "sclorg", - "id": 9047960, - "node_id": "MDEyOk9yZ2FuaXphdGlvbjkwNDc5NjA=", - "avatar_url": "https://avatars.githubusercontent.com/u/9047960?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/sclorg", - "html_url": "https://github.com/sclorg", - "followers_url": "https://api.github.com/users/sclorg/followers", - "following_url": "https://api.github.com/users/sclorg/following{/other_user}", - "gists_url": "https://api.github.com/users/sclorg/gists{/gist_id}", - "starred_url": "https://api.github.com/users/sclorg/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/sclorg/subscriptions", - "organizations_url": "https://api.github.com/users/sclorg/orgs", - "repos_url": "https://api.github.com/users/sclorg/repos", - "events_url": "https://api.github.com/users/sclorg/events{/privacy}", - "received_events_url": "https://api.github.com/users/sclorg/received_events", - "type": "Organization", - "site_admin": false - }, - "html_url": "https://github.com/sclorg/ruby-ex", - "description": null, - "fork": false, - "url": "https://api.github.com/repos/sclorg/ruby-ex", - "forks_url": "https://api.github.com/repos/sclorg/ruby-ex/forks", - "keys_url": "https://api.github.com/repos/sclorg/ruby-ex/keys{/key_id}", - "collaborators_url": "https://api.github.com/repos/sclorg/ruby-ex/collaborators{/collaborator}", - "teams_url": "https://api.github.com/repos/sclorg/ruby-ex/teams", - "hooks_url": "https://api.github.com/repos/sclorg/ruby-ex/hooks", - "issue_events_url": "https://api.github.com/repos/sclorg/ruby-ex/issues/events{/number}", - "events_url": "https://api.github.com/repos/sclorg/ruby-ex/events", - "assignees_url": "https://api.github.com/repos/sclorg/ruby-ex/assignees{/user}", - "branches_url": "https://api.github.com/repos/sclorg/ruby-ex/branches{/branch}", - "tags_url": "https://api.github.com/repos/sclorg/ruby-ex/tags", - "blobs_url": "https://api.github.com/repos/sclorg/ruby-ex/git/blobs{/sha}", - "git_tags_url": "https://api.github.com/repos/sclorg/ruby-ex/git/tags{/sha}", - "git_refs_url": "https://api.github.com/repos/sclorg/ruby-ex/git/refs{/sha}", - "trees_url": "https://api.github.com/repos/sclorg/ruby-ex/git/trees{/sha}", - "statuses_url": "https://api.github.com/repos/sclorg/ruby-ex/statuses/{sha}", - "languages_url": "https://api.github.com/repos/sclorg/ruby-ex/languages", - "stargazers_url": "https://api.github.com/repos/sclorg/ruby-ex/stargazers", - "contributors_url": "https://api.github.com/repos/sclorg/ruby-ex/contributors", - "subscribers_url": "https://api.github.com/repos/sclorg/ruby-ex/subscribers", - "subscription_url": "https://api.github.com/repos/sclorg/ruby-ex/subscription", - "commits_url": "https://api.github.com/repos/sclorg/ruby-ex/commits{/sha}", - "git_commits_url": "https://api.github.com/repos/sclorg/ruby-ex/git/commits{/sha}", - "comments_url": "https://api.github.com/repos/sclorg/ruby-ex/comments{/number}", - "issue_comment_url": "https://api.github.com/repos/sclorg/ruby-ex/issues/comments{/number}", - "contents_url": "https://api.github.com/repos/sclorg/ruby-ex/contents/{+path}", - "compare_url": "https://api.github.com/repos/sclorg/ruby-ex/compare/{base}...{head}", - "merges_url": "https://api.github.com/repos/sclorg/ruby-ex/merges", - "archive_url": "https://api.github.com/repos/sclorg/ruby-ex/{archive_format}{/ref}", - "downloads_url": "https://api.github.com/repos/sclorg/ruby-ex/downloads", - "issues_url": "https://api.github.com/repos/sclorg/ruby-ex/issues{/number}", - "pulls_url": "https://api.github.com/repos/sclorg/ruby-ex/pulls{/number}", - "milestones_url": "https://api.github.com/repos/sclorg/ruby-ex/milestones{/number}", - "notifications_url": "https://api.github.com/repos/sclorg/ruby-ex/notifications{?since,all,participating}", - "labels_url": "https://api.github.com/repos/sclorg/ruby-ex/labels{/name}", - "releases_url": "https://api.github.com/repos/sclorg/ruby-ex/releases{/id}", - "deployments_url": "https://api.github.com/repos/sclorg/ruby-ex/deployments", - "created_at": "2015-09-10T22:15:54Z", - "updated_at": "2021-09-07T07:42:59Z", - "pushed_at": "2021-10-12T18:16:36Z", - "git_url": "git://github.com/sclorg/ruby-ex.git", - "ssh_url": "git@github.com:sclorg/ruby-ex.git", - "clone_url": "https://github.com/sclorg/ruby-ex.git", - "svn_url": "https://github.com/sclorg/ruby-ex", - "homepage": null, - "size": 34, - "stargazers_count": 30, - "watchers_count": 30, - "language": "Ruby", - "has_issues": true, - "has_projects": true, - "has_downloads": true, - "has_wiki": false, - "has_pages": false, - "forks_count": 2405, - "mirror_url": null, - "archived": false, - "disabled": false, - "open_issues_count": 5, - "license": null, - "allow_forking": true, - "is_template": false, - "topics": [ - - ], - "visibility": "public", - "forks": 2405, - "open_issues": 5, - "watchers": 30, - "default_branch": "master", - "temp_clone_token": null, - "organization": { - "login": "sclorg", - "id": 9047960, - "node_id": "MDEyOk9yZ2FuaXphdGlvbjkwNDc5NjA=", - "avatar_url": "https://avatars.githubusercontent.com/u/9047960?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/sclorg", - "html_url": "https://github.com/sclorg", - "followers_url": "https://api.github.com/users/sclorg/followers", - "following_url": "https://api.github.com/users/sclorg/following{/other_user}", - "gists_url": "https://api.github.com/users/sclorg/gists{/gist_id}", - "starred_url": "https://api.github.com/users/sclorg/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/sclorg/subscriptions", - "organizations_url": "https://api.github.com/users/sclorg/orgs", - "repos_url": "https://api.github.com/users/sclorg/repos", - "events_url": "https://api.github.com/users/sclorg/events{/privacy}", - "received_events_url": "https://api.github.com/users/sclorg/received_events", - "type": "Organization", - "site_admin": false - }, - "network_count": 2405, - "subscribers_count": 68 - } - \ No newline at end of file diff --git a/frontend/packages/dev-console/integration-tests/testData/git-import/s2i-dotnetcore-ex/contents.json b/frontend/packages/dev-console/integration-tests/testData/git-import/s2i-dotnetcore-ex/contents.json deleted file mode 100644 index ee40b4703fc..00000000000 --- a/frontend/packages/dev-console/integration-tests/testData/git-import/s2i-dotnetcore-ex/contents.json +++ /dev/null @@ -1,114 +0,0 @@ -[ - { - "name": ".editorconfig", - "path": ".editorconfig", - "sha": "5c42a0efa9df05e7a29076469bd8727d9dbeb43a", - "size": 328, - "url": "https://api.github.com/repos/redhat-developer/s2i-dotnetcore-ex/contents/.editorconfig?ref=dotnet-6.0", - "html_url": "https://github.com/redhat-developer/s2i-dotnetcore-ex/blob/dotnet-6.0/.editorconfig", - "git_url": "https://api.github.com/repos/redhat-developer/s2i-dotnetcore-ex/git/blobs/5c42a0efa9df05e7a29076469bd8727d9dbeb43a", - "download_url": "https://raw.githubusercontent.com/redhat-developer/s2i-dotnetcore-ex/dotnet-6.0/.editorconfig", - "type": "file", - "_links": { - "self": "https://api.github.com/repos/redhat-developer/s2i-dotnetcore-ex/contents/.editorconfig?ref=dotnet-6.0", - "git": "https://api.github.com/repos/redhat-developer/s2i-dotnetcore-ex/git/blobs/5c42a0efa9df05e7a29076469bd8727d9dbeb43a", - "html": "https://github.com/redhat-developer/s2i-dotnetcore-ex/blob/dotnet-6.0/.editorconfig" - } - }, - { - "name": ".gitattributes", - "path": ".gitattributes", - "sha": "1aa4c530809986e2160bea60c32f9d7e6de9f497", - "size": 102, - "url": "https://api.github.com/repos/redhat-developer/s2i-dotnetcore-ex/contents/.gitattributes?ref=dotnet-6.0", - "html_url": "https://github.com/redhat-developer/s2i-dotnetcore-ex/blob/dotnet-6.0/.gitattributes", - "git_url": "https://api.github.com/repos/redhat-developer/s2i-dotnetcore-ex/git/blobs/1aa4c530809986e2160bea60c32f9d7e6de9f497", - "download_url": "https://raw.githubusercontent.com/redhat-developer/s2i-dotnetcore-ex/dotnet-6.0/.gitattributes", - "type": "file", - "_links": { - "self": "https://api.github.com/repos/redhat-developer/s2i-dotnetcore-ex/contents/.gitattributes?ref=dotnet-6.0", - "git": "https://api.github.com/repos/redhat-developer/s2i-dotnetcore-ex/git/blobs/1aa4c530809986e2160bea60c32f9d7e6de9f497", - "html": "https://github.com/redhat-developer/s2i-dotnetcore-ex/blob/dotnet-6.0/.gitattributes" - } - }, - { - "name": ".mailmap", - "path": ".mailmap", - "sha": "1ecc13b5b900441aa199929ca7230cd55e475e47", - "size": 83, - "url": "https://api.github.com/repos/redhat-developer/s2i-dotnetcore-ex/contents/.mailmap?ref=dotnet-6.0", - "html_url": "https://github.com/redhat-developer/s2i-dotnetcore-ex/blob/dotnet-6.0/.mailmap", - "git_url": "https://api.github.com/repos/redhat-developer/s2i-dotnetcore-ex/git/blobs/1ecc13b5b900441aa199929ca7230cd55e475e47", - "download_url": "https://raw.githubusercontent.com/redhat-developer/s2i-dotnetcore-ex/dotnet-6.0/.mailmap", - "type": "file", - "_links": { - "self": "https://api.github.com/repos/redhat-developer/s2i-dotnetcore-ex/contents/.mailmap?ref=dotnet-6.0", - "git": "https://api.github.com/repos/redhat-developer/s2i-dotnetcore-ex/git/blobs/1ecc13b5b900441aa199929ca7230cd55e475e47", - "html": "https://github.com/redhat-developer/s2i-dotnetcore-ex/blob/dotnet-6.0/.mailmap" - } - }, - { - "name": "Contributing.adoc", - "path": "Contributing.adoc", - "sha": "7e22870af24c6d3f4f462abf1379353ab0c3e21a", - "size": 2568, - "url": "https://api.github.com/repos/redhat-developer/s2i-dotnetcore-ex/contents/Contributing.adoc?ref=dotnet-6.0", - "html_url": "https://github.com/redhat-developer/s2i-dotnetcore-ex/blob/dotnet-6.0/Contributing.adoc", - "git_url": "https://api.github.com/repos/redhat-developer/s2i-dotnetcore-ex/git/blobs/7e22870af24c6d3f4f462abf1379353ab0c3e21a", - "download_url": "https://raw.githubusercontent.com/redhat-developer/s2i-dotnetcore-ex/dotnet-6.0/Contributing.adoc", - "type": "file", - "_links": { - "self": "https://api.github.com/repos/redhat-developer/s2i-dotnetcore-ex/contents/Contributing.adoc?ref=dotnet-6.0", - "git": "https://api.github.com/repos/redhat-developer/s2i-dotnetcore-ex/git/blobs/7e22870af24c6d3f4f462abf1379353ab0c3e21a", - "html": "https://github.com/redhat-developer/s2i-dotnetcore-ex/blob/dotnet-6.0/Contributing.adoc" - } - }, - { - "name": "LICENSE", - "path": "LICENSE", - "sha": "7a4a3ea2424c09fbe48d455aed1eaa94d9124835", - "size": 11357, - "url": "https://api.github.com/repos/redhat-developer/s2i-dotnetcore-ex/contents/LICENSE?ref=dotnet-6.0", - "html_url": "https://github.com/redhat-developer/s2i-dotnetcore-ex/blob/dotnet-6.0/LICENSE", - "git_url": "https://api.github.com/repos/redhat-developer/s2i-dotnetcore-ex/git/blobs/7a4a3ea2424c09fbe48d455aed1eaa94d9124835", - "download_url": "https://raw.githubusercontent.com/redhat-developer/s2i-dotnetcore-ex/dotnet-6.0/LICENSE", - "type": "file", - "_links": { - "self": "https://api.github.com/repos/redhat-developer/s2i-dotnetcore-ex/contents/LICENSE?ref=dotnet-6.0", - "git": "https://api.github.com/repos/redhat-developer/s2i-dotnetcore-ex/git/blobs/7a4a3ea2424c09fbe48d455aed1eaa94d9124835", - "html": "https://github.com/redhat-developer/s2i-dotnetcore-ex/blob/dotnet-6.0/LICENSE" - } - }, - { - "name": "README.adoc", - "path": "README.adoc", - "sha": "15ad6621a53394c2269843c794352073f987e5fd", - "size": 1717, - "url": "https://api.github.com/repos/redhat-developer/s2i-dotnetcore-ex/contents/README.adoc?ref=dotnet-6.0", - "html_url": "https://github.com/redhat-developer/s2i-dotnetcore-ex/blob/dotnet-6.0/README.adoc", - "git_url": "https://api.github.com/repos/redhat-developer/s2i-dotnetcore-ex/git/blobs/15ad6621a53394c2269843c794352073f987e5fd", - "download_url": "https://raw.githubusercontent.com/redhat-developer/s2i-dotnetcore-ex/dotnet-6.0/README.adoc", - "type": "file", - "_links": { - "self": "https://api.github.com/repos/redhat-developer/s2i-dotnetcore-ex/contents/README.adoc?ref=dotnet-6.0", - "git": "https://api.github.com/repos/redhat-developer/s2i-dotnetcore-ex/git/blobs/15ad6621a53394c2269843c794352073f987e5fd", - "html": "https://github.com/redhat-developer/s2i-dotnetcore-ex/blob/dotnet-6.0/README.adoc" - } - }, - { - "name": "app", - "path": "app", - "sha": "1380bc4df945c0e1eafe0f0ec3dff301cf1eb01b", - "size": 0, - "url": "https://api.github.com/repos/redhat-developer/s2i-dotnetcore-ex/contents/app?ref=dotnet-6.0", - "html_url": "https://github.com/redhat-developer/s2i-dotnetcore-ex/tree/dotnet-6.0/app", - "git_url": "https://api.github.com/repos/redhat-developer/s2i-dotnetcore-ex/git/trees/1380bc4df945c0e1eafe0f0ec3dff301cf1eb01b", - "download_url": null, - "type": "dir", - "_links": { - "self": "https://api.github.com/repos/redhat-developer/s2i-dotnetcore-ex/contents/app?ref=dotnet-6.0", - "git": "https://api.github.com/repos/redhat-developer/s2i-dotnetcore-ex/git/trees/1380bc4df945c0e1eafe0f0ec3dff301cf1eb01b", - "html": "https://github.com/redhat-developer/s2i-dotnetcore-ex/tree/dotnet-6.0/app" - } - } -] diff --git a/frontend/packages/dev-console/integration-tests/testData/git-import/s2i-dotnetcore-ex/repo.json b/frontend/packages/dev-console/integration-tests/testData/git-import/s2i-dotnetcore-ex/repo.json deleted file mode 100644 index 6d7f21d8aab..00000000000 --- a/frontend/packages/dev-console/integration-tests/testData/git-import/s2i-dotnetcore-ex/repo.json +++ /dev/null @@ -1,129 +0,0 @@ -{ - "id": 58481825, - "node_id": "MDEwOlJlcG9zaXRvcnk1ODQ4MTgyNQ==", - "name": "s2i-dotnetcore-ex", - "full_name": "redhat-developer/s2i-dotnetcore-ex", - "private": false, - "owner": { - "login": "redhat-developer", - "id": 11033755, - "node_id": "MDEyOk9yZ2FuaXphdGlvbjExMDMzNzU1", - "avatar_url": "https://avatars.githubusercontent.com/u/11033755?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/redhat-developer", - "html_url": "https://github.com/redhat-developer", - "followers_url": "https://api.github.com/users/redhat-developer/followers", - "following_url": "https://api.github.com/users/redhat-developer/following{/other_user}", - "gists_url": "https://api.github.com/users/redhat-developer/gists{/gist_id}", - "starred_url": "https://api.github.com/users/redhat-developer/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/redhat-developer/subscriptions", - "organizations_url": "https://api.github.com/users/redhat-developer/orgs", - "repos_url": "https://api.github.com/users/redhat-developer/repos", - "events_url": "https://api.github.com/users/redhat-developer/events{/privacy}", - "received_events_url": "https://api.github.com/users/redhat-developer/received_events", - "type": "Organization", - "site_admin": false - }, - "html_url": "https://github.com/redhat-developer/s2i-dotnetcore-ex", - "description": "Example application for the OpenShift s2i-dotnetcore builder image", - "fork": false, - "url": "https://api.github.com/repos/redhat-developer/s2i-dotnetcore-ex", - "forks_url": "https://api.github.com/repos/redhat-developer/s2i-dotnetcore-ex/forks", - "keys_url": "https://api.github.com/repos/redhat-developer/s2i-dotnetcore-ex/keys{/key_id}", - "collaborators_url": "https://api.github.com/repos/redhat-developer/s2i-dotnetcore-ex/collaborators{/collaborator}", - "teams_url": "https://api.github.com/repos/redhat-developer/s2i-dotnetcore-ex/teams", - "hooks_url": "https://api.github.com/repos/redhat-developer/s2i-dotnetcore-ex/hooks", - "issue_events_url": "https://api.github.com/repos/redhat-developer/s2i-dotnetcore-ex/issues/events{/number}", - "events_url": "https://api.github.com/repos/redhat-developer/s2i-dotnetcore-ex/events", - "assignees_url": "https://api.github.com/repos/redhat-developer/s2i-dotnetcore-ex/assignees{/user}", - "branches_url": "https://api.github.com/repos/redhat-developer/s2i-dotnetcore-ex/branches{/branch}", - "tags_url": "https://api.github.com/repos/redhat-developer/s2i-dotnetcore-ex/tags", - "blobs_url": "https://api.github.com/repos/redhat-developer/s2i-dotnetcore-ex/git/blobs{/sha}", - "git_tags_url": "https://api.github.com/repos/redhat-developer/s2i-dotnetcore-ex/git/tags{/sha}", - "git_refs_url": "https://api.github.com/repos/redhat-developer/s2i-dotnetcore-ex/git/refs{/sha}", - "trees_url": "https://api.github.com/repos/redhat-developer/s2i-dotnetcore-ex/git/trees{/sha}", - "statuses_url": "https://api.github.com/repos/redhat-developer/s2i-dotnetcore-ex/statuses/{sha}", - "languages_url": "https://api.github.com/repos/redhat-developer/s2i-dotnetcore-ex/languages", - "stargazers_url": "https://api.github.com/repos/redhat-developer/s2i-dotnetcore-ex/stargazers", - "contributors_url": "https://api.github.com/repos/redhat-developer/s2i-dotnetcore-ex/contributors", - "subscribers_url": "https://api.github.com/repos/redhat-developer/s2i-dotnetcore-ex/subscribers", - "subscription_url": "https://api.github.com/repos/redhat-developer/s2i-dotnetcore-ex/subscription", - "commits_url": "https://api.github.com/repos/redhat-developer/s2i-dotnetcore-ex/commits{/sha}", - "git_commits_url": "https://api.github.com/repos/redhat-developer/s2i-dotnetcore-ex/git/commits{/sha}", - "comments_url": "https://api.github.com/repos/redhat-developer/s2i-dotnetcore-ex/comments{/number}", - "issue_comment_url": "https://api.github.com/repos/redhat-developer/s2i-dotnetcore-ex/issues/comments{/number}", - "contents_url": "https://api.github.com/repos/redhat-developer/s2i-dotnetcore-ex/contents/{+path}", - "compare_url": "https://api.github.com/repos/redhat-developer/s2i-dotnetcore-ex/compare/{base}...{head}", - "merges_url": "https://api.github.com/repos/redhat-developer/s2i-dotnetcore-ex/merges", - "archive_url": "https://api.github.com/repos/redhat-developer/s2i-dotnetcore-ex/{archive_format}{/ref}", - "downloads_url": "https://api.github.com/repos/redhat-developer/s2i-dotnetcore-ex/downloads", - "issues_url": "https://api.github.com/repos/redhat-developer/s2i-dotnetcore-ex/issues{/number}", - "pulls_url": "https://api.github.com/repos/redhat-developer/s2i-dotnetcore-ex/pulls{/number}", - "milestones_url": "https://api.github.com/repos/redhat-developer/s2i-dotnetcore-ex/milestones{/number}", - "notifications_url": "https://api.github.com/repos/redhat-developer/s2i-dotnetcore-ex/notifications{?since,all,participating}", - "labels_url": "https://api.github.com/repos/redhat-developer/s2i-dotnetcore-ex/labels{/name}", - "releases_url": "https://api.github.com/repos/redhat-developer/s2i-dotnetcore-ex/releases{/id}", - "deployments_url": "https://api.github.com/repos/redhat-developer/s2i-dotnetcore-ex/deployments", - "created_at": "2016-05-10T17:44:13Z", - "updated_at": "2021-10-13T05:18:38Z", - "pushed_at": "2021-11-10T08:23:29Z", - "git_url": "git://github.com/redhat-developer/s2i-dotnetcore-ex.git", - "ssh_url": "git@github.com:redhat-developer/s2i-dotnetcore-ex.git", - "clone_url": "https://github.com/redhat-developer/s2i-dotnetcore-ex.git", - "svn_url": "https://github.com/redhat-developer/s2i-dotnetcore-ex", - "homepage": "", - "size": 2433, - "stargazers_count": 64, - "watchers_count": 64, - "language": "HTML", - "has_issues": true, - "has_projects": true, - "has_downloads": true, - "has_wiki": false, - "has_pages": false, - "forks_count": 407, - "mirror_url": null, - "archived": false, - "disabled": false, - "open_issues_count": 2, - "license": { - "key": "apache-2.0", - "name": "Apache License 2.0", - "spdx_id": "Apache-2.0", - "url": "https://api.github.com/licenses/apache-2.0", - "node_id": "MDc6TGljZW5zZTI=" - }, - "allow_forking": true, - "is_template": false, - "topics": [ - - ], - "visibility": "public", - "forks": 407, - "open_issues": 2, - "watchers": 64, - "default_branch": "dotnet-6.0", - "temp_clone_token": null, - "organization": { - "login": "redhat-developer", - "id": 11033755, - "node_id": "MDEyOk9yZ2FuaXphdGlvbjExMDMzNzU1", - "avatar_url": "https://avatars.githubusercontent.com/u/11033755?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/redhat-developer", - "html_url": "https://github.com/redhat-developer", - "followers_url": "https://api.github.com/users/redhat-developer/followers", - "following_url": "https://api.github.com/users/redhat-developer/following{/other_user}", - "gists_url": "https://api.github.com/users/redhat-developer/gists{/gist_id}", - "starred_url": "https://api.github.com/users/redhat-developer/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/redhat-developer/subscriptions", - "organizations_url": "https://api.github.com/users/redhat-developer/orgs", - "repos_url": "https://api.github.com/users/redhat-developer/repos", - "events_url": "https://api.github.com/users/redhat-developer/events{/privacy}", - "received_events_url": "https://api.github.com/users/redhat-developer/received_events", - "type": "Organization", - "site_admin": false - }, - "network_count": 407, - "subscribers_count": 13 -} diff --git a/frontend/packages/dev-console/integration-tests/testData/git-import/serverless-func-repo/contents.json b/frontend/packages/dev-console/integration-tests/testData/git-import/serverless-func-repo/contents.json deleted file mode 100644 index a7e646eb866..00000000000 --- a/frontend/packages/dev-console/integration-tests/testData/git-import/serverless-func-repo/contents.json +++ /dev/null @@ -1,114 +0,0 @@ -[ - { - "name": ".gitignore", - "path": ".gitignore", - "sha": "3abd5fdff11e295a0d72346ac99fe7034da1c6cb", - "size": 126, - "url": "https://api.github.com/repos/Lucifergene/serverless-func-repo/contents/.gitignore?ref=master", - "html_url": "https://github.com/Lucifergene/serverless-func-repo/blob/master/.gitignore", - "git_url": "https://api.github.com/repos/Lucifergene/serverless-func-repo/git/blobs/3abd5fdff11e295a0d72346ac99fe7034da1c6cb", - "download_url": "https://raw.githubusercontent.com/Lucifergene/serverless-func-repo/master/.gitignore", - "type": "file", - "_links": { - "self": "https://api.github.com/repos/Lucifergene/serverless-func-repo/contents/.gitignore?ref=master", - "git": "https://api.github.com/repos/Lucifergene/serverless-func-repo/git/blobs/3abd5fdff11e295a0d72346ac99fe7034da1c6cb", - "html": "https://github.com/Lucifergene/serverless-func-repo/blob/master/.gitignore" - } - }, - { - "name": "README.md", - "path": "README.md", - "sha": "3ecedd17b45af0a59d4a52dd648eda8ba090047a", - "size": 2096, - "url": "https://api.github.com/repos/Lucifergene/serverless-func-repo/contents/README.md?ref=master", - "html_url": "https://github.com/Lucifergene/serverless-func-repo/blob/master/README.md", - "git_url": "https://api.github.com/repos/Lucifergene/serverless-func-repo/git/blobs/3ecedd17b45af0a59d4a52dd648eda8ba090047a", - "download_url": "https://raw.githubusercontent.com/Lucifergene/serverless-func-repo/master/README.md", - "type": "file", - "_links": { - "self": "https://api.github.com/repos/Lucifergene/serverless-func-repo/contents/README.md?ref=master", - "git": "https://api.github.com/repos/Lucifergene/serverless-func-repo/git/blobs/3ecedd17b45af0a59d4a52dd648eda8ba090047a", - "html": "https://github.com/Lucifergene/serverless-func-repo/blob/master/README.md" - } - }, - { - "name": "func.yaml", - "path": "func.yaml", - "sha": "9336f0c8f3b0f5c37a55dc7e4e063fa99bfa4a29", - "size": 612, - "url": "https://api.github.com/repos/Lucifergene/serverless-func-repo/contents/func.yaml?ref=master", - "html_url": "https://github.com/Lucifergene/serverless-func-repo/blob/master/func.yaml", - "git_url": "https://api.github.com/repos/Lucifergene/serverless-func-repo/git/blobs/9336f0c8f3b0f5c37a55dc7e4e063fa99bfa4a29", - "download_url": "https://raw.githubusercontent.com/Lucifergene/serverless-func-repo/master/func.yaml", - "type": "file", - "_links": { - "self": "https://api.github.com/repos/Lucifergene/serverless-func-repo/contents/func.yaml?ref=master", - "git": "https://api.github.com/repos/Lucifergene/serverless-func-repo/git/blobs/9336f0c8f3b0f5c37a55dc7e4e063fa99bfa4a29", - "html": "https://github.com/Lucifergene/serverless-func-repo/blob/master/func.yaml" - } - }, - { - "name": "index.js", - "path": "index.js", - "sha": "04c81441d0b3e3e39bee13343c4058956f4ee0e4", - "size": 1463, - "url": "https://api.github.com/repos/Lucifergene/serverless-func-repo/contents/index.js?ref=master", - "html_url": "https://github.com/Lucifergene/serverless-func-repo/blob/master/index.js", - "git_url": "https://api.github.com/repos/Lucifergene/serverless-func-repo/git/blobs/04c81441d0b3e3e39bee13343c4058956f4ee0e4", - "download_url": "https://raw.githubusercontent.com/Lucifergene/serverless-func-repo/master/index.js", - "type": "file", - "_links": { - "self": "https://api.github.com/repos/Lucifergene/serverless-func-repo/contents/index.js?ref=master", - "git": "https://api.github.com/repos/Lucifergene/serverless-func-repo/git/blobs/04c81441d0b3e3e39bee13343c4058956f4ee0e4", - "html": "https://github.com/Lucifergene/serverless-func-repo/blob/master/index.js" - } - }, - { - "name": "package-lock.json", - "path": "package-lock.json", - "sha": "14391b4480f8919aa6cedfe7e92585eb55259d8a", - "size": 151831, - "url": "https://api.github.com/repos/Lucifergene/serverless-func-repo/contents/package-lock.json?ref=master", - "html_url": "https://github.com/Lucifergene/serverless-func-repo/blob/master/package-lock.json", - "git_url": "https://api.github.com/repos/Lucifergene/serverless-func-repo/git/blobs/14391b4480f8919aa6cedfe7e92585eb55259d8a", - "download_url": "https://raw.githubusercontent.com/Lucifergene/serverless-func-repo/master/package-lock.json", - "type": "file", - "_links": { - "self": "https://api.github.com/repos/Lucifergene/serverless-func-repo/contents/package-lock.json?ref=master", - "git": "https://api.github.com/repos/Lucifergene/serverless-func-repo/git/blobs/14391b4480f8919aa6cedfe7e92585eb55259d8a", - "html": "https://github.com/Lucifergene/serverless-func-repo/blob/master/package-lock.json" - } - }, - { - "name": "package.json", - "path": "package.json", - "sha": "2806b7a4ce0a7caf6f1e3d9c0a833c81db97f7eb", - "size": 565, - "url": "https://api.github.com/repos/Lucifergene/serverless-func-repo/contents/package.json?ref=master", - "html_url": "https://github.com/Lucifergene/serverless-func-repo/blob/master/package.json", - "git_url": "https://api.github.com/repos/Lucifergene/serverless-func-repo/git/blobs/2806b7a4ce0a7caf6f1e3d9c0a833c81db97f7eb", - "download_url": "https://raw.githubusercontent.com/Lucifergene/serverless-func-repo/master/package.json", - "type": "file", - "_links": { - "self": "https://api.github.com/repos/Lucifergene/serverless-func-repo/contents/package.json?ref=master", - "git": "https://api.github.com/repos/Lucifergene/serverless-func-repo/git/blobs/2806b7a4ce0a7caf6f1e3d9c0a833c81db97f7eb", - "html": "https://github.com/Lucifergene/serverless-func-repo/blob/master/package.json" - } - }, - { - "name": "test", - "path": "test", - "sha": "9cea2aab5cb7d30f925060499367172b566d0842", - "size": 0, - "url": "https://api.github.com/repos/Lucifergene/serverless-func-repo/contents/test?ref=master", - "html_url": "https://github.com/Lucifergene/serverless-func-repo/tree/master/test", - "git_url": "https://api.github.com/repos/Lucifergene/serverless-func-repo/git/trees/9cea2aab5cb7d30f925060499367172b566d0842", - "download_url": null, - "type": "dir", - "_links": { - "self": "https://api.github.com/repos/Lucifergene/serverless-func-repo/contents/test?ref=master", - "git": "https://api.github.com/repos/Lucifergene/serverless-func-repo/git/trees/9cea2aab5cb7d30f925060499367172b566d0842", - "html": "https://github.com/Lucifergene/serverless-func-repo/tree/master/test" - } - } - ] diff --git a/frontend/packages/dev-console/integration-tests/testData/git-import/serverless-func-repo/func.json b/frontend/packages/dev-console/integration-tests/testData/git-import/serverless-func-repo/func.json deleted file mode 100644 index c1c22112d99..00000000000 --- a/frontend/packages/dev-console/integration-tests/testData/git-import/serverless-func-repo/func.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "name": "func.yaml", - "path": "func.yaml", - "sha": "9336f0c8f3b0f5c37a55dc7e4e063fa99bfa4a29", - "size": 612, - "url": "https://api.github.com/repos/Lucifergene/serverless-func-repo/contents/func.yaml?ref=master", - "html_url": "https://github.com/Lucifergene/serverless-func-repo/blob/master/func.yaml", - "git_url": "https://api.github.com/repos/Lucifergene/serverless-func-repo/git/blobs/9336f0c8f3b0f5c37a55dc7e4e063fa99bfa4a29", - "download_url": "https://raw.githubusercontent.com/Lucifergene/serverless-func-repo/master/func.yaml", - "type": "file", - "content": "c3BlY1ZlcnNpb246IDAuMzQuMApuYW1lOiBoZWxsby1mdW5jLW5vZGUKcnVu\ndGltZTogbm9kZQpyZWdpc3RyeTogcXVheS5pby92aXJhal8xCmltYWdlOiBx\ndWF5LmlvL3ZpcmFqXzEvaGVsbG8tZnVuYy1ub2RlOmxhdGVzdAppbWFnZURp\nZ2VzdDogc2hhMjU2OmNiOTFjNmY4YThhODk3YTE0MjMxMjg4YjkwYWYzNWVm\nYTAwZmRhMjRjMzk5ZWQ5M2FmZGRlNThiYmNkOWI0Y2EKY3JlYXRlZDogMjAy\nMi0xMS0xNlQxNTozODozOC41MDIyNzUyNDQrMDU6MzAKaW52b2NhdGlvbjoK\nICBmb3JtYXQ6IGh0dHAKYnVpbGQ6CiAgYnVpbGRwYWNrczogW10KICBidWls\nZGVyOiBzMmkKICBidWlsZEVudnM6IAogIC0gbmFtZTogTVlfQlVJTERfS0VZ\nCiAgICB2YWx1ZTogdGVzdHMKcnVuOgogIHZvbHVtZXM6IFtdCiAgZW52czoK\nICAtIG5hbWU6IE1ZX0FQSV9LRVkKICAgIHZhbHVlOiAne3sgZW52OkFQSV9L\nRVkgfX0nCmRlcGxveToKICBuYW1lc3BhY2U6IHZpcmFqCiAgYW5ub3RhdGlv\nbnM6IHt9CiAgb3B0aW9uczoge30KICBsYWJlbHM6IFtdCiAgaGVhbHRoRW5k\ncG9pbnRzOgogICAgbGl2ZW5lc3M6IC9oZWFsdGgvbGl2ZW5lc3MKICAgIHJl\nYWRpbmVzczogL2hlYWx0aC9yZWFkaW5lc3MK\n", - "encoding": "base64", - "_links": { - "self": "https://api.github.com/repos/Lucifergene/serverless-func-repo/contents/func.yaml?ref=master", - "git": "https://api.github.com/repos/Lucifergene/serverless-func-repo/git/blobs/9336f0c8f3b0f5c37a55dc7e4e063fa99bfa4a29", - "html": "https://github.com/Lucifergene/serverless-func-repo/blob/master/func.yaml" - } -} \ No newline at end of file diff --git a/frontend/packages/dev-console/integration-tests/testData/git-import/serverless-func-repo/package.json b/frontend/packages/dev-console/integration-tests/testData/git-import/serverless-func-repo/package.json deleted file mode 100644 index 0361fd3fedf..00000000000 --- a/frontend/packages/dev-console/integration-tests/testData/git-import/serverless-func-repo/package.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "name": "package.json", - "path": "package.json", - "sha": "2806b7a4ce0a7caf6f1e3d9c0a833c81db97f7eb", - "size": 565, - "url": "https://api.github.com/repos/Lucifergene/serverless-func-repo/contents/package.json?ref=master", - "html_url": "https://github.com/Lucifergene/serverless-func-repo/blob/master/package.json", - "git_url": "https://api.github.com/repos/Lucifergene/serverless-func-repo/git/blobs/2806b7a4ce0a7caf6f1e3d9c0a833c81db97f7eb", - "download_url": "https://raw.githubusercontent.com/Lucifergene/serverless-func-repo/master/package.json", - "type": "file", - "content": "ewogICJuYW1lIjogImh0dHAtaGFuZGxlciIsCiAgInZlcnNpb24iOiAiMC4x\nLjAiLAogICJkZXNjcmlwdGlvbiI6ICJBIGZ1bmN0aW9uIHdoaWNoIHJlc3Bv\nbmRzIHRvIEhUVFAgcmVxdWVzdHMiLAogICJtYWluIjogImluZGV4LmpzIiwK\nICAic2NyaXB0cyI6IHsKICAgICJ0ZXN0IjogIm5vZGUgdGVzdC91bml0Lmpz\nICYmIG5vZGUgdGVzdC9pbnRlZ3JhdGlvbi5qcyIsCiAgICAic3RhcnQiOiAi\nZmFhcy1qcy1ydW50aW1lIC4vaW5kZXguanMiLAogICAgImRlYnVnIjogIm5v\nZGVtb24gLS1pbnNwZWN0IC4vbm9kZV9tb2R1bGVzL2ZhYXMtanMtcnVudGlt\nZS9iaW4vY2xpLmpzIC4vaW5kZXguanMiCiAgfSwKICAia2V5d29yZHMiOiBb\nXSwKICAiYXV0aG9yIjogIiIsCiAgImxpY2Vuc2UiOiAiQXBhY2hlLTIuMCIs\nCiAgImRlcGVuZGVuY2llcyI6IHsKICAgICJmYWFzLWpzLXJ1bnRpbWUiOiAi\nXjAuOS4wIgogIH0sCiAgImRldkRlcGVuZGVuY2llcyI6IHsKICAgICJub2Rl\nbW9uIjogIl4yLjAuNCIsCiAgICAic3VwZXJ0ZXN0IjogIl40LjAuMiIsCiAg\nICAidGFwZSI6ICJeNS4wLjEiCiAgfQp9Cg==\n", - "encoding": "base64", - "_links": { - "self": "https://api.github.com/repos/Lucifergene/serverless-func-repo/contents/package.json?ref=master", - "git": "https://api.github.com/repos/Lucifergene/serverless-func-repo/git/blobs/2806b7a4ce0a7caf6f1e3d9c0a833c81db97f7eb", - "html": "https://github.com/Lucifergene/serverless-func-repo/blob/master/package.json" - } -} \ No newline at end of file diff --git a/frontend/packages/dev-console/integration-tests/testData/git-import/serverless-func-repo/repo.json b/frontend/packages/dev-console/integration-tests/testData/git-import/serverless-func-repo/repo.json deleted file mode 100644 index 728449104a5..00000000000 --- a/frontend/packages/dev-console/integration-tests/testData/git-import/serverless-func-repo/repo.json +++ /dev/null @@ -1,105 +0,0 @@ -{ - "id": 590432017, - "node_id": "R_kgDOIzFHEQ", - "name": "serverless-func-repo", - "full_name": "Lucifergene/serverless-func-repo", - "private": false, - "owner": { - "login": "Lucifergene", - "id": 47265560, - "node_id": "MDQ6VXNlcjQ3MjY1NTYw", - "avatar_url": "https://avatars.githubusercontent.com/u/47265560?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/Lucifergene", - "html_url": "https://github.com/Lucifergene", - "followers_url": "https://api.github.com/users/Lucifergene/followers", - "following_url": "https://api.github.com/users/Lucifergene/following{/other_user}", - "gists_url": "https://api.github.com/users/Lucifergene/gists{/gist_id}", - "starred_url": "https://api.github.com/users/Lucifergene/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/Lucifergene/subscriptions", - "organizations_url": "https://api.github.com/users/Lucifergene/orgs", - "repos_url": "https://api.github.com/users/Lucifergene/repos", - "events_url": "https://api.github.com/users/Lucifergene/events{/privacy}", - "received_events_url": "https://api.github.com/users/Lucifergene/received_events", - "type": "User", - "site_admin": false - }, - "html_url": "https://github.com/Lucifergene/serverless-func-repo", - "description": null, - "fork": false, - "url": "https://api.github.com/repos/Lucifergene/serverless-func-repo", - "forks_url": "https://api.github.com/repos/Lucifergene/serverless-func-repo/forks", - "keys_url": "https://api.github.com/repos/Lucifergene/serverless-func-repo/keys{/key_id}", - "collaborators_url": "https://api.github.com/repos/Lucifergene/serverless-func-repo/collaborators{/collaborator}", - "teams_url": "https://api.github.com/repos/Lucifergene/serverless-func-repo/teams", - "hooks_url": "https://api.github.com/repos/Lucifergene/serverless-func-repo/hooks", - "issue_events_url": "https://api.github.com/repos/Lucifergene/serverless-func-repo/issues/events{/number}", - "events_url": "https://api.github.com/repos/Lucifergene/serverless-func-repo/events", - "assignees_url": "https://api.github.com/repos/Lucifergene/serverless-func-repo/assignees{/user}", - "branches_url": "https://api.github.com/repos/Lucifergene/serverless-func-repo/branches{/branch}", - "tags_url": "https://api.github.com/repos/Lucifergene/serverless-func-repo/tags", - "blobs_url": "https://api.github.com/repos/Lucifergene/serverless-func-repo/git/blobs{/sha}", - "git_tags_url": "https://api.github.com/repos/Lucifergene/serverless-func-repo/git/tags{/sha}", - "git_refs_url": "https://api.github.com/repos/Lucifergene/serverless-func-repo/git/refs{/sha}", - "trees_url": "https://api.github.com/repos/Lucifergene/serverless-func-repo/git/trees{/sha}", - "statuses_url": "https://api.github.com/repos/Lucifergene/serverless-func-repo/statuses/{sha}", - "languages_url": "https://api.github.com/repos/Lucifergene/serverless-func-repo/languages", - "stargazers_url": "https://api.github.com/repos/Lucifergene/serverless-func-repo/stargazers", - "contributors_url": "https://api.github.com/repos/Lucifergene/serverless-func-repo/contributors", - "subscribers_url": "https://api.github.com/repos/Lucifergene/serverless-func-repo/subscribers", - "subscription_url": "https://api.github.com/repos/Lucifergene/serverless-func-repo/subscription", - "commits_url": "https://api.github.com/repos/Lucifergene/serverless-func-repo/commits{/sha}", - "git_commits_url": "https://api.github.com/repos/Lucifergene/serverless-func-repo/git/commits{/sha}", - "comments_url": "https://api.github.com/repos/Lucifergene/serverless-func-repo/comments{/number}", - "issue_comment_url": "https://api.github.com/repos/Lucifergene/serverless-func-repo/issues/comments{/number}", - "contents_url": "https://api.github.com/repos/Lucifergene/serverless-func-repo/contents/{+path}", - "compare_url": "https://api.github.com/repos/Lucifergene/serverless-func-repo/compare/{base}...{head}", - "merges_url": "https://api.github.com/repos/Lucifergene/serverless-func-repo/merges", - "archive_url": "https://api.github.com/repos/Lucifergene/serverless-func-repo/{archive_format}{/ref}", - "downloads_url": "https://api.github.com/repos/Lucifergene/serverless-func-repo/downloads", - "issues_url": "https://api.github.com/repos/Lucifergene/serverless-func-repo/issues{/number}", - "pulls_url": "https://api.github.com/repos/Lucifergene/serverless-func-repo/pulls{/number}", - "milestones_url": "https://api.github.com/repos/Lucifergene/serverless-func-repo/milestones{/number}", - "notifications_url": "https://api.github.com/repos/Lucifergene/serverless-func-repo/notifications{?since,all,participating}", - "labels_url": "https://api.github.com/repos/Lucifergene/serverless-func-repo/labels{/name}", - "releases_url": "https://api.github.com/repos/Lucifergene/serverless-func-repo/releases{/id}", - "deployments_url": "https://api.github.com/repos/Lucifergene/serverless-func-repo/deployments", - "created_at": "2023-01-18T12:03:32Z", - "updated_at": "2023-01-18T12:03:55Z", - "pushed_at": "2023-01-18T12:03:46Z", - "git_url": "git://github.com/Lucifergene/serverless-func-repo.git", - "ssh_url": "git@github.com:Lucifergene/serverless-func-repo.git", - "clone_url": "https://github.com/Lucifergene/serverless-func-repo.git", - "svn_url": "https://github.com/Lucifergene/serverless-func-repo", - "homepage": null, - "size": 70, - "stargazers_count": 0, - "watchers_count": 0, - "language": "JavaScript", - "has_issues": true, - "has_projects": true, - "has_downloads": true, - "has_wiki": true, - "has_pages": false, - "has_discussions": false, - "forks_count": 0, - "mirror_url": null, - "archived": false, - "disabled": false, - "open_issues_count": 0, - "license": null, - "allow_forking": true, - "is_template": false, - "web_commit_signoff_required": false, - "topics": [ - - ], - "visibility": "public", - "forks": 0, - "open_issues": 0, - "watchers": 0, - "default_branch": "master", - "temp_clone_token": null, - "network_count": 0, - "subscribers_count": 2 - } diff --git a/frontend/packages/dev-console/integration-tests/testData/git-import/spring-boot/contents.json b/frontend/packages/dev-console/integration-tests/testData/git-import/spring-boot/contents.json deleted file mode 100644 index a75724adab5..00000000000 --- a/frontend/packages/dev-console/integration-tests/testData/git-import/spring-boot/contents.json +++ /dev/null @@ -1,371 +0,0 @@ -[ - { - "name": ".editorconfig", - "path": ".editorconfig", - "sha": "48a40c43887addd0581131a72c5d9854729069cb", - "size": 100, - "url": "https://api.github.com/repos/spring-projects/spring-boot/contents/.editorconfig?ref=main", - "html_url": "https://github.com/spring-projects/spring-boot/blob/main/.editorconfig", - "git_url": "https://api.github.com/repos/spring-projects/spring-boot/git/blobs/48a40c43887addd0581131a72c5d9854729069cb", - "download_url": "https://raw.githubusercontent.com/spring-projects/spring-boot/main/.editorconfig", - "type": "file", - "_links": { - "self": "https://api.github.com/repos/spring-projects/spring-boot/contents/.editorconfig?ref=main", - "git": "https://api.github.com/repos/spring-projects/spring-boot/git/blobs/48a40c43887addd0581131a72c5d9854729069cb", - "html": "https://github.com/spring-projects/spring-boot/blob/main/.editorconfig" - } - }, - { - "name": ".github", - "path": ".github", - "sha": "86f011ab0941755c06433263e4e189ca3cf7a972", - "size": 0, - "url": "https://api.github.com/repos/spring-projects/spring-boot/contents/.github?ref=main", - "html_url": "https://github.com/spring-projects/spring-boot/tree/main/.github", - "git_url": "https://api.github.com/repos/spring-projects/spring-boot/git/trees/86f011ab0941755c06433263e4e189ca3cf7a972", - "download_url": null, - "type": "dir", - "_links": { - "self": "https://api.github.com/repos/spring-projects/spring-boot/contents/.github?ref=main", - "git": "https://api.github.com/repos/spring-projects/spring-boot/git/trees/86f011ab0941755c06433263e4e189ca3cf7a972", - "html": "https://github.com/spring-projects/spring-boot/tree/main/.github" - } - }, - { - "name": ".gitignore", - "path": ".gitignore", - "sha": "6edbdcda3124dfeb1e27052f88aae1909f5ef5e2", - "size": 429, - "url": "https://api.github.com/repos/spring-projects/spring-boot/contents/.gitignore?ref=main", - "html_url": "https://github.com/spring-projects/spring-boot/blob/main/.gitignore", - "git_url": "https://api.github.com/repos/spring-projects/spring-boot/git/blobs/6edbdcda3124dfeb1e27052f88aae1909f5ef5e2", - "download_url": "https://raw.githubusercontent.com/spring-projects/spring-boot/main/.gitignore", - "type": "file", - "_links": { - "self": "https://api.github.com/repos/spring-projects/spring-boot/contents/.gitignore?ref=main", - "git": "https://api.github.com/repos/spring-projects/spring-boot/git/blobs/6edbdcda3124dfeb1e27052f88aae1909f5ef5e2", - "html": "https://github.com/spring-projects/spring-boot/blob/main/.gitignore" - } - }, - { - "name": "CODE_OF_CONDUCT.adoc", - "path": "CODE_OF_CONDUCT.adoc", - "sha": "17783c7c066b04660444139b9b160f56db4c3df2", - "size": 2353, - "url": "https://api.github.com/repos/spring-projects/spring-boot/contents/CODE_OF_CONDUCT.adoc?ref=main", - "html_url": "https://github.com/spring-projects/spring-boot/blob/main/CODE_OF_CONDUCT.adoc", - "git_url": "https://api.github.com/repos/spring-projects/spring-boot/git/blobs/17783c7c066b04660444139b9b160f56db4c3df2", - "download_url": "https://raw.githubusercontent.com/spring-projects/spring-boot/main/CODE_OF_CONDUCT.adoc", - "type": "file", - "_links": { - "self": "https://api.github.com/repos/spring-projects/spring-boot/contents/CODE_OF_CONDUCT.adoc?ref=main", - "git": "https://api.github.com/repos/spring-projects/spring-boot/git/blobs/17783c7c066b04660444139b9b160f56db4c3df2", - "html": "https://github.com/spring-projects/spring-boot/blob/main/CODE_OF_CONDUCT.adoc" - } - }, - { - "name": "CONTRIBUTING.adoc", - "path": "CONTRIBUTING.adoc", - "sha": "0bee31a9372dacf6109e261501b34a1321a745ea", - "size": 4028, - "url": "https://api.github.com/repos/spring-projects/spring-boot/contents/CONTRIBUTING.adoc?ref=main", - "html_url": "https://github.com/spring-projects/spring-boot/blob/main/CONTRIBUTING.adoc", - "git_url": "https://api.github.com/repos/spring-projects/spring-boot/git/blobs/0bee31a9372dacf6109e261501b34a1321a745ea", - "download_url": "https://raw.githubusercontent.com/spring-projects/spring-boot/main/CONTRIBUTING.adoc", - "type": "file", - "_links": { - "self": "https://api.github.com/repos/spring-projects/spring-boot/contents/CONTRIBUTING.adoc?ref=main", - "git": "https://api.github.com/repos/spring-projects/spring-boot/git/blobs/0bee31a9372dacf6109e261501b34a1321a745ea", - "html": "https://github.com/spring-projects/spring-boot/blob/main/CONTRIBUTING.adoc" - } - }, - { - "name": "LICENSE.txt", - "path": "LICENSE.txt", - "sha": "823c1c8e9820bcc35d561f04d1cc972323162769", - "size": 11359, - "url": "https://api.github.com/repos/spring-projects/spring-boot/contents/LICENSE.txt?ref=main", - "html_url": "https://github.com/spring-projects/spring-boot/blob/main/LICENSE.txt", - "git_url": "https://api.github.com/repos/spring-projects/spring-boot/git/blobs/823c1c8e9820bcc35d561f04d1cc972323162769", - "download_url": "https://raw.githubusercontent.com/spring-projects/spring-boot/main/LICENSE.txt", - "type": "file", - "_links": { - "self": "https://api.github.com/repos/spring-projects/spring-boot/contents/LICENSE.txt?ref=main", - "git": "https://api.github.com/repos/spring-projects/spring-boot/git/blobs/823c1c8e9820bcc35d561f04d1cc972323162769", - "html": "https://github.com/spring-projects/spring-boot/blob/main/LICENSE.txt" - } - }, - { - "name": "README.adoc", - "path": "README.adoc", - "sha": "1f1c575116afade0e4bdb4386b1973bf845a906b", - "size": 9799, - "url": "https://api.github.com/repos/spring-projects/spring-boot/contents/README.adoc?ref=main", - "html_url": "https://github.com/spring-projects/spring-boot/blob/main/README.adoc", - "git_url": "https://api.github.com/repos/spring-projects/spring-boot/git/blobs/1f1c575116afade0e4bdb4386b1973bf845a906b", - "download_url": "https://raw.githubusercontent.com/spring-projects/spring-boot/main/README.adoc", - "type": "file", - "_links": { - "self": "https://api.github.com/repos/spring-projects/spring-boot/contents/README.adoc?ref=main", - "git": "https://api.github.com/repos/spring-projects/spring-boot/git/blobs/1f1c575116afade0e4bdb4386b1973bf845a906b", - "html": "https://github.com/spring-projects/spring-boot/blob/main/README.adoc" - } - }, - { - "name": "SUPPORT.adoc", - "path": "SUPPORT.adoc", - "sha": "898f5caa8a16bfa5f60785cc5cf0764ce671f6b9", - "size": 1198, - "url": "https://api.github.com/repos/spring-projects/spring-boot/contents/SUPPORT.adoc?ref=main", - "html_url": "https://github.com/spring-projects/spring-boot/blob/main/SUPPORT.adoc", - "git_url": "https://api.github.com/repos/spring-projects/spring-boot/git/blobs/898f5caa8a16bfa5f60785cc5cf0764ce671f6b9", - "download_url": "https://raw.githubusercontent.com/spring-projects/spring-boot/main/SUPPORT.adoc", - "type": "file", - "_links": { - "self": "https://api.github.com/repos/spring-projects/spring-boot/contents/SUPPORT.adoc?ref=main", - "git": "https://api.github.com/repos/spring-projects/spring-boot/git/blobs/898f5caa8a16bfa5f60785cc5cf0764ce671f6b9", - "html": "https://github.com/spring-projects/spring-boot/blob/main/SUPPORT.adoc" - } - }, - { - "name": "build.gradle", - "path": "build.gradle", - "sha": "58f14bb79b4da98b79f889f243d901414fedca3b", - "size": 955, - "url": "https://api.github.com/repos/spring-projects/spring-boot/contents/build.gradle?ref=main", - "html_url": "https://github.com/spring-projects/spring-boot/blob/main/build.gradle", - "git_url": "https://api.github.com/repos/spring-projects/spring-boot/git/blobs/58f14bb79b4da98b79f889f243d901414fedca3b", - "download_url": "https://raw.githubusercontent.com/spring-projects/spring-boot/main/build.gradle", - "type": "file", - "_links": { - "self": "https://api.github.com/repos/spring-projects/spring-boot/contents/build.gradle?ref=main", - "git": "https://api.github.com/repos/spring-projects/spring-boot/git/blobs/58f14bb79b4da98b79f889f243d901414fedca3b", - "html": "https://github.com/spring-projects/spring-boot/blob/main/build.gradle" - } - }, - { - "name": "buildSrc", - "path": "buildSrc", - "sha": "9b8c1e750f1492744752d2f66e49ffa3cd848be0", - "size": 0, - "url": "https://api.github.com/repos/spring-projects/spring-boot/contents/buildSrc?ref=main", - "html_url": "https://github.com/spring-projects/spring-boot/tree/main/buildSrc", - "git_url": "https://api.github.com/repos/spring-projects/spring-boot/git/trees/9b8c1e750f1492744752d2f66e49ffa3cd848be0", - "download_url": null, - "type": "dir", - "_links": { - "self": "https://api.github.com/repos/spring-projects/spring-boot/contents/buildSrc?ref=main", - "git": "https://api.github.com/repos/spring-projects/spring-boot/git/trees/9b8c1e750f1492744752d2f66e49ffa3cd848be0", - "html": "https://github.com/spring-projects/spring-boot/tree/main/buildSrc" - } - }, - { - "name": "ci", - "path": "ci", - "sha": "e65d04b81441f8a6733c4ebf8d842057bb3fa996", - "size": 0, - "url": "https://api.github.com/repos/spring-projects/spring-boot/contents/ci?ref=main", - "html_url": "https://github.com/spring-projects/spring-boot/tree/main/ci", - "git_url": "https://api.github.com/repos/spring-projects/spring-boot/git/trees/e65d04b81441f8a6733c4ebf8d842057bb3fa996", - "download_url": null, - "type": "dir", - "_links": { - "self": "https://api.github.com/repos/spring-projects/spring-boot/contents/ci?ref=main", - "git": "https://api.github.com/repos/spring-projects/spring-boot/git/trees/e65d04b81441f8a6733c4ebf8d842057bb3fa996", - "html": "https://github.com/spring-projects/spring-boot/tree/main/ci" - } - }, - { - "name": "eclipse", - "path": "eclipse", - "sha": "925c2bda88226265cd4cb31dd640780f4b686939", - "size": 0, - "url": "https://api.github.com/repos/spring-projects/spring-boot/contents/eclipse?ref=main", - "html_url": "https://github.com/spring-projects/spring-boot/tree/main/eclipse", - "git_url": "https://api.github.com/repos/spring-projects/spring-boot/git/trees/925c2bda88226265cd4cb31dd640780f4b686939", - "download_url": null, - "type": "dir", - "_links": { - "self": "https://api.github.com/repos/spring-projects/spring-boot/contents/eclipse?ref=main", - "git": "https://api.github.com/repos/spring-projects/spring-boot/git/trees/925c2bda88226265cd4cb31dd640780f4b686939", - "html": "https://github.com/spring-projects/spring-boot/tree/main/eclipse" - } - }, - { - "name": "git", - "path": "git", - "sha": "0fe21f9ecd4d608d507038cfc070a92bd40efb7b", - "size": 0, - "url": "https://api.github.com/repos/spring-projects/spring-boot/contents/git?ref=main", - "html_url": "https://github.com/spring-projects/spring-boot/tree/main/git", - "git_url": "https://api.github.com/repos/spring-projects/spring-boot/git/trees/0fe21f9ecd4d608d507038cfc070a92bd40efb7b", - "download_url": null, - "type": "dir", - "_links": { - "self": "https://api.github.com/repos/spring-projects/spring-boot/contents/git?ref=main", - "git": "https://api.github.com/repos/spring-projects/spring-boot/git/trees/0fe21f9ecd4d608d507038cfc070a92bd40efb7b", - "html": "https://github.com/spring-projects/spring-boot/tree/main/git" - } - }, - { - "name": "gradle.properties", - "path": "gradle.properties", - "sha": "479d3b34c414177b7b41352f665ee44db3d61644", - "size": 204, - "url": "https://api.github.com/repos/spring-projects/spring-boot/contents/gradle.properties?ref=main", - "html_url": "https://github.com/spring-projects/spring-boot/blob/main/gradle.properties", - "git_url": "https://api.github.com/repos/spring-projects/spring-boot/git/blobs/479d3b34c414177b7b41352f665ee44db3d61644", - "download_url": "https://raw.githubusercontent.com/spring-projects/spring-boot/main/gradle.properties", - "type": "file", - "_links": { - "self": "https://api.github.com/repos/spring-projects/spring-boot/contents/gradle.properties?ref=main", - "git": "https://api.github.com/repos/spring-projects/spring-boot/git/blobs/479d3b34c414177b7b41352f665ee44db3d61644", - "html": "https://github.com/spring-projects/spring-boot/blob/main/gradle.properties" - } - }, - { - "name": "gradle", - "path": "gradle", - "sha": "7c063399abc38345813c38f7f870308360925445", - "size": 0, - "url": "https://api.github.com/repos/spring-projects/spring-boot/contents/gradle?ref=main", - "html_url": "https://github.com/spring-projects/spring-boot/tree/main/gradle", - "git_url": "https://api.github.com/repos/spring-projects/spring-boot/git/trees/7c063399abc38345813c38f7f870308360925445", - "download_url": null, - "type": "dir", - "_links": { - "self": "https://api.github.com/repos/spring-projects/spring-boot/contents/gradle?ref=main", - "git": "https://api.github.com/repos/spring-projects/spring-boot/git/trees/7c063399abc38345813c38f7f870308360925445", - "html": "https://github.com/spring-projects/spring-boot/tree/main/gradle" - } - }, - { - "name": "gradlew", - "path": "gradlew", - "sha": "1b6c787337ffb79f0e3cf8b1e9f00f680a959de1", - "size": 8070, - "url": "https://api.github.com/repos/spring-projects/spring-boot/contents/gradlew?ref=main", - "html_url": "https://github.com/spring-projects/spring-boot/blob/main/gradlew", - "git_url": "https://api.github.com/repos/spring-projects/spring-boot/git/blobs/1b6c787337ffb79f0e3cf8b1e9f00f680a959de1", - "download_url": "https://raw.githubusercontent.com/spring-projects/spring-boot/main/gradlew", - "type": "file", - "_links": { - "self": "https://api.github.com/repos/spring-projects/spring-boot/contents/gradlew?ref=main", - "git": "https://api.github.com/repos/spring-projects/spring-boot/git/blobs/1b6c787337ffb79f0e3cf8b1e9f00f680a959de1", - "html": "https://github.com/spring-projects/spring-boot/blob/main/gradlew" - } - }, - { - "name": "gradlew.bat", - "path": "gradlew.bat", - "sha": "107acd32c4e687021ef32db511e8a206129b88ec", - "size": 2674, - "url": "https://api.github.com/repos/spring-projects/spring-boot/contents/gradlew.bat?ref=main", - "html_url": "https://github.com/spring-projects/spring-boot/blob/main/gradlew.bat", - "git_url": "https://api.github.com/repos/spring-projects/spring-boot/git/blobs/107acd32c4e687021ef32db511e8a206129b88ec", - "download_url": "https://raw.githubusercontent.com/spring-projects/spring-boot/main/gradlew.bat", - "type": "file", - "_links": { - "self": "https://api.github.com/repos/spring-projects/spring-boot/contents/gradlew.bat?ref=main", - "git": "https://api.github.com/repos/spring-projects/spring-boot/git/blobs/107acd32c4e687021ef32db511e8a206129b88ec", - "html": "https://github.com/spring-projects/spring-boot/blob/main/gradlew.bat" - } - }, - { - "name": "idea", - "path": "idea", - "sha": "73dcd97ee8994d69310c96a92dc4758a20d13a12", - "size": 0, - "url": "https://api.github.com/repos/spring-projects/spring-boot/contents/idea?ref=main", - "html_url": "https://github.com/spring-projects/spring-boot/tree/main/idea", - "git_url": "https://api.github.com/repos/spring-projects/spring-boot/git/trees/73dcd97ee8994d69310c96a92dc4758a20d13a12", - "download_url": null, - "type": "dir", - "_links": { - "self": "https://api.github.com/repos/spring-projects/spring-boot/contents/idea?ref=main", - "git": "https://api.github.com/repos/spring-projects/spring-boot/git/trees/73dcd97ee8994d69310c96a92dc4758a20d13a12", - "html": "https://github.com/spring-projects/spring-boot/tree/main/idea" - } - }, - { - "name": "settings.gradle", - "path": "settings.gradle", - "sha": "cac3f1d52156aba0a5558d1d5de07f6954c60c17", - "size": 3594, - "url": "https://api.github.com/repos/spring-projects/spring-boot/contents/settings.gradle?ref=main", - "html_url": "https://github.com/spring-projects/spring-boot/blob/main/settings.gradle", - "git_url": "https://api.github.com/repos/spring-projects/spring-boot/git/blobs/cac3f1d52156aba0a5558d1d5de07f6954c60c17", - "download_url": "https://raw.githubusercontent.com/spring-projects/spring-boot/main/settings.gradle", - "type": "file", - "_links": { - "self": "https://api.github.com/repos/spring-projects/spring-boot/contents/settings.gradle?ref=main", - "git": "https://api.github.com/repos/spring-projects/spring-boot/git/blobs/cac3f1d52156aba0a5558d1d5de07f6954c60c17", - "html": "https://github.com/spring-projects/spring-boot/blob/main/settings.gradle" - } - }, - { - "name": "spring-boot-project", - "path": "spring-boot-project", - "sha": "d88496b9edf6b0b2551ac829ac5374ca46a2d412", - "size": 0, - "url": "https://api.github.com/repos/spring-projects/spring-boot/contents/spring-boot-project?ref=main", - "html_url": "https://github.com/spring-projects/spring-boot/tree/main/spring-boot-project", - "git_url": "https://api.github.com/repos/spring-projects/spring-boot/git/trees/d88496b9edf6b0b2551ac829ac5374ca46a2d412", - "download_url": null, - "type": "dir", - "_links": { - "self": "https://api.github.com/repos/spring-projects/spring-boot/contents/spring-boot-project?ref=main", - "git": "https://api.github.com/repos/spring-projects/spring-boot/git/trees/d88496b9edf6b0b2551ac829ac5374ca46a2d412", - "html": "https://github.com/spring-projects/spring-boot/tree/main/spring-boot-project" - } - }, - { - "name": "spring-boot-system-tests", - "path": "spring-boot-system-tests", - "sha": "ba48eb71ba35af8017ec775dd52803e04d7d62d7", - "size": 0, - "url": "https://api.github.com/repos/spring-projects/spring-boot/contents/spring-boot-system-tests?ref=main", - "html_url": "https://github.com/spring-projects/spring-boot/tree/main/spring-boot-system-tests", - "git_url": "https://api.github.com/repos/spring-projects/spring-boot/git/trees/ba48eb71ba35af8017ec775dd52803e04d7d62d7", - "download_url": null, - "type": "dir", - "_links": { - "self": "https://api.github.com/repos/spring-projects/spring-boot/contents/spring-boot-system-tests?ref=main", - "git": "https://api.github.com/repos/spring-projects/spring-boot/git/trees/ba48eb71ba35af8017ec775dd52803e04d7d62d7", - "html": "https://github.com/spring-projects/spring-boot/tree/main/spring-boot-system-tests" - } - }, - { - "name": "spring-boot-tests", - "path": "spring-boot-tests", - "sha": "71a7b126d247f8f31288149714dd7e777c9d3f4c", - "size": 0, - "url": "https://api.github.com/repos/spring-projects/spring-boot/contents/spring-boot-tests?ref=main", - "html_url": "https://github.com/spring-projects/spring-boot/tree/main/spring-boot-tests", - "git_url": "https://api.github.com/repos/spring-projects/spring-boot/git/trees/71a7b126d247f8f31288149714dd7e777c9d3f4c", - "download_url": null, - "type": "dir", - "_links": { - "self": "https://api.github.com/repos/spring-projects/spring-boot/contents/spring-boot-tests?ref=main", - "git": "https://api.github.com/repos/spring-projects/spring-boot/git/trees/71a7b126d247f8f31288149714dd7e777c9d3f4c", - "html": "https://github.com/spring-projects/spring-boot/tree/main/spring-boot-tests" - } - }, - { - "name": "src", - "path": "src", - "sha": "0412d435807f0169355411f856ad16870c45fa33", - "size": 0, - "url": "https://api.github.com/repos/spring-projects/spring-boot/contents/src?ref=main", - "html_url": "https://github.com/spring-projects/spring-boot/tree/main/src", - "git_url": "https://api.github.com/repos/spring-projects/spring-boot/git/trees/0412d435807f0169355411f856ad16870c45fa33", - "download_url": null, - "type": "dir", - "_links": { - "self": "https://api.github.com/repos/spring-projects/spring-boot/contents/src?ref=main", - "git": "https://api.github.com/repos/spring-projects/spring-boot/git/trees/0412d435807f0169355411f856ad16870c45fa33", - "html": "https://github.com/spring-projects/spring-boot/tree/main/src" - } - } - ] - \ No newline at end of file diff --git a/frontend/packages/dev-console/integration-tests/testData/git-import/spring-boot/repo.json b/frontend/packages/dev-console/integration-tests/testData/git-import/spring-boot/repo.json deleted file mode 100644 index 0dd0b4a54ea..00000000000 --- a/frontend/packages/dev-console/integration-tests/testData/git-import/spring-boot/repo.json +++ /dev/null @@ -1,133 +0,0 @@ -{ - "id": 6296790, - "node_id": "MDEwOlJlcG9zaXRvcnk2Mjk2Nzkw", - "name": "spring-boot", - "full_name": "spring-projects/spring-boot", - "private": false, - "owner": { - "login": "spring-projects", - "id": 317776, - "node_id": "MDEyOk9yZ2FuaXphdGlvbjMxNzc3Ng==", - "avatar_url": "https://avatars.githubusercontent.com/u/317776?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/spring-projects", - "html_url": "https://github.com/spring-projects", - "followers_url": "https://api.github.com/users/spring-projects/followers", - "following_url": "https://api.github.com/users/spring-projects/following{/other_user}", - "gists_url": "https://api.github.com/users/spring-projects/gists{/gist_id}", - "starred_url": "https://api.github.com/users/spring-projects/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/spring-projects/subscriptions", - "organizations_url": "https://api.github.com/users/spring-projects/orgs", - "repos_url": "https://api.github.com/users/spring-projects/repos", - "events_url": "https://api.github.com/users/spring-projects/events{/privacy}", - "received_events_url": "https://api.github.com/users/spring-projects/received_events", - "type": "Organization", - "site_admin": false - }, - "html_url": "https://github.com/spring-projects/spring-boot", - "description": "Spring Boot", - "fork": false, - "url": "https://api.github.com/repos/spring-projects/spring-boot", - "forks_url": "https://api.github.com/repos/spring-projects/spring-boot/forks", - "keys_url": "https://api.github.com/repos/spring-projects/spring-boot/keys{/key_id}", - "collaborators_url": "https://api.github.com/repos/spring-projects/spring-boot/collaborators{/collaborator}", - "teams_url": "https://api.github.com/repos/spring-projects/spring-boot/teams", - "hooks_url": "https://api.github.com/repos/spring-projects/spring-boot/hooks", - "issue_events_url": "https://api.github.com/repos/spring-projects/spring-boot/issues/events{/number}", - "events_url": "https://api.github.com/repos/spring-projects/spring-boot/events", - "assignees_url": "https://api.github.com/repos/spring-projects/spring-boot/assignees{/user}", - "branches_url": "https://api.github.com/repos/spring-projects/spring-boot/branches{/branch}", - "tags_url": "https://api.github.com/repos/spring-projects/spring-boot/tags", - "blobs_url": "https://api.github.com/repos/spring-projects/spring-boot/git/blobs{/sha}", - "git_tags_url": "https://api.github.com/repos/spring-projects/spring-boot/git/tags{/sha}", - "git_refs_url": "https://api.github.com/repos/spring-projects/spring-boot/git/refs{/sha}", - "trees_url": "https://api.github.com/repos/spring-projects/spring-boot/git/trees{/sha}", - "statuses_url": "https://api.github.com/repos/spring-projects/spring-boot/statuses/{sha}", - "languages_url": "https://api.github.com/repos/spring-projects/spring-boot/languages", - "stargazers_url": "https://api.github.com/repos/spring-projects/spring-boot/stargazers", - "contributors_url": "https://api.github.com/repos/spring-projects/spring-boot/contributors", - "subscribers_url": "https://api.github.com/repos/spring-projects/spring-boot/subscribers", - "subscription_url": "https://api.github.com/repos/spring-projects/spring-boot/subscription", - "commits_url": "https://api.github.com/repos/spring-projects/spring-boot/commits{/sha}", - "git_commits_url": "https://api.github.com/repos/spring-projects/spring-boot/git/commits{/sha}", - "comments_url": "https://api.github.com/repos/spring-projects/spring-boot/comments{/number}", - "issue_comment_url": "https://api.github.com/repos/spring-projects/spring-boot/issues/comments{/number}", - "contents_url": "https://api.github.com/repos/spring-projects/spring-boot/contents/{+path}", - "compare_url": "https://api.github.com/repos/spring-projects/spring-boot/compare/{base}...{head}", - "merges_url": "https://api.github.com/repos/spring-projects/spring-boot/merges", - "archive_url": "https://api.github.com/repos/spring-projects/spring-boot/{archive_format}{/ref}", - "downloads_url": "https://api.github.com/repos/spring-projects/spring-boot/downloads", - "issues_url": "https://api.github.com/repos/spring-projects/spring-boot/issues{/number}", - "pulls_url": "https://api.github.com/repos/spring-projects/spring-boot/pulls{/number}", - "milestones_url": "https://api.github.com/repos/spring-projects/spring-boot/milestones{/number}", - "notifications_url": "https://api.github.com/repos/spring-projects/spring-boot/notifications{?since,all,participating}", - "labels_url": "https://api.github.com/repos/spring-projects/spring-boot/labels{/name}", - "releases_url": "https://api.github.com/repos/spring-projects/spring-boot/releases{/id}", - "deployments_url": "https://api.github.com/repos/spring-projects/spring-boot/deployments", - "created_at": "2012-10-19T15:02:57Z", - "updated_at": "2021-12-01T13:19:24Z", - "pushed_at": "2021-12-01T12:17:41Z", - "git_url": "git://github.com/spring-projects/spring-boot.git", - "ssh_url": "git@github.com:spring-projects/spring-boot.git", - "clone_url": "https://github.com/spring-projects/spring-boot.git", - "svn_url": "https://github.com/spring-projects/spring-boot", - "homepage": "https://spring.io/projects/spring-boot", - "size": 142373, - "stargazers_count": 58410, - "watchers_count": 58410, - "language": "Java", - "has_issues": true, - "has_projects": true, - "has_downloads": true, - "has_wiki": true, - "has_pages": true, - "forks_count": 35041, - "mirror_url": null, - "archived": false, - "disabled": false, - "open_issues_count": 554, - "license": { - "key": "apache-2.0", - "name": "Apache License 2.0", - "spdx_id": "Apache-2.0", - "url": "https://api.github.com/licenses/apache-2.0", - "node_id": "MDc6TGljZW5zZTI=" - }, - "allow_forking": true, - "is_template": false, - "topics": [ - "framework", - "java", - "spring", - "spring-boot" - ], - "visibility": "public", - "forks": 35041, - "open_issues": 554, - "watchers": 58410, - "default_branch": "main", - "temp_clone_token": null, - "organization": { - "login": "spring-projects", - "id": 317776, - "node_id": "MDEyOk9yZ2FuaXphdGlvbjMxNzc3Ng==", - "avatar_url": "https://avatars.githubusercontent.com/u/317776?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/spring-projects", - "html_url": "https://github.com/spring-projects", - "followers_url": "https://api.github.com/users/spring-projects/followers", - "following_url": "https://api.github.com/users/spring-projects/following{/other_user}", - "gists_url": "https://api.github.com/users/spring-projects/gists{/gist_id}", - "starred_url": "https://api.github.com/users/spring-projects/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/spring-projects/subscriptions", - "organizations_url": "https://api.github.com/users/spring-projects/orgs", - "repos_url": "https://api.github.com/users/spring-projects/repos", - "events_url": "https://api.github.com/users/spring-projects/events{/privacy}", - "received_events_url": "https://api.github.com/users/spring-projects/received_events", - "type": "Organization", - "site_admin": false - }, - "network_count": 35041, - "subscribers_count": 3400 - } - \ No newline at end of file diff --git a/frontend/packages/dev-console/integration-tests/testData/krew-install.sh b/frontend/packages/dev-console/integration-tests/testData/krew-install.sh deleted file mode 100755 index f2351423ca8..00000000000 --- a/frontend/packages/dev-console/integration-tests/testData/krew-install.sh +++ /dev/null @@ -1,22 +0,0 @@ -# Refer : https://krew.sigs.k8s.io/docs/user-guide/setup/install/ -echo -e "\n Installing Krew plugin :" - -( - set -x; cd "$(mktemp -d)" && - OS="$(uname | tr '[:upper:]' '[:lower:]')" && - ARCH="$(uname -m | sed -e 's/x86_64/amd64/' -e 's/\(arm\)\(64\)\?.*/\1\2/' -e 's/aarch64$/arm64/')" && - KREW="krew-${OS}_${ARCH}" && - curl -fsSLO "https://github.com/kubernetes-sigs/krew/releases/latest/download/${KREW}.tar.gz" && - tar zxvf "${KREW}.tar.gz" && - ./"${KREW}" install krew -) - -export PATH="${KREW_ROOT:-$HOME/.krew}/bin:$PATH" - -echo -e "\n Installing Operator plugin :" - -oc krew install operator - -echo -e "\n Checking availability of $1 :" - -oc operator list-available $1 \ No newline at end of file diff --git a/frontend/packages/dev-console/integration-tests/testData/pipelinesOperatorSubscription.yaml b/frontend/packages/dev-console/integration-tests/testData/pipelinesOperatorSubscription.yaml deleted file mode 100644 index eb43fc73605..00000000000 --- a/frontend/packages/dev-console/integration-tests/testData/pipelinesOperatorSubscription.yaml +++ /dev/null @@ -1,10 +0,0 @@ -apiVersion: operators.coreos.com/v1alpha1 -kind: Subscription -metadata: - name: openshift-pipelines-operator - namespace: openshift-operators -spec: - channel: pipelines-1.17 - name: openshift-pipelines-operator-rh - source: redhat-operators - sourceNamespace: openshift-marketplace \ No newline at end of file diff --git a/frontend/packages/dev-console/integration-tests/testData/quick-start/copy-execute-demo.yaml b/frontend/packages/dev-console/integration-tests/testData/quick-start/copy-execute-demo.yaml deleted file mode 100644 index 2f59deddd43..00000000000 --- a/frontend/packages/dev-console/integration-tests/testData/quick-start/copy-execute-demo.yaml +++ /dev/null @@ -1,46 +0,0 @@ -apiVersion: console.openshift.io/v1 -kind: ConsoleQuickStart -metadata: - name: copy-execute-demo -spec: - description: Create a resource using command line - displayName: Create ruby app - durationMinutes: 1 - introduction: Introduction here - tasks: - - description: > - ### Create a Project - - Execute - - - ``` - - oc new-project sample-sclorg-app - - ```{{execute}} - command to create a new project - - - In next step we will create a resource using - `https://github.com/sclorg/ruby-ex.git`{{copy}} - - - Deploy app using commad - - - ``` - - oc new-app ruby~https://github.com/sclorg/ruby-ex.git - - ```{{execute}} - - Expose route using - - - ``` - - oc expose svc/ruby-ex - - ```{{execute}} - title: Create Ruby App diff --git a/frontend/packages/dev-console/integration-tests/testData/resource-quota/resource-quota.yaml b/frontend/packages/dev-console/integration-tests/testData/resource-quota/resource-quota.yaml deleted file mode 100644 index 0020a2de7b7..00000000000 --- a/frontend/packages/dev-console/integration-tests/testData/resource-quota/resource-quota.yaml +++ /dev/null @@ -1,15 +0,0 @@ -apiVersion: v1 -kind: ResourceQuota -metadata: - name: resourcequota1 -spec: - hard: - pods: '1' ---- -apiVersion: v1 -kind: ResourceQuota -metadata: - name: resourcequota2 -spec: - hard: - pods: '1' \ No newline at end of file diff --git a/frontend/packages/dev-console/integration-tests/testData/vulnerability/create-quarkus-deployment.yaml b/frontend/packages/dev-console/integration-tests/testData/vulnerability/create-quarkus-deployment.yaml deleted file mode 100644 index ddc1bd14484..00000000000 --- a/frontend/packages/dev-console/integration-tests/testData/vulnerability/create-quarkus-deployment.yaml +++ /dev/null @@ -1,21 +0,0 @@ -apiVersion: apps/v1 -kind: Deployment -metadata: - name: test-vulnerability - namespace: aut-image-vulnerability -spec: - selector: - matchLabels: - app: quarkus - replicas: 3 - template: - metadata: - labels: - app: quarkus - spec: - containers: - - name: quarkus - image: >- - quay.io/redhat-appstudio-qe/quarkus:7dd062e2e8cb4ba599185e48d628b65a - ports: - - containerPort: 8080 diff --git a/frontend/packages/dev-console/integration-tests/testData/yamls/BuildConfig/buildconfig-with-strategy-docker-source-dockerfile.yaml b/frontend/packages/dev-console/integration-tests/testData/yamls/BuildConfig/buildconfig-with-strategy-docker-source-dockerfile.yaml deleted file mode 100644 index 79120dbf6cd..00000000000 --- a/frontend/packages/dev-console/integration-tests/testData/yamls/BuildConfig/buildconfig-with-strategy-docker-source-dockerfile.yaml +++ /dev/null @@ -1,46 +0,0 @@ -apiVersion: build.openshift.io/v1 -kind: BuildConfig -metadata: - annotations: - app.openshift.io/vcs-ref: '' - app.openshift.io/vcs-uri: 'https://github.com/docker/labs' - openshift.io/generated-by: OpenShiftWebConsole - labels: - app: flask-app - app.kubernetes.io/component: flask-app - app.kubernetes.io/instance: flask-app - app.kubernetes.io/name: flask-app - name: flask-app - namespace: aut-form-edit-build-config -spec: - failedBuildsHistoryLimit: 5 - nodeSelector: null - output: - to: - kind: ImageStreamTag - name: 'flask-app:latest' - postCommit: {} - resources: {} - runPolicy: Serial - source: - dockerfile: |- - FROM centos:7 - RUN yum install -y httpd - type: Dockerfile - strategy: - dockerStrategy: - dockerfilePath: Dockerfile - type: Docker - successfulBuildsHistoryLimit: 5 - triggers: - - generic: - secretReference: - name: flask-app-generic-webhook-secret - type: Generic - - github: - secretReference: - name: flask-app-github-webhook-secret - type: GitHub - - type: ConfigChange -status: - lastVersion: 1 diff --git a/frontend/packages/dev-console/integration-tests/testData/yamls/BuildConfig/buildconfig-with-strategy-docker-source-git.yaml b/frontend/packages/dev-console/integration-tests/testData/yamls/BuildConfig/buildconfig-with-strategy-docker-source-git.yaml deleted file mode 100644 index 1c5821e84d8..00000000000 --- a/frontend/packages/dev-console/integration-tests/testData/yamls/BuildConfig/buildconfig-with-strategy-docker-source-git.yaml +++ /dev/null @@ -1,46 +0,0 @@ -apiVersion: build.openshift.io/v1 -kind: BuildConfig -metadata: - annotations: - app.openshift.io/vcs-ref: '' - app.openshift.io/vcs-uri: 'https://github.com/docker/labs' - openshift.io/generated-by: OpenShiftWebConsole - labels: - app: flask-app - app.kubernetes.io/component: flask-app - app.kubernetes.io/instance: flask-app - app.kubernetes.io/name: flask-app - name: flask-app-12 - namespace: aut-form-edit-build-config -spec: - failedBuildsHistoryLimit: 5 - nodeSelector: null - output: - to: - kind: ImageStreamTag - name: 'flask-app:latest' - postCommit: {} - resources: {} - runPolicy: Serial - source: - contextDir: /beginner/flask-app - git: - uri: 'https://github.com/docker/labs' - type: Git - strategy: - dockerStrategy: - dockerfilePath: Dockerfile - type: Docker - successfulBuildsHistoryLimit: 5 - triggers: - - generic: - secretReference: - name: flask-app-generic-webhook-secret - type: Generic - - github: - secretReference: - name: flask-app-github-webhook-secret - type: GitHub - - type: ConfigChange -status: - lastVersion: 1 diff --git a/frontend/packages/dev-console/integration-tests/testData/yamls/BuildConfig/buildconfig-with-strategy-source-source-binary.yaml b/frontend/packages/dev-console/integration-tests/testData/yamls/BuildConfig/buildconfig-with-strategy-source-source-binary.yaml deleted file mode 100644 index fc3736b3dad..00000000000 --- a/frontend/packages/dev-console/integration-tests/testData/yamls/BuildConfig/buildconfig-with-strategy-source-source-binary.yaml +++ /dev/null @@ -1,91 +0,0 @@ -kind: Build -apiVersion: build.openshift.io/v1 -metadata: - annotations: - openshift.io/build-config.name: fruits-app-1 - openshift.io/build.number: '1' - openshift.io/build.pod-name: fruits-app-1-1-build - name: fruits-app-1-1 - namespace: aut-form-edit-build-config - ownerReferences: - - apiVersion: build.openshift.io/v1 - kind: BuildConfig - name: fruits-app-1 - uid: 69bb984a-7ba8-48e9-b90b-be1dae5aad38 - controller: true - labels: - app: fruits-app-1 - app.kubernetes.io/instance: fruits-app-1 - openshift.io/build-config.name: fruits-app-1 - app.kubernetes.io/component: fruits-app-1 - openshift.io/build.start-policy: Serial - buildconfig: fruits-app-1 - app.openshift.io/runtime: java - app.kubernetes.io/name: fruits-app-1 - app.openshift.io/runtime-version: openjdk-11-el7 -spec: - serviceAccount: builder - source: - type: Binary - binary: - asFile: fruits-app-1.0.0-SNAPSHOT-runner.jar - strategy: - type: Source - sourceStrategy: - from: - kind: DockerImage - name: >- - image-registry.openshift-image-registry.svc:5000/openshift/java@sha256:922ff4e248660350597fc7bd4b896df63169779bb8d21ec00d97a750a1cdfa1f - pullSecret: - name: builder-dockercfg-jjlfs - output: - to: - kind: ImageStreamTag - name: 'fruits-app-1:latest' - pushSecret: - name: builder-dockercfg-jjlfs - resources: {} - postCommit: {} - nodeSelector: null -status: - output: - to: - imageDigest: 'sha256:da605b3ac4e0350944ecf39a8d8d8a5472e54a1150c3577d9c390adf9890975d' - config: - kind: BuildConfig - namespace: aut-form-edit-build-config - name: fruits-app-1 - outputDockerImageReference: >- - image-registry.openshift-image-registry.svc:5000/aut-form-edit-build-config/fruits-app-1:latest - duration: 53000000000 - stages: - - name: FetchInputs - durationMilliseconds: 506 - steps: - - name: FetchGitSource - durationMilliseconds: 506 - - name: PullImages - durationMilliseconds: 14461 - steps: - - name: PullBaseImage - durationMilliseconds: 14461 - - name: Build - durationMilliseconds: 13449 - steps: - - name: DockerBuild - durationMilliseconds: 13449 - - name: PushImage - durationMilliseconds: 8848 - steps: - - name: PushImage - durationMilliseconds: 8848 - conditions: - - type: New - status: 'False' - - type: Pending - status: 'False' - - type: Running - status: 'False' - - type: Complete - status: 'True' - phase: Complete diff --git a/frontend/packages/dev-console/integration-tests/testData/yamls/create-cronjob.yaml b/frontend/packages/dev-console/integration-tests/testData/yamls/create-cronjob.yaml deleted file mode 100644 index e6a920149d4..00000000000 --- a/frontend/packages/dev-console/integration-tests/testData/yamls/create-cronjob.yaml +++ /dev/null @@ -1,19 +0,0 @@ -apiVersion: batch/v1 -kind: CronJob -metadata: - name: example-cronjob - namespace: aut-workloads-admin -spec: - schedule: '@daily' - jobTemplate: - spec: - template: - spec: - containers: - - name: hello - image: busybox - args: - - /bin/sh - - '-c' - - date; echo Hello from the Kubernetes cluster - restartPolicy: OnFailure diff --git a/frontend/packages/dev-console/integration-tests/testData/yamls/create-job.yaml b/frontend/packages/dev-console/integration-tests/testData/yamls/create-job.yaml deleted file mode 100644 index 9e83b8fab5a..00000000000 --- a/frontend/packages/dev-console/integration-tests/testData/yamls/create-job.yaml +++ /dev/null @@ -1,20 +0,0 @@ -apiVersion: batch/v1 -kind: Job -metadata: - name: example-job - namespace: aut-workloads-admin -spec: - selector: {} - template: - metadata: - name: pi - spec: - containers: - - name: pi - image: perl - command: - - perl - - '-Mbignum=bpi' - - '-wle' - - print bpi(2000) - restartPolicy: Never diff --git a/frontend/packages/dev-console/integration-tests/testData/yamls/create-pod.yaml b/frontend/packages/dev-console/integration-tests/testData/yamls/create-pod.yaml deleted file mode 100644 index 227fb419d9d..00000000000 --- a/frontend/packages/dev-console/integration-tests/testData/yamls/create-pod.yaml +++ /dev/null @@ -1,13 +0,0 @@ -apiVersion: v1 -kind: Pod -metadata: - name: example-pod - labels: - app: hello-openshift - namespace: aut-workloads-admin -spec: - containers: - - name: hello-openshift - image: openshift/hello-openshift - ports: - - containerPort: 8080 diff --git a/frontend/packages/dev-console/integration-tests/testData/yamls/create-statefulsets.yaml b/frontend/packages/dev-console/integration-tests/testData/yamls/create-statefulsets.yaml deleted file mode 100644 index d4d8e8e6d7b..00000000000 --- a/frontend/packages/dev-console/integration-tests/testData/yamls/create-statefulsets.yaml +++ /dev/null @@ -1,36 +0,0 @@ -apiVersion: apps/v1 -kind: StatefulSet -metadata: - name: example - namespace: default -spec: - serviceName: httpd - replicas: 3 - selector: - matchLabels: - app: httpd - template: - metadata: - labels: - app: httpd - spec: - terminationGracePeriodSeconds: 10 - containers: - - name: httpd - image: 'image-registry.openshift-image-registry.svc:5000/openshift/httpd:latest' - ports: - - containerPort: 8080 - name: web - volumeMounts: - - name: www - mountPath: /var/www/html - volumeClaimTemplates: - - metadata: - name: www - spec: - accessModes: - - ReadWriteOnce - storageClassName: my-storage-class - resources: - requests: - storage: 1Gi diff --git a/frontend/packages/dev-console/integration-tests/testData/yamls/monitoring/cluster-monitoring-config.yaml b/frontend/packages/dev-console/integration-tests/testData/yamls/monitoring/cluster-monitoring-config.yaml deleted file mode 100644 index 0d768886ce2..00000000000 --- a/frontend/packages/dev-console/integration-tests/testData/yamls/monitoring/cluster-monitoring-config.yaml +++ /dev/null @@ -1,8 +0,0 @@ -apiVersion: v1 -kind: ConfigMap -metadata: - name: cluster-monitoring-config - namespace: openshift-monitoring -data: - config.yaml: | - enableUserWorkload: true diff --git a/frontend/packages/dev-console/integration-tests/testData/yamls/monitoring/prometheous-example.yaml b/frontend/packages/dev-console/integration-tests/testData/yamls/monitoring/prometheous-example.yaml deleted file mode 100644 index 926a7510183..00000000000 --- a/frontend/packages/dev-console/integration-tests/testData/yamls/monitoring/prometheous-example.yaml +++ /dev/null @@ -1,76 +0,0 @@ -apiVersion: v1 -kind: Namespace -metadata: - name: aut-monitoring-alerts ---- -apiVersion: apps/v1 -kind: Deployment -metadata: - labels: - app: prometheus-example-app - name: prometheus-example-app - namespace: aut-monitoring-alerts -spec: - replicas: 1 - selector: - matchLabels: - app: prometheus-example-app - template: - metadata: - labels: - app: prometheus-example-app - spec: - containers: - - image: quay.io/brancz/prometheus-example-app:v0.1.0 - imagePullPolicy: IfNotPresent - name: prometheus-example-app ---- -apiVersion: v1 -kind: Service -metadata: - labels: - app: prometheus-example-app - name: prometheus-example-app - namespace: aut-monitoring-alerts -spec: - ports: - - port: 8080 - protocol: TCP - targetPort: 8080 - name: web - selector: - app: prometheus-example-app - type: ClusterIP ---- -apiVersion: monitoring.coreos.com/v1 -kind: ServiceMonitor -metadata: - labels: - k8s-app: prometheus-example-monitor - name: prometheus-example-monitor - namespace: aut-monitoring-alerts -spec: - endpoints: - - interval: 30s - port: web - scheme: http - selector: - matchLabels: - app: prometheus-example-app ---- -apiVersion: monitoring.coreos.com/v1 -kind: PrometheusRule -metadata: - name: example-alert - namespace: aut-monitoring-alerts -spec: - groups: - - name: example - rules: - - record: VersionRule - expr: version{job="prometheus-example-app"} - - alert: VersionAlert - expr: version{job="prometheus-example-app"} == 0 - for: 1s - labels: - severity: critical diff --git a/frontend/packages/dev-console/integration-tests/testData/yamls/monitoring/workload-monitoring-config.yaml b/frontend/packages/dev-console/integration-tests/testData/yamls/monitoring/workload-monitoring-config.yaml deleted file mode 100644 index 481d33cf386..00000000000 --- a/frontend/packages/dev-console/integration-tests/testData/yamls/monitoring/workload-monitoring-config.yaml +++ /dev/null @@ -1,9 +0,0 @@ -apiVersion: v1 -kind: ConfigMap -metadata: - name: user-workload-monitoring-config - namespace: openshift-user-workload-monitoring -data: - config.yaml: | - prometheusUserWorkload: - replicas: 1 diff --git a/frontend/packages/dev-console/integration-tests/testData/yamls/operator-installtion/createHyperConverged.yaml b/frontend/packages/dev-console/integration-tests/testData/yamls/operator-installtion/createHyperConverged.yaml deleted file mode 100644 index 7b3486843c7..00000000000 --- a/frontend/packages/dev-console/integration-tests/testData/yamls/operator-installtion/createHyperConverged.yaml +++ /dev/null @@ -1,7 +0,0 @@ -apiVersion: hco.kubevirt.io/v1beta1 -kind: HyperConverged -metadata: - name: kubevirt-hyperconverged - namespace: openshift-cnv -spec: - BareMetalPlatform: true diff --git a/frontend/packages/dev-console/integration-tests/testData/yamls/operator-installtion/installVirtualizationOperator.yaml b/frontend/packages/dev-console/integration-tests/testData/yamls/operator-installtion/installVirtualizationOperator.yaml deleted file mode 100644 index 48d4678ba0e..00000000000 --- a/frontend/packages/dev-console/integration-tests/testData/yamls/operator-installtion/installVirtualizationOperator.yaml +++ /dev/null @@ -1,25 +0,0 @@ -apiVersion: v1 -kind: Namespace -metadata: - name: openshift-cnv ---- -apiVersion: operators.coreos.com/v1 -kind: OperatorGroup -metadata: - name: kubevirt-hyperconverged-group - namespace: openshift-cnv -spec: - targetNamespaces: - - openshift-cnv ---- -apiVersion: operators.coreos.com/v1alpha1 -kind: Subscription -metadata: - name: hco-operatorhub - namespace: openshift-cnv -spec: - source: redhat-operators - sourceNamespace: openshift-marketplace - name: kubevirt-hyperconverged - startingCSV: kubevirt-hyperconverged-operator.v2.5.3 - channel: "stable" diff --git a/frontend/packages/dev-console/integration-tests/testData/yamls/web-terminal/dev-ws-custom-idling-config.yaml b/frontend/packages/dev-console/integration-tests/testData/yamls/web-terminal/dev-ws-custom-idling-config.yaml deleted file mode 100644 index 436291eadee..00000000000 --- a/frontend/packages/dev-console/integration-tests/testData/yamls/web-terminal/dev-ws-custom-idling-config.yaml +++ /dev/null @@ -1,9 +0,0 @@ -kind: DevWorkspaceOperatorConfig -apiVersion: controller.devfile.io/v1alpha1 -metadata: - name: devworkspace-operator-config - namespace: openshift-operators -config: - workspace: - imagePullPolicy: Always - idleTimeout: '1m' diff --git a/frontend/packages/dev-console/integration-tests/testData/yamls/web-terminal/web-terminal.yaml b/frontend/packages/dev-console/integration-tests/testData/yamls/web-terminal/web-terminal.yaml deleted file mode 100644 index 965dad44586..00000000000 --- a/frontend/packages/dev-console/integration-tests/testData/yamls/web-terminal/web-terminal.yaml +++ /dev/null @@ -1,26 +0,0 @@ -kind: DevWorkspace -apiVersion: workspace.devfile.io/v1alpha2 -metadata: - name: web-terminal - annotations: - # it's important to make workspace immutable to make sure nobody with right access - # won't set custom editor to steal creator's token - controller.devfile.io/restricted-access: "true" - labels: - # it's a label OpenShift console uses a flag to mark terminal's workspaces - console.openshift.io/terminal: "true" -spec: - started: true - routingClass: 'web-terminal' - template: - components: - - name: web-terminal-tooling - plugin: - kubernetes: - name: web-terminal-tooling - namespace: openshift-operators - - name: web-terminal-exec - plugin: - kubernetes: - name: web-terminal-exec - namespace: openshift-operators diff --git a/frontend/packages/dev-console/integration-tests/tsconfig.json b/frontend/packages/dev-console/integration-tests/tsconfig.json deleted file mode 100644 index 29bf1807d10..00000000000 --- a/frontend/packages/dev-console/integration-tests/tsconfig.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "compilerOptions": { - "target": "es2021", - "module": "commonjs", - "strict": true, - "esModuleInterop": true, - "types": ["cypress"], - "lib": ["es6", "dom", "es2017"] - }, - "include": [ - "**/*.ts", - "./support/commands/index.ts", - "../../topology/integration-tests/support/page-objects/topology-po.ts" - ] -} diff --git a/frontend/packages/helm-plugin/integration-tests/README.md b/frontend/packages/helm-plugin/integration-tests/README.md deleted file mode 100644 index 197d460ddb2..00000000000 --- a/frontend/packages/helm-plugin/integration-tests/README.md +++ /dev/null @@ -1,68 +0,0 @@ -# Getting Started - -- Guidelines related to Setup, Standards, Review process are present in [README.md](frontend/packages/dev-console/integration-tests/README.md) -(The above link is now deprecated) - - -## Directory Structure - -Folder structure of cypress cucumber framework for Helm-plugin - -``` -frontend/packages/helm-plugin/integration-tests/ -├── features -| ├── helm <--- helm gherkin scenarios -| | └──actions-on-helm-release.feature -| | └──helm-compatibility.feature -| | └──helm-feature-flag.feature -| | └──helm-installation-view.feature -| | └──helm-navigation.feature -| | └──install-helm-chart.feature -| | └──topology-helm-release.feature -| ├── BestPractices.md <--- Gherkin script standards -├── plugins <--- Plugins provide a way to support and extend the behavior of cypress -| | └── index.ts -├── support <--- cypress cucumber support configurations -| ├── commands <--- add commands to Cypress 'cy.' global, other support configurations -| | └── index.ts -| | └── app.ts <--- hooks are added in this file -| ├── constants -| | | └──static-text -| | | └── helm-text.ts <--- enums required for helm scripts -| ├── pages <--- page functions -│ | ├── helm <--- helm related page functions -| | | └──helm-details-page.ts -| | | └──helm-page.ts -| | | └──rollBack-helm-release-page.ts -| | | └──upgrade-helm-release-page.ts -| | | └──index.ts <-- It consists of relative paths of the files -| ├── step-definitions <--- cucumber step implementations -│ | ├── helm <--- helm step definitions -| | | └──actions-on-helm-release-after-upgrade.ts -| | | └──helm-compatibility.ts -| | | └──helm-installation-view.ts -| | | └──helm-navigation.ts -| | | └──helm-release.ts -| | | └──helm.ts -| | | └──install-url-chart.ts -│ | ├── common <--- Re-usable step definitions -| | └──common.ts -├── cypress.json <--- cypress configuration file -├── tsconfig.json <--- typescript configuration file -├── reporter-config.json <--- reporter configuration file -``` - -### Execution process - -Feature file - "regression" suite - execution from Cypress Dashboard - -1. Update the TAGS under env section in config file [Cypress.json file](frontend/packages/helm-plugin/integration-tests/cypress.config.js) as - "env": { "TAGS": "@regression and not @manual and not @to-do" } -2. In command prompt, navigate to frontend folder -3. Execute command `yarn run test-cypress-helm` and select that particular file or run all files in cypress dashboard - -Feature file - "regression" suite - execution from command line - -1. Open the [frontend/package.json](../../../package.json) and update `test-cypress-helm-headless` as per requirement -2. In command line, navigate to frontend folder and execute the command `yarn run test-cypress-helm-headless` -3. All the regression scenarios get executed as per the configuration. diff --git a/frontend/packages/helm-plugin/integration-tests/cypress.config.js b/frontend/packages/helm-plugin/integration-tests/cypress.config.js deleted file mode 100644 index 79954e4b500..00000000000 --- a/frontend/packages/helm-plugin/integration-tests/cypress.config.js +++ /dev/null @@ -1,14 +0,0 @@ -const { defineConfig } = require('@console/cypress-integration-tests/cypress-common-config'); - -module.exports = defineConfig({ - fixturesFolder: 'testData', - env: { - TAGS: - '@helm and (@pre-condition or @smoke or @regression) and not (@manual or @to-do or @broken-test)', - NAMESPACE: 'aut-helm', - }, - e2e: { - specPattern: 'features/**/*.{feature,features}', - supportFile: 'support/commands/index.ts', - }, -}); diff --git a/frontend/packages/helm-plugin/integration-tests/features/BestPractices.md b/frontend/packages/helm-plugin/integration-tests/features/BestPractices.md deleted file mode 100644 index 123d3a36f81..00000000000 --- a/frontend/packages/helm-plugin/integration-tests/features/BestPractices.md +++ /dev/null @@ -1,3 +0,0 @@ -# Gherkin Scenarios designing Best Practices - -Follow the rules present in [BestPractices.md](frontend/packages/dev-console/integration-tests/features/BestPractices.md) diff --git a/frontend/packages/helm-plugin/integration-tests/features/helm-release.feature b/frontend/packages/helm-plugin/integration-tests/features/helm-release.feature deleted file mode 100644 index e0e88b8d6ce..00000000000 --- a/frontend/packages/helm-plugin/integration-tests/features/helm-release.feature +++ /dev/null @@ -1,122 +0,0 @@ -@helm @smoke -Feature: Helm Release - As a user, I want to perform actions on the helm release - - - @pre-condition - Scenario: Create or Select the project namespace - Given user is at the Helm Release tab in admin perspective - And user has created or selected namespace "aut-ci-helm" - - - Scenario: Open the Helm tab on the navigation bar when helm charts are absent: HR-05-TC01 - Given user is at administrator perspective - When user clicks on the Helm Release tab in admin perspective - Then user is able to see the message "No Helm Releases found" - And user will get the link to install helm charts from software catalog - - - Scenario: Create Helm Release page details: HR-05-TC02 - Given user is at Software Catalog page - When user selects Helm Charts type from Software Catalog page - And user searches and selects "Nodejs" card from catalog page - And user clicks on the Create button on side bar - Then Create Helm Release page is displayed - And release name displays as "nodejs" - And form view radio button is selected by default - And yaml view radio button is enabled - And form sections are displayed in form view - - - Scenario: Install Helm Chart from +Add Page using Form View: HR-06-TC04 - Given user is at Software Catalog page - When user selects Helm Charts type from Software Catalog page - And user searches and selects "Nodejs" card from catalog page - And user clicks on the Create button on side bar - And user enters Release Name as "nodejs-release" - And user clicks on the Create button - Then user will be redirected to Topology page - And Topology page have the helm chart workload "nodejs-release" - - - Scenario: Helm release status verification: HR-01-TC04 - Given user is at the Helm Release tab in admin perspective - And user is able to see "nodejs-release" in helm page in admin view - And user is able to see the status and status icon of "nodejs-release" under helm releases tab - And user is able to see the "PendingInstall", "PendingUpgrade" and "PendingRollback" options under filter bar - When user clicks on the helm release name "nodejs-release" - Then user is able to see the status and status icon in title after "nodejs-release" - And user is able to see the status and status icon under helm release details - And user switch to Revision history tab - And user is able to see the status and status icon of Revision history page - - Scenario: Context menu options of helm release: HR-01-TC01 - Given user is at the Topology page - When user right clicks on the helm release "nodejs-release" to open the context menu - Then user is able to see the context menu with actions Upgrade and Delete Helm Release - - - Scenario: Open the Helm tab on the navigation bar when helm charts are present: HR-05-TC05 - Given user is at the Helm Release tab in admin perspective - Then user will see the helm charts listed - - - Scenario: Filter out deployed Helm Charts: HR-05-TC06 - Given user is at the Helm Release tab in admin perspective - When user clicks on the filter drop down - And user selects checkbox for the "Deployed" Helm charts - Then the checkbox for the "Deployed" Helm chart is checked - And helm charts with status "Deployed" are listed - - - Scenario: Helm release details page: HR-05-TC13 - Given user is at the Helm Release tab in admin perspective - When user clicks on the helm release name "nodejs-release" - Then user will see the Details page opened - And user will see the Resources tab - And user will see the Revision History tab - And user will see the Release Notes tab - And user will see the Actions drop down menu with options Upgrade, Rollback, and Delete Helm Release - - - Scenario: Perform Upgrade action on Helm Release through Context Menu: HR-08-TC04 - Given user is at the Topology page - When user right clicks on the helm release "nodejs-release" to open the context menu - And user clicks on the "Upgrade" action - And user upgrades the chart Version - And user clicks on the upgrade button - Then user will be redirected to Topology page - - - Scenario: Actions menu on Helm page after helm chart upgrade: HR-08-TC01 - Given user is on the Helm page with helm release "nodejs-release" - When user clicks on the Kebab menu - Then user is able to see kebab menu with actions Upgrade, Rollback and Delete Helm Release - - - Scenario: Perform the helm chart upgrade for already upgraded helm chart : HR-08-TC02 - Given user is on the Helm page with helm release "nodejs-release" - When user clicks on the Kebab menu - And user clicks on the "Upgrade" action - And user upgrades the chart Version - And user clicks on the upgrade button - Then user will be redirected to Helm Releases page under Helm tab - - - Scenario: Perform Rollback action on Helm Release through Context Menu: HR-08-TC03 - Given user is at the Topology page - And user is on the topology sidebar of the helm release "nodejs-release" - When user clicks on the Actions drop down menu - And user clicks on the "Rollback" action - And user selects the version to Rollback - And user clicks on the rollback button - Then user will be redirected to Topology page - - - Scenario: Delete Helm Release through Context Menu: HR-01-TC03 - Given user is at the Topology page - When user right clicks on the helm release "nodejs-release" to open the context menu - And user clicks on the "Delete Helm Release" action - And user enters the release name "nodejs-release" - And user clicks on the Delete button - Then user will be redirected to Topology page diff --git a/frontend/packages/helm-plugin/integration-tests/features/helm/actions-on-helm-release-after-upgrade.feature b/frontend/packages/helm-plugin/integration-tests/features/helm/actions-on-helm-release-after-upgrade.feature deleted file mode 100644 index eb6b73ae7ce..00000000000 --- a/frontend/packages/helm-plugin/integration-tests/features/helm/actions-on-helm-release-after-upgrade.feature +++ /dev/null @@ -1,40 +0,0 @@ -@helm @smoke -Feature: Verify the Actions on Helm Release after upgrade - As a user, I want to perform the actions on the helm releases in topology page - - Background: - Given user has created or selected namespace "aut-helm" - - - @pre-condition - Scenario: Perform Upgrade action on Helm Release through Context Menu: HR-08-TC04 - Given user has installed helm chart "Nodejs" with helm release name "nodejs-release-1" - And user is at the Topology page - When user right clicks on the helm release "nodejs-release-1" to open the context menu - And user clicks on the "Upgrade" action - And user clicks on the upgrade button - Then user will be redirected to Topology page - - - Scenario: Actions menu on Helm page after helm chart upgrade: HR-08-TC01 - Given user is on the Helm page with helm release "nodejs-release-1" - When user clicks on the Kebab menu - Then user is able to see kebab menu with actions Upgrade, Rollback and Delete Helm Release - - - Scenario: Perform the helm chart upgrade for already upgraded helm chart : HR-08-TC02 - Given user is on the Helm page with helm release "nodejs-release-1" - When user clicks on the Kebab menu - And user clicks on the "Upgrade" action - And user clicks on the upgrade button - Then user will be redirected to Helm Releases page - - - Scenario: Perform Rollback action on Helm Release through Context Menu: HR-08-TC03 - Given user is at the Topology page - And user is on the topology sidebar of the helm release "nodejs-release-1" - When user clicks on the Actions drop down menu - And user clicks on the "Rollback" action - And user selects the version to Rollback - And user clicks on the rollback button - Then user will be redirected to Topology page diff --git a/frontend/packages/helm-plugin/integration-tests/features/helm/actions-on-helm-release.feature b/frontend/packages/helm-plugin/integration-tests/features/helm/actions-on-helm-release.feature deleted file mode 100644 index 517465d6826..00000000000 --- a/frontend/packages/helm-plugin/integration-tests/features/helm/actions-on-helm-release.feature +++ /dev/null @@ -1,50 +0,0 @@ -@helm @smoke -Feature: Perform Actions on Helm Releases - As a user, I want to perform the actions on the helm releases in topology page - - Background: - Given user has created or selected namespace "aut-helm" - - - @pre-condition - Scenario: Install Helm Chart from +Add Page using Form View: HR-06-TC04 - Given user is at Add page - When user selects "Helm Chart" card from add page - And user searches and selects "Nodejs" card from catalog page - And user clicks on the Create button on side bar - And user enters Release Name as "nodejs-release-2" - And user clicks on the Create button - Then user will be redirected to Topology page - And Topology page have the helm chart workload "nodejs-release-2" - - @regression @broken-test - Scenario: Context menu options of helm release: HR-01-TC01 - Given user is at the Topology page - When user right clicks on the helm release "nodejs-release-2" to open the context menu - Then user is able to see the context menu with actions Upgrade and Delete Helm Release - - - Scenario: Actions menu on Helm page: HR-01-TC02 - Given user is on the Helm page with helm release "nodejs-release-2" - When user clicks on the Kebab menu - Then user is able to see kebab menu with actions Upgrade, Rollback and Delete Helm Release - - - Scenario: Delete Helm Release through Context Menu: HR-01-TC03 - Given user is at the Topology page - When user right clicks on the helm release "nodejs-release-2" to open the context menu - And user clicks on the "Delete Helm Release" action - And user enters the release name "nodejs-release-2" - And user clicks on the Delete button - Then user will be redirected to Topology page - - Scenario: Helm release status verification: HR-01-TC04 - Given user has installed helm chart "Nodejs" with helm release name "nodejs-release" - And user is able to see "nodejs-release" in helm page - And user is able to see the status and status icon of "nodejs-release" under helm releases tab - And user is able to see the "PendingInstall", "PendingUpgrade" and "PendingRollback" options under filter bar - When user clicks on the helm release name "nodejs-release" - Then user is able to see the status and status icon in title after "nodejs-release" - And user is able to see the status and status icon under helm release details - And user switch to Revision history tab - And user is able to see the status and status icon of Revision history page diff --git a/frontend/packages/helm-plugin/integration-tests/features/helm/helm-compatibility.feature b/frontend/packages/helm-plugin/integration-tests/features/helm/helm-compatibility.feature deleted file mode 100644 index dd5e5991604..00000000000 --- a/frontend/packages/helm-plugin/integration-tests/features/helm/helm-compatibility.feature +++ /dev/null @@ -1,31 +0,0 @@ -@helm -Feature: Helm Chart - User will be able to update the chart versions or values config of a helm release - - - Background: - Given user has created or selected namespace "aut-helm" - - - @smoke - Scenario: Compatible helm charts: HR-02-TC01 - Given user is at Add page - When user clicks on the Helm Chart card on the Add page - Then user redirects to Helm Charts page - And user is able to see helm charts - - - @regression @manual - Scenario: Check the meta data for the importing helm charts from index.yaml: HR-02-TC02 - Given user is at Add page - When user opens the Network tab - And user clicks on the Helm Chart card on the Add page - And user clicks on the index.yaml on the Network tab - Then user sees that the kubeversion of each chart is either equal to or less than the kubeversion of cluster - - - @regression @manual - Scenario: Check the chart versions in the chart version dropdown if they are compatible with the cluster: HR-02-TC03 - Given user is at the Create Helm Release page - When user clicks on the Chart Version dropdown menu - Then user will see the chart versions which are compatible with the kubeversion of the cluster diff --git a/frontend/packages/helm-plugin/integration-tests/features/helm/helm-feature-flag.feature b/frontend/packages/helm-plugin/integration-tests/features/helm/helm-feature-flag.feature deleted file mode 100644 index bc1dada398b..00000000000 --- a/frontend/packages/helm-plugin/integration-tests/features/helm/helm-feature-flag.feature +++ /dev/null @@ -1,33 +0,0 @@ -@helm -Feature: Feature flag for Helm - As a user, I want to disable helm specific navigation items from console if there are no helm repositories configured in the console. - - - Background: - Given user has created or selected namespace "aut-helm" - - - @regression @manual - Scenario: Disable helm features in console: HR-03-TC01 - Given user is at Helm Chart Repositories page - And user can see only the default "redhat-helm-repo" CR is available - When user opens "redhat-helm-repo" CR - And user goes to YAML tab - And user adds "disabled: true" flag under "spec" - And user clicks on Save - Then user is not able to see the Helm tab in the navigation menu - And user can not see Helm Chart card in Add page - And user can not see Helm Charts filter in the Software Catalog page - - - @regression @manual - Scenario: Enable the disabled helm features in console: HR-03-TC02 - Given user has disabled helm features - And the default "redhat-helm-repo" Helm Chart Repositories CR is available - When user opens "redhat-helm-repo" CR - And user goes to YAML tab - And user removes "disabled: true" flag under "spec" - And user clicks on Save - Then user is able to see the Helm tab in the navigation menu - And user can see Helm Chart card in Add page - And user can see Helm Charts filter in the Software Catalog page diff --git a/frontend/packages/helm-plugin/integration-tests/features/helm/helm-installation-view.feature b/frontend/packages/helm-plugin/integration-tests/features/helm/helm-installation-view.feature deleted file mode 100644 index 4c06477b7e9..00000000000 --- a/frontend/packages/helm-plugin/integration-tests/features/helm/helm-installation-view.feature +++ /dev/null @@ -1,49 +0,0 @@ -@helm -Feature: Helm Chart Installation View - As a user, I should be able switch between YAML and Form view to install Helm Chart - - - Background: - Given user has created or selected namespace "aut-helm" - - - # This test is broken because now there is only on version of nodejs chart. - @regression - Scenario: Grouping of Helm multiple chart versions together in software catalog: HR-04-TC01 - Given user is at Add page - When user selects "Helm Chart" card from add page - And user clicks on "open-shift-helm-charts" chart repository - And user searches and selects "Nodejs" card from catalog page - And user clicks on the Create button on side bar - And user clicks on the chart versions dropdown menu - Then user will see the information of all the chart versions - - @manual - Scenario: Switch from YAML to Form view: HR-04-TC02 - Given user is at the Create Helm Release page - When user selects the YAML view - And user does some changes in the yaml for helm chart - And user selects the Form view - And user comes back to YAML view - Then user will see that the data hasn't lost - - # This test is broken because now there's no replica count field in the form. - @smoke @broken-test - Scenario: Data doesn't change while switching Form to YAML view: HR-04-TC03 - Given user is at Add page - When user selects "Helm Chart" card from add page - And user searches and selects "Nodejs" card from catalog page - And user clicks on the Create button on side bar - And user enters Release Name as "nodejs-release-3" - And user enters Replica count as "3" - And user selects the YAML view - And user comes back to Form view - Then user will see Release Name, Replica count as "nodejs-release-3", "3" respectively - - @regression - Scenario: When Helm Release is not configurable: HR-04-TC04 - Given user is at Add page - When user selects "Helm Chart" card from add page - And user searches and selects "Httpd Imagestreams" card from catalog page - And user clicks on the Create button on side bar - Then user should see message "Helm release is not configurable since the Helm Chart doesn't define any values." diff --git a/frontend/packages/helm-plugin/integration-tests/features/helm/helm-navigation.feature b/frontend/packages/helm-plugin/integration-tests/features/helm/helm-navigation.feature deleted file mode 100644 index 53a2cdaf511..00000000000 --- a/frontend/packages/helm-plugin/integration-tests/features/helm/helm-navigation.feature +++ /dev/null @@ -1,116 +0,0 @@ -@helm -Feature: Navigations on Helm Chart - As a user, I want to navigate to different pages related to Helm Charts - - Background: - Given user has created or selected namespace "aut-helm" - - # This test is wrong and fails because namespace is not cleaned up after every feature scernario is run. - # The test expects that there are no helm releases but there is from the previous feature run. - @broken-test - Scenario: Open the Helm tab on the navigation bar when helm charts are absent: HR-05-TC01 - When user clicks on the Helm tab in dev perspective - Then user will be redirected to Helm releases page - And user is able to see the message "No Helm Releases found" - And user will get the link to install helm charts from software catalog - - - @smoke - Scenario: Create Helm Release page details: HR-05-TC02 - Given user is at Add page - When user selects "Helm Chart" card from add page - And user searches and selects "Nodejs" card from catalog page - And user clicks on the Create button on side bar - Then Create Helm Release page is displayed - And release name displays as "nodejs" - And form view radio button is selected by default - And yaml view radio button is enabled - And form sections are displayed in form view - - - @smoke - Scenario: Yaml view editor for Install Helm Chart page: HR-05-TC03 - Given user is at Create Helm Release page - When user selects YAML view - Then user is able to see YAML editor - - - @smoke - Scenario: Install Helm Chart: HR-05-TC04 - Given user is at Add page - When user selects "Helm Chart" card from add page - And user searches and selects "Nodejs" card from catalog page - And user clicks on the Create button on side bar - And user clicks on the Create button - Then user will be redirected to Topology page - And Topology page have the helm chart workload "nodejs" - - - @smoke - Scenario: Open the Helm tab on the navigation bar when helm charts are present: HR-05-TC05 - Given user is at the Helm page - When user clicks on the Helm tab in dev perspective - Then user will be redirected to Helm releases page - And user will see the helm charts listed - - - @regression - Scenario: Filter out deployed Helm Charts: HR-05-TC06 - Given user is at the Helm page - When user clicks on the filter drop down - And user selects checkbox for the "Deployed" Helm charts - Then the checkbox for the "Deployed" Helm chart is checked - And helm charts with status "Deployed" are listed - - - @regression @manual - Scenario: Filter out failed Helm Charts: HR-05-TC07 - Given user is at the Helm page - When user clicks on the filter drop down - And user selects checkbox for the "Failed" Helm charts - Then the checkbox for the "Failed" Helm chart is checked - And helm charts with status "Failed" are listed - - - @regression @manual - Scenario: Filter out other Helm charts: HR-05-TC08 - Given user is at the Helm page - When user clicks on the filter drop down - And user selects checkbox for the "Other" Helm charts - Then the checkbox for the "Other" Helm chart is checked - And helm charts with status "Other" are listed - - - @regression - Scenario: Select all filters: HR-05-TC09 - Given user is at the Helm page - When user clicks on the filter drop down - And user selects checkbox for the "All" Helm charts - Then the checkbox for the "All" Helm chart is checked - - - @regression - Scenario: Clear all filters: HR-05-TC10 - Given user is at the Helm page - When user clicks on the filter drop down - And user selects checkbox for the "All" Helm charts - And user clicks on the clear all filters button - Then "All" filters selected will get removed - - - @regression - Scenario: Search for the Helm Chart: HR-05-TC11 - Given user is at the Helm page - When user searches for a helm chart "nodejs" - Then the helm chart "nodejs" will be shown - - - @smoke - Scenario: Helm release details page: HR-05-TC13 - Given user is at the Helm page - When user clicks on the helm release name "nodejs" - Then user will see the Details page opened - And user will see the Resources tab - And user will see the Revision History tab - And user will see the Release Notes tab - And user will see the Actions drop down menu with options Upgrade, Rollback, and Delete Helm Release diff --git a/frontend/packages/helm-plugin/integration-tests/features/helm/helm-page-tabs.feature b/frontend/packages/helm-plugin/integration-tests/features/helm/helm-page-tabs.feature deleted file mode 100644 index 81babda9d9f..00000000000 --- a/frontend/packages/helm-plugin/integration-tests/features/helm/helm-page-tabs.feature +++ /dev/null @@ -1,85 +0,0 @@ -@helm @ODC-6685 -Feature: Add repositories tab in Helm navigation item - As a user, I want to navigate to different tabs related to Helm in the Helm page - - Background: - Given user has logged in as admin user - And user is at developer perspective - And user has created or selected namespace "aut-helm" - - - @regression - Scenario: Helm Page on developer perspective: HR-09-TC01 - Given user is at developer perspective - When user clicks on the Helm tab in dev perspective - Then user is able to see Helm Releases and Repositories Tabs - And user is able to see the message "No Helm Releases found" - And user is able to see the link "Browse the catalog to discover available Helm Charts" - And user is able to see the Create drop down menu with Helm Release and Repository options - - - @regression - Scenario: Repositories Tab on Helm Page: HR-09-TC02 - Given user is at the Helm page - When user clicks on Repositories tab - And user clicks on "openshift-helm-charts" repository - Then Repositories breadcrumbs is visible - And user clicks on Repositories link - And user is redirected to Repositories tab - - - @regression - Scenario: Click on Create Helm Release: HR-09-TC03 - Given user is at the Helm page - When user clicks on Helm release in create action menu - And user searches and selects "Nodejs" card from catalog page - And user clicks on the Create button on side bar - And user enters Release Name as "nodejs-release-2" - And user clicks on the Create button - Then user will be redirected to Topology page - And Topology page have the helm chart workload "nodejs-release-2" - - - @regression - Scenario: Create Project Helm Chart Repository: HR-09-TC04 - Given user is at the Helm page - When user clicks on Repository in create action menu to see the "Create Helm Chart Repository" form - And user enters Chart repository name as "helm-test1" - And user enters Description as "test" - And user enters URL as "https://raw.githubusercontent.com/IBM/charts/master/repo/community/index.yaml" - And user clicks on Create button - Then user can see "ProjectHelmChartRepository" "helm-test1" details page - - - @regression - Scenario: Edit Project Helm Chart Repository: HR-09-TC05 - Given user is at the Helm page - When user clicks on Repositories tab - And user edits "helm-test1" "ProjectHelmChartRepository" - And user enters Display name as "My charts" - And user clicks on Save button to see the "ProjectHelmChartRepository" "helm-test1" details page - And user navigates to Helm page - And user clicks on Repositories tab - Then user can see "ProjectHelmChartRepository" "helm-test1" updated with "My charts" in the list page - - @regression - Scenario: Create Helm Chart Repository: HR-09-TC06 - Given user is at the Helm page - When user clicks on Repository in create action menu to see the "Create Helm Chart Repository" form - And user selects cluster-scoped scope type - And user enters Chart repository name as "helm-test2" - And user enters URL as "https://raw.githubusercontent.com/Azure-Samples/helm-charts/master" - And user clicks on Create button - Then user can see "HelmChartRepository" "helm-test2" details page - - - @regression - Scenario: Edit Helm Chart Repository: HR-09-TC07 - Given user is at the Helm page - When user clicks on Repositories tab - And user edits "helm-test2" "HelmChartRepository" - And user enters URL as "https://raw.githubusercontent.com/Azure-Samples/helm-charts/master/docs/index.yaml" - And user clicks on Save button to see the "HelmChartRepository" "helm-test2" details page - And user navigates to Helm page - And user clicks on Repositories tab - Then user can see "HelmChartRepository" "helm-test2" updated with "https://raw.githubusercontent.com/Azure-Samples/helm-charts/master/docs/index.yaml" in the list page diff --git a/frontend/packages/helm-plugin/integration-tests/features/helm/install-helm-chart.feature b/frontend/packages/helm-plugin/integration-tests/features/helm/install-helm-chart.feature deleted file mode 100644 index a44c46b1477..00000000000 --- a/frontend/packages/helm-plugin/integration-tests/features/helm/install-helm-chart.feature +++ /dev/null @@ -1,138 +0,0 @@ -@helm -Feature: Install the Helm Release - As a user, I want to install the helm release - - - Background: - Given user has created or selected namespace "aut-helm" - - - - @smoke - Scenario: The Helm Chart option on the +Add Page: HR-06-TC01 - Given user is at Add page - Then user can see "Helm Chart" card on the Add page - - - @smoke @manual - Scenario: Software Catalog Page when Helm Charts checkbox is selected: HR-06-TC02 - Given user is at Add page - And user has added multiple helm charts repositories - When user selects "Helm Chart" card from add page - Then user will get redirected to Helm Charts page - And user will see the list of Chart Repositories - And user will see the cards of Helm Charts - And user will see Filter by Keyword field - And user will see A-Z, Z-A sort by dropdown - - # This test is broken because the code to submit the modal in form doesn't work correctly. - @regression @broken-test - Scenario: Install Helm Chart from Software Catalog Page using YAML View: HR-06-TC03 - Given user is at Add page - When user selects "Helm Chart" card from add page - And user searches and selects "Quarkus" card from catalog page - And user clicks on the Create button on side bar - And user selects YAML view - # And user selects the Chart Version "0.0.2 (Provided by Red Hat Helm Charts)" - When user clicks on the Create button - Then user will be redirected to Topology page - And Topology page have the helm chart workload "quarkus" - - - @regression - Scenario: Chart versions drop down menu: HR-06-TC05 - Given user is at Add page - When user selects "Helm Chart" card from add page - And user searches and selects "Quarkus" card from catalog page - And user clicks on the Create button on side bar - And user clicks on the chart versions dropdown menu - Then user will see the information of all the chart versions - - - @regression @to-do - Scenario: Certification filter in Helm Catalog Page: HR-06-TC08 - Given user is at Add page - And user has added multiple helm charts repositories with providerType annotations in index.yaml - When user selects "Helm Chart" card from Add page - Then user will see Sources the helm chart is coming - And user will see Partner, Community and Redhat option in Sources section - - # Add a new helm chart repo that contains providerType annotations in index.yaml: - # Need to update the example repo when default is available with appropriate annotation - # apiVersion: helm.openshift.io/v1beta1 - # kind: HelmChartRepository - # metadata: - # name: redhat-certified - # spec: - # connectionConfig: - # url: >- - # https://raw.githubusercontent.com/rohitkrai03/redhat-helm-charts/certification - # name: Red Hat Certification Charts - - - @regression @to-do - Scenario: Applying Redhat Certification filter in Helm Catalog Page: HR-06-TC09 - Given user is at Add page - And user has added multiple helm charts repositories with providerType annotations in index.yaml - When user selects "Helm Chart" card from Add page - And user clicks on Partner Source filter - Then user will see Certified helm repositories present in the Helm Catalog Page - - # Add a new helm chart repo that contains providerType annotations in index.yaml: - # Need to update the example repo when default is available with appropriate annotation - # apiVersion: helm.openshift.io/v1beta1 - # kind: HelmChartRepository - # metadata: - # name: redhat-certified - # spec: - # connectionConfig: - # url: >- - # https://raw.githubusercontent.com/rohitkrai03/redhat-helm-charts/certification - # name: Red Hat Certification Charts - - - @regression @manual - Scenario: Certified badge in Helm Catalog Page: HR-06-TC10 - Given user is at Add page - And user has added multiple helm charts repositories with providerType annotations in index.yaml - And user has disabled the default Red Hat helm chart repo - # Scenario can be found in /helm-plugin/integration-tests/features/helm/helm-feature-flag.feature - When user selects "Helm Chart" card from Add page - Then user will see Blue certified badge associated with charts that are from certified partners - - - @regression @manual - Scenario: Certified badge in Helm install side panel: HR-06-TC11 - Given user is at Add page - And user has added multiple helm charts repositories with providerType annotations in index.yaml - And user has disabled the default Red Hat helm chart repo - When user selects "Helm Chart" card from Add page - And user clicks on helm chart with blue tick - Then user will see Blue certified badge associated with heading of the helm chart - - - @regression @ODC-5713 - Scenario Outline: Namespace-scoped Helm Chart Repositories in the dev catalog: HR-06-TC12 - Given user is at Add page - # Uncomment below for cluster not having projecthelmchartrepositories CRD - # And user has applied namespaced CRD yaml "" - And user has created namespaced helm chart repo with yaml "" in namespace "aut-helm" - When user selects Helm Chart card from Add page - Then user will see "Ibm Repo" under Chart repositories filter - And user will not see "Ibm Repo" under Chart repositories filter in a new namespace "test-helm1" - - Examples: - | cr_yaml | - | test-data/namespaced-helm-chart-repository.yaml | - - - @regression @manual @ODC-5713 - Scenario: Creating projecthelmchartrepository by non-admin user: HR-06-TC13 - Given user is at Add page - # Uncomment below for cluster not having projecthelmchartrepositories CRD - # And user has applied namespaced CRD yaml "namespaced-helm-chart-repository.yaml" - And user has logged in as consoledeveloper - When user adds projecthelmchartrepository CR with yaml "namespaced-helm-crd" - And user selects Helm Chart card from Add page - Then user will see "Ibm Repo" under Chart repositories filter - And user will not see "Ibm Repo" under Chart repositories filter in a new namespace "test-helm2" diff --git a/frontend/packages/helm-plugin/integration-tests/features/helm/install-url-chart.feature b/frontend/packages/helm-plugin/integration-tests/features/helm/install-url-chart.feature deleted file mode 100644 index 9bda9bf0c25..00000000000 --- a/frontend/packages/helm-plugin/integration-tests/features/helm/install-url-chart.feature +++ /dev/null @@ -1,62 +0,0 @@ -@helm -Feature: Install Helm Chart from URL - As a user, I want to install a Helm chart from an OCI or HTTP URL - - - Background: - Given user has created or selected namespace "aut-helm-url" - - - @smoke - Scenario: Navigate to URL chart install page from Helm tab: HR-URL-TC01 - Given user is at the Helm page - When user clicks on Create menu and selects "Install a Helm Chart from a URL" - Then user is redirected to the URL chart install page - - - @smoke - Scenario: Validate required fields on URL chart form: HR-URL-TC02 - Given user is at the URL chart install page - When user clicks on the Next button without filling any fields - Then user will see validation errors for Chart URL, Release name, and Chart version - - - @regression - Scenario: Validate invalid chart URL format: HR-URL-TC03 - Given user is at the URL chart install page - When user enters "not-a-valid-url" as Chart URL - And user enters Release Name as "test-release" - And user enters Chart Version as "1.0.0" - And user clicks on the Next button - Then user will see a validation error for invalid Chart URL format - - - @smoke - Scenario: Install Helm Chart from HTTP URL: HR-URL-TC04 - Given user is at the URL chart install page - When user enters "https://redhat-developer.github.io/redhat-helm-charts/charts/dotnet-0.0.1.tgz" as Chart URL - And user enters Release Name as "dotnet-url-test" - And user enters Chart Version as "0.0.1" - And user clicks on the Next button - And user clicks on the Install button - Then user will be redirected to Topology page - - - @smoke - Scenario: Install Helm Chart from OCI registry: HR-URL-TC05 - Given user is at the URL chart install page - When user enters "oci://ghcr.io/stefanprodan/charts/podinfo" as Chart URL - And user enters Release Name as "podinfo-oci-test" - And user enters Chart Version as "6.7.1" - And user clicks on the Next button - And user clicks on the Install button - Then user will be redirected to Topology page - - - @regression - Scenario: Upgrade a URL-installed Helm release: HR-URL-TC06 - Given user is on the Helm page with helm release "dotnet-url-test" - When user clicks on the Kebab menu - And user clicks on the "Upgrade" action - And user clicks on the Install button - Then user will be redirected to Topology page diff --git a/frontend/packages/helm-plugin/integration-tests/features/helm/topology-helm-release.feature b/frontend/packages/helm-plugin/integration-tests/features/helm/topology-helm-release.feature deleted file mode 100644 index 047a13e20c7..00000000000 --- a/frontend/packages/helm-plugin/integration-tests/features/helm/topology-helm-release.feature +++ /dev/null @@ -1,58 +0,0 @@ -@helm -Feature: Actions on Helm release in topology page - User will be able to open the context menu and side bar for the helm releases - - Background: - Given user has created or selected namespace "aut-helm" - - - @smoke - Scenario: Open Side Bar for the Helm release: HR-07-TC01 - Given helm release "nodejs-release" is present in topology page - Then user will see the sidebar for the helm release - And user will see the Details, Resources, Release notes tabs - - - @regression - Scenario: Deployment link on the sidebar for the Helm Release: HR-07-TC02 - Given user is at the Topology page - And user is on the topology sidebar of the helm release "nodejs-release" - When user switches to the "Resources" tab - And user clicks on the link for the "Deployments" of helm release - Then user is redirected to the "Deployment" Details page for the helm release - - - @regression - Scenario: Build Configs link on the sidebar for the Helm Release: HR-07-TC03 - Given user is at the Topology page - And user is on the topology sidebar of the helm release "nodejs-release" - When user switches to the "Resources" tab - And user clicks on the link for the "Build Configs" of helm release - Then user is redirected to the "BuildConfig" Details page for the helm release - - - @regression - Scenario: Services link on the sidebar for the Helm Release: HR-07-TC04 - Given user is at the Topology page - And user is on the topology sidebar of the helm release "nodejs-release" - When user switches to the "Resources" tab - And user clicks on the link for the "Services" of helm release - Then user is redirected to the "Service" Details page for the helm release - - - @regression - Scenario: Image Streams link on the sidebar for the Helm Release: HR-07-TC05 - Given user is at the Topology page - And user is on the topology sidebar of the helm release "nodejs-release" - When user switches to the "Resources" tab - And user clicks on the link for the "Image Streams" of helm release - Then user is redirected to the "ImageStream" Details page for the helm release - - - @regression - Scenario: Routes link on the sidebar for the Helm Release: HR-07-TC06 - Given user is at the Topology page - And user is on the topology sidebar of the helm release "nodejs-release" - When user switches to the "Resources" tab - And user clicks on the link for the "Routes" of helm release - Then user is redirected to the "Route" Details page for the helm release diff --git a/frontend/packages/helm-plugin/integration-tests/package.json b/frontend/packages/helm-plugin/integration-tests/package.json deleted file mode 100644 index 5e87a8c9c72..00000000000 --- a/frontend/packages/helm-plugin/integration-tests/package.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "name": "@helm-plugin/integration-tests", - "version": "0.0.1", - "description": "Helm Cypress tests", - "private": true, - "cypress-cucumber-preprocessor": { - "step_definitions": "support/step-definitions/*/" - }, - "scripts": { - "test-cypress": "../../../node_modules/.bin/cypress open --env openshift=true", - "test-cypress-headless": "node --max-old-space-size=4096 ../../../node_modules/.bin/cypress run ${CYPRESS_RECORD_KEY:+--record} --env openshift=true --browser ${BRIDGE_E2E_BROWSER_NAME:-electron} --headless --spec \"features/helm-release.feature\"", - "test-cypress-headless-all": "node --max-old-space-size=4096 ../../../node_modules/.bin/cypress run --env openshift=true --browser ${BRIDGE_E2E_BROWSER_NAME:-electron} --headless" - } -} diff --git a/frontend/packages/helm-plugin/integration-tests/reporter-config.json b/frontend/packages/helm-plugin/integration-tests/reporter-config.json deleted file mode 100644 index c51b55f11bd..00000000000 --- a/frontend/packages/helm-plugin/integration-tests/reporter-config.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "reporterEnabled": "mocha-junit-reporter, mochawesome", - "mochaJunitReporterReporterOptions": { - "mochaFile": "../../../gui_test_screenshots/junit_cypress-[hash].xml", - "toConsole": false - }, - "mochawesomeReporterOptions": { - "reportDir": "../../../gui_test_screenshots/", - "reportFilename": "cypress_report_helm", - "overwrite": false, - "html": false, - "json": true - } -} diff --git a/frontend/packages/helm-plugin/integration-tests/support/commands/hooks.ts b/frontend/packages/helm-plugin/integration-tests/support/commands/hooks.ts deleted file mode 100644 index 057173e500d..00000000000 --- a/frontend/packages/helm-plugin/integration-tests/support/commands/hooks.ts +++ /dev/null @@ -1,13 +0,0 @@ -before(() => { - cy.login(); - cy.document().its('readyState').should('eq', 'complete'); - cy.window().then((win: any) => { - win.SERVER_FLAGS.userSettingsLocation = 'localstorage'; - }); - // Default helm repo has been changed to a new repo, so executing below line to fix that issue - cy.exec('oc apply -f test-data/red-hat-helm-charts.yaml'); -}); - -after(() => { - cy.exec(`oc delete namespace ${Cypress.expose('NAMESPACE')}`, { failOnNonZeroExit: false }); -}); diff --git a/frontend/packages/helm-plugin/integration-tests/support/commands/index.ts b/frontend/packages/helm-plugin/integration-tests/support/commands/index.ts deleted file mode 100644 index bb6f3f936e4..00000000000 --- a/frontend/packages/helm-plugin/integration-tests/support/commands/index.ts +++ /dev/null @@ -1,9 +0,0 @@ -// Include the cypress customized commands related files -import '../../../../integration-tests/support/selectors'; -import '../../../../integration-tests/support/a11y'; -import '../../../../integration-tests/support/login'; -import '../../../../integration-tests/support/project'; -import '../../../../integration-tests/support/index'; -import '../../../../dev-console/integration-tests/support/commands/app'; -import '../../../../dev-console/integration-tests/support/pageObjects/helm-po'; -import './hooks'; diff --git a/frontend/packages/helm-plugin/integration-tests/support/constants/index.ts b/frontend/packages/helm-plugin/integration-tests/support/constants/index.ts deleted file mode 100644 index f9e3dbeacaa..00000000000 --- a/frontend/packages/helm-plugin/integration-tests/support/constants/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -/* eslint-disable no-barrel-files/no-barrel-files */ -export * from './navigation'; -export * from './static-text/helm-text'; diff --git a/frontend/packages/helm-plugin/integration-tests/support/constants/navigation.ts b/frontend/packages/helm-plugin/integration-tests/support/constants/navigation.ts deleted file mode 100644 index 42af94c3faa..00000000000 --- a/frontend/packages/helm-plugin/integration-tests/support/constants/navigation.ts +++ /dev/null @@ -1,9 +0,0 @@ -/** - * Navigation paths for cy.clickNavLink() - * Format: [parent menu, submenu] - */ -export const navPaths = { - helm: ['Ecosystem', 'Helm'], - topology: ['Workloads', 'Topology'], - softwareCatalog: ['Ecosystem', 'Software Catalog'], -}; diff --git a/frontend/packages/helm-plugin/integration-tests/support/constants/static-text/helm-text.ts b/frontend/packages/helm-plugin/integration-tests/support/constants/static-text/helm-text.ts deleted file mode 100644 index 44ea5e5c110..00000000000 --- a/frontend/packages/helm-plugin/integration-tests/support/constants/static-text/helm-text.ts +++ /dev/null @@ -1,3 +0,0 @@ -export const messages = { - noHelmReleasesFound: 'No Helm Releases found', -}; diff --git a/frontend/packages/helm-plugin/integration-tests/support/pages/helm/helm-details-page.ts b/frontend/packages/helm-plugin/integration-tests/support/pages/helm/helm-details-page.ts deleted file mode 100644 index ba1555a3848..00000000000 --- a/frontend/packages/helm-plugin/integration-tests/support/pages/helm/helm-details-page.ts +++ /dev/null @@ -1,69 +0,0 @@ -import { modal } from '@console/cypress-integration-tests/views/modal'; -import { helmActions } from '@console/dev-console/integration-tests/support/constants'; -import { helmPO } from '@console/dev-console/integration-tests/support/pageObjects'; - -const actions = [helmActions.upgrade, helmActions.rollback, helmActions.deleteHelmRelease]; - -export const helmDetailsPage = { - verifyTitle: () => cy.byTestSectionHeading('Helm Release details').should('be.visible'), - verifyHelmReleaseStatus: () => cy.get('[data-test="status-text"]').should('be.visible'), - verifyResourcesTab: () => cy.get(helmPO.resourcesTab).should('be.visible'), - verifyReleaseNotesTab: () => cy.get(helmPO.revisionHistoryTab).should('be.visible'), - verifyActionsDropdown: () => cy.byLegacyTestID('actions-menu-button').should('be.visible'), - verifyRevisionHistoryTab: () => cy.get(helmPO.revisionHistoryTab).should('be.visible'), - clickActionMenu: () => cy.byLegacyTestID('actions-menu-button').click(), - verifyActionsInActionMenu: () => { - cy.byLegacyTestID('action-items') - .find('li') - .each(($ele) => { - expect(actions).toContain($ele.text()); - }); - }, - verifyFieldValue: (fieldName: string, fieldValue: string) => { - cy.get('dl dt').contains(fieldName).next('dd').should('contain.text', fieldValue); - }, - uninstallHelmRelease: () => { - cy.byLegacyTestID('modal-title').should('contain.text', 'Delete Helm Release?'); - cy.byTestID('confirm-action').click({ force: true }); - modal.shouldBeClosed(); - }, - enterReleaseNameInUninstallPopup: (releaseName: string = 'nodejs-release') => { - modal.modalTitleShouldContain('Delete Helm Release?'); - cy.byTestID('resource-name').should('have.text', releaseName); - cy.get(helmPO.uninstallHelmRelease.releaseName).type(releaseName); - }, - checkHelmTab: (name: string) => { - cy.byLegacyTestID(`horizontal-link-${name}`).should('exist'); - }, - selectHelmTab: (name: string) => { - cy.byLegacyTestID(`horizontal-link-${name}`).should('exist').click(); - }, - selectedHelmTab: (name: string) => { - cy.byLegacyTestID(`horizontal-link-${name}`) - .should('exist') - .parent('.pf-v6-c-tabs__item') - .should('have.class', 'pf-m-current'); - }, - verifyHelmActionsDropdown: () => cy.byTestID('console-select-menu-toggle').should('be.visible'), - clickHelmActionButton: () => cy.byTestID('console-select-menu-toggle').click(), - verifyActionsInCreateMenu: () => { - cy.byTestID('console-select-item').contains('Repository').should('exist'); - cy.byTestID('console-select-item').contains('Helm Release').should('exist'); - }, - clickCreateMenu: (createMenuOption: string) => { - cy.byTestID('console-select-menu-toggle').click(); - cy.byTestID('console-select-item').contains(createMenuOption).click(); - }, - clickHelmChartRepository: (repoName: string) => cy.byLegacyTestID(repoName).click(), - selectHelmChartRepository: (repoName: string) => - cy.byTestID(`chartRepositoryTitle-${repoName}`).click(), - clickCreateHelmRelease: () => { - cy.byTestID('console-select-menu-toggle').click(); - cy.byTestID('console-select-item').contains('Helm Release').click(); - }, - clickCreateRepository: () => { - cy.byTestID('console-select-menu-toggle').click(); - cy.byTestID('console-select-item').contains('Repository').click(); - }, - clickRevisionHistoryTab: () => cy.get(helmPO.revisionHistoryTab).click(), -}; diff --git a/frontend/packages/helm-plugin/integration-tests/support/pages/helm/helm-page.ts b/frontend/packages/helm-plugin/integration-tests/support/pages/helm/helm-page.ts deleted file mode 100644 index 7d940ef8066..00000000000 --- a/frontend/packages/helm-plugin/integration-tests/support/pages/helm/helm-page.ts +++ /dev/null @@ -1,183 +0,0 @@ -import { helmActions } from '@console/dev-console/integration-tests/support/constants'; -import { helmPO } from '@console/dev-console/integration-tests/support/pageObjects'; - -export const helmPage = { - verifyMessage: (noHelmReleasesFound: string) => - cy.get(helmPO.noHelmReleasesMessage).should('contain.text', noHelmReleasesFound), - verifyInstallHelmLink: () => - cy - .get('a') - .contains('Browse the catalog to discover available Helm Charts') - .should('be.visible'), - search: (name: string) => { - cy.get(helmPO.filters).within(() => cy.get('.pf-v6-c-menu-toggle').first().click()); - cy.get('.pf-v6-c-menu__list-item').contains('Name').click(); - cy.get('[aria-label="Filter by name"]').clear().type(name); - }, - verifyHelmReleasesDisplayed: () => cy.get(helmPO.table).should('be.visible'), - clickHelmReleaseName: (name: string) => cy.get(`a[title="${name}"]`).click(), - selectAllHelmFilter: () => { - cy.get(helmPO.deployedCheckbox).check(); - cy.get(helmPO.failedCheckbox).check(); - cy.get(helmPO.otherCheckbox).check(); - }, - selectHelmFilter: (filterName: string) => { - switch (filterName) { - case 'Deployed': { - cy.get(helmPO.deployedCheckbox).check(); - break; - } - case 'Failed': { - cy.get(helmPO.failedCheckbox).check(); - break; - } - case 'Other': { - cy.get(helmPO.otherCheckbox).check(); - break; - } - case 'All': { - helmPage.selectAllHelmFilter(); - break; - } - default: { - throw new Error(`${filterName} filter is not available in filter drop down`); - } - } - helmPage.selectHelmFilterDropDown(); - }, - verifyStatusInHelmReleasesTable: (helmReleaseName: string = 'Nodejs') => { - cy.get(helmPO.table).should('exist'); - cy.get('tr td:nth-child(1)').each(($el, index) => { - const text = $el.text(); - if (text.includes(helmReleaseName)) { - cy.get('tbody tr').eq(index).find('td:nth-child(4) button').click(); - } - }); - }, - selectKebabMenu: () => { - cy.get(helmPO.table).should('exist'); - cy.byLegacyTestID('kebab-button').first().click(); - }, - verifyHelmChartsListed: () => { - cy.get(helmPO.noHelmSearchMessage) - .get(helmPO.table) - .get('table') - .its('length') - .should('be.greaterThan', 0); - }, - verifyHelmChartStatus: () => { - cy.byTestID('success-icon').should('be.visible'); - cy.byTestID('status-text').should('exist'); - }, - verifySearchMessage: (message: string) => - cy.get(helmPO.noHelmSearchMessage).should('contain.text', message), - selectHelmFilterDropDown: () => { - cy.get(helmPO.filters).within(() => cy.get('.pf-v6-c-menu-toggle').first().click()); - cy.get('.pf-v6-c-menu__list-item').contains('Status').click(); - }, - selectHelmFilterOption: (filterName: string) => { - cy.get(helmPO.filterDropdown).click(); - cy.get(`[data-ouia-component-id="DataViewCheckboxFilter-filter-item-${filterName}"]`).click(); - cy.url().should('include', `=${filterName}`); - cy.get(helmPO.filterDropdown).click(); - }, - getItemFromReleaseTable: (header: string) => { - cy.get(helmPO.table) - .find('[data-test="data-view-cell-helm-release-name"]') - .first() - .should('be.visible') - .parent() - .find('[data-test="status-text"]') - .should('contain.text', header); - }, - verifyHelmFilterUnSelected: (filterName: string) => { - helmPage.selectHelmFilterDropDown(); - cy.get(helmPO.filterDropdown).click(); - switch (filterName) { - case 'Deployed': { - cy.get(helmPO.deployedCheckbox).uncheck().should('not.be.checked'); - break; - } - case 'Failed': { - cy.get(helmPO.failedCheckbox).uncheck().should('not.be.checked'); - break; - } - case 'Other': { - cy.get(helmPO.failedCheckbox).uncheck().should('not.be.checked'); - break; - } - case 'All': { - cy.get(helmPO.deployedCheckbox).uncheck().should('not.be.checked'); - cy.get(helmPO.failedCheckbox).uncheck().should('not.be.checked'); - cy.get(helmPO.otherCheckbox).uncheck().should('not.be.checked'); - break; - } - default: { - throw new Error(`${filterName} filter is not available in filter drop down`); - } - } - }, - verifyHelmFilterSelected: (filterName: string) => { - helmPage.selectHelmFilterDropDown(); - cy.get(helmPO.filterDropdown).click(); - switch (filterName) { - case 'Deployed': { - cy.get(helmPO.deployedCheckbox).should('be.checked'); - break; - } - case 'Failed': { - cy.get(helmPO.failedCheckbox).should('be.checked'); - break; - } - case 'Other': { - cy.get(helmPO.otherCheckbox).should('be.checked'); - break; - } - case 'All': { - cy.get(helmPO.deployedCheckbox).should('be.checked'); - cy.get(helmPO.failedCheckbox).should('be.checked'); - cy.get(helmPO.otherCheckbox).should('be.checked'); - break; - } - default: { - throw new Error(`${filterName} filter is not available in filter drop down`); - } - } - helmPage.selectHelmFilterDropDown(); - }, - clearAllFilter: () => { - // eslint-disable-next-line promise/catch-or-return - cy.get(helmPO.filterToolBar).then((body) => { - if (body.find(`button`).text().includes('Clear all filters')) { - cy.get('[data-test="filter-toolbar"] button').contains('Clear all filters').click(); - } - }); - }, - selectHelmActionFromMenu: (actionName: helmActions | string) => { - switch (actionName) { - case 'Upgrade': - case helmActions.upgrade: - cy.get(helmPO.helmActions.upgrade).click(); - break; - case 'Rollback': - case helmActions.rollback: - cy.get(helmPO.helmActions.rollBack).click(); - break; - case 'Delete Helm Release': - case helmActions.deleteHelmRelease: - cy.get(helmPO.helmActions.deleteHelmRelease).click(); - break; - default: - cy.log(`${actionName} is not available in dropdown menu`); - break; - } - }, - verifyInstallHelmChartLink: (installLink: string) => - cy.get('a').contains(installLink).should('be.visible'), - verifyDropdownItem: (item1: string, item2: string, item3: string) => { - cy.get(helmPO.filterDropdown).click(); - cy.get(helmPO.filter.pendingInstall).should('contain.text', item1); - cy.get(helmPO.filter.pendingUpgrade).should('contain.text', item2); - cy.get(helmPO.filter.pendingRollback).should('contain.text', item3); - }, -}; diff --git a/frontend/packages/helm-plugin/integration-tests/support/pages/helm/index.ts b/frontend/packages/helm-plugin/integration-tests/support/pages/helm/index.ts deleted file mode 100644 index f9bd87191c3..00000000000 --- a/frontend/packages/helm-plugin/integration-tests/support/pages/helm/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -/* eslint-disable no-barrel-files/no-barrel-files */ -export * from './helm-details-page'; -export * from './helm-page'; -export * from './rollBack-helm-release-page'; -export * from './upgrade-helm-release-page'; -export * from './url-chart-install-page'; diff --git a/frontend/packages/helm-plugin/integration-tests/support/pages/helm/rollBack-helm-release-page.ts b/frontend/packages/helm-plugin/integration-tests/support/pages/helm/rollBack-helm-release-page.ts deleted file mode 100644 index ea6558e6f31..00000000000 --- a/frontend/packages/helm-plugin/integration-tests/support/pages/helm/rollBack-helm-release-page.ts +++ /dev/null @@ -1,8 +0,0 @@ -import { helmPO } from '@console/dev-console/integration-tests/support/pageObjects'; - -export const rollBackHelmRelease = { - selectRevision: () => { - cy.get('[id^=form-radiobutton-revision]').last().check(); - }, - clickOnRollBack: () => cy.get(helmPO.rollBackHelmRelease.rollBack).click(), -}; diff --git a/frontend/packages/helm-plugin/integration-tests/support/pages/helm/upgrade-helm-release-page.ts b/frontend/packages/helm-plugin/integration-tests/support/pages/helm/upgrade-helm-release-page.ts deleted file mode 100644 index 161c89791b5..00000000000 --- a/frontend/packages/helm-plugin/integration-tests/support/pages/helm/upgrade-helm-release-page.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { warningModal } from '@console/cypress-integration-tests/views/warning-modal'; -import { helmPO } from '@console/dev-console/integration-tests/support/pageObjects/helm-po'; - -export const upgradeHelmRelease = { - verifyTitle: () => cy.get('h1').contains('Upgrade Helm Release').should('be.visible'), - updateReplicaCount: (replicaCount: string = '2') => - cy.get(helmPO.upgradeHelmRelease.replicaCount).clear().type(replicaCount), - upgradeChartVersion: () => { - // Wait for the dropdown to be enabled (starts disabled while loading chart versions) - cy.get(helmPO.upgradeHelmRelease.chartVersion).should('not.be.disabled'); - cy.get(helmPO.upgradeHelmRelease.chartVersion).click(); - const count = Cypress.$('[data-test="console-select"]').length; - const randNum = Math.floor(Math.random() * count); - cy.byTestID('console-select-item').eq(randNum).click(); - warningModal.confirm('HelmChangeChartVersionConfirmation'); - }, - clickOnUpgrade: () => { - cy.get(helmPO.upgradeHelmRelease.upgrade).click(); - cy.get('.pf-v6-c-button__progress').should('not.exist'); - }, -}; diff --git a/frontend/packages/helm-plugin/integration-tests/support/pages/helm/url-chart-install-page.ts b/frontend/packages/helm-plugin/integration-tests/support/pages/helm/url-chart-install-page.ts deleted file mode 100644 index 91b849c4815..00000000000 --- a/frontend/packages/helm-plugin/integration-tests/support/pages/helm/url-chart-install-page.ts +++ /dev/null @@ -1,30 +0,0 @@ -export const urlChartPO = { - chartURL: '[data-test="oci-chart-url"] input', - releaseName: '[data-test="oci-release-name"] input', - chartVersion: '[data-test="oci-chart-version"] input', - nextButton: '[data-test-id="submit-button"]', - cancelButton: '[data-test-id="reset-button"]', - installButton: '[data-test-id="submit-button"]', - backButton: '[data-test-id="reset-button"]', -}; - -export const urlChartInstallPage = { - enterChartURL: (url: string) => { - cy.get(urlChartPO.chartURL).clear().type(url); - }, - enterReleaseName: (name: string) => { - cy.get(urlChartPO.releaseName).clear().type(name); - }, - enterChartVersion: (version: string) => { - cy.get(urlChartPO.chartVersion).clear().type(version); - }, - clickNext: () => { - cy.get(urlChartPO.nextButton).click(); - }, - clickInstall: () => { - cy.get(urlChartPO.installButton).click(); - }, - verifyValidationErrors: () => { - cy.get('.pf-m-error').should('have.length.at.least', 1); - }, -}; diff --git a/frontend/packages/helm-plugin/integration-tests/support/pages/index.ts b/frontend/packages/helm-plugin/integration-tests/support/pages/index.ts deleted file mode 100644 index c6265dada6a..00000000000 --- a/frontend/packages/helm-plugin/integration-tests/support/pages/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -/* eslint-disable no-barrel-files/no-barrel-files */ -export * from './helm/index'; diff --git a/frontend/packages/helm-plugin/integration-tests/support/step-definitions/common/common.ts b/frontend/packages/helm-plugin/integration-tests/support/step-definitions/common/common.ts deleted file mode 100644 index cc33120124d..00000000000 --- a/frontend/packages/helm-plugin/integration-tests/support/step-definitions/common/common.ts +++ /dev/null @@ -1,118 +0,0 @@ -import { Given, When, Then } from 'cypress-cucumber-preprocessor/steps'; -import { modal } from '@console/cypress-integration-tests/views/modal'; -import { nav } from '@console/cypress-integration-tests/views/nav'; -import { - devNavigationMenu, - switchPerspective, - catalogCards, - catalogTypes, -} from '@console/dev-console/integration-tests/support/constants'; -import { - navigateTo, - perspective, - projectNameSpace, - topologyPage, - topologySidePane, - gitPage, - catalogPage, - addPage, - app, -} from '@console/dev-console/integration-tests/support/pages'; -import { checkDeveloperPerspective } from '@console/dev-console/integration-tests/support/pages/functions/checkDeveloperPerspective'; -import { navPaths } from '../../constants'; - -Given('user is at developer perspective', () => { - checkDeveloperPerspective(); -}); - -Given('user is at administrator perspective', () => { - perspective.switchTo(switchPerspective.Administrator); -}); - -Given('user has created or selected namespace {string}', (projectName: string) => { - Cypress.expose('NAMESPACE', projectName); - projectNameSpace.selectOrCreateProject(`${projectName}`); -}); - -Given('user is at the Topology page', () => { - cy.clickNavLink(navPaths.topology); - app.waitForLoad(); - topologyPage.verifyTopologyPage(); -}); - -When('user enters Git Repo url as {string}', (gitUrl: string) => { - gitPage.enterGitUrl(gitUrl); - gitPage.verifyValidatedMessage(gitUrl); -}); - -When('user creates the application with the selected builder image', () => { - catalogPage.selectCatalogType(catalogTypes.BuilderImage); - catalogPage.selectCardInCatalog(catalogCards.nodeJs); - catalogPage.clickButtonOnCatalogPageSidePane(); -}); - -When('user enters name as {string} in General section', (name: string) => { - gitPage.enterComponentName(name); -}); - -When('user selects resource type as {string}', (resourceType: string) => { - gitPage.selectResource(resourceType); -}); - -When('user clicks Create button on Add page', () => { - gitPage.clickCreate(); -}); - -Then('user will be redirected to Topology page', () => { - topologyPage.verifyTopologyPage(); -}); - -Then('user is able to see workload {string} in topology page', (workloadName: string) => { - topologyPage.verifyWorkloadInTopologyPage(workloadName); -}); - -When('user clicks node {string} to open the side bar', (name: string) => { - topologyPage.componentNode(name).click({ force: true }); -}); - -Then('modal with {string} appears', (header: string) => { - modal.modalTitleShouldContain(header); -}); - -When('user clicks on workload {string}', (workloadName: string) => { - topologyPage.componentNode(workloadName).click({ force: true }); -}); - -When('user selects {string} card from add page', (cardName: string) => { - addPage.selectCardFromOptions(cardName); -}); - -Given('user is at Software Catalog page', () => { - cy.clickNavLink(navPaths.softwareCatalog); - catalogPage.verifyTitle(); -}); - -When('user selects Helm Charts type from Software Catalog page', () => { - catalogPage.selectCatalogType(catalogTypes.HelmCharts); - // Wait for catalog cards to be filtered and displayed - catalogPage.isCardsDisplayed(); -}); - -When('user switches to the {string} tab', (tab: string) => { - topologySidePane.selectTab(tab); -}); - -When('user clicks on the link for the {string} of helm release', (resource: string) => { - topologySidePane.selectResource(resource, Cypress.expose('NAMESPACE'), 'nodejs-release'); -}); - -Given('user is at Add page', () => { - checkDeveloperPerspective(); - navigateTo(devNavigationMenu.Add); -}); - -Given('user has logged in as admin user', () => { - cy.login(); - perspective.switchTo(switchPerspective.Administrator); - nav.sidenav.switcher.shouldHaveText(switchPerspective.Administrator); -}); diff --git a/frontend/packages/helm-plugin/integration-tests/support/step-definitions/helm/actions-on-helm-release-after-upgrade.ts b/frontend/packages/helm-plugin/integration-tests/support/step-definitions/helm/actions-on-helm-release-after-upgrade.ts deleted file mode 100644 index 336f25edbcb..00000000000 --- a/frontend/packages/helm-plugin/integration-tests/support/step-definitions/helm/actions-on-helm-release-after-upgrade.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { Given } from 'cypress-cucumber-preprocessor/steps'; -import { catalogPage } from '../../../../../dev-console/integration-tests/support/pages'; - -Given( - 'user has installed helm chart {string} with helm release name {string}', - (chartName: string, releaseName: string) => { - catalogPage.createHelmChart(releaseName, chartName); - }, -); diff --git a/frontend/packages/helm-plugin/integration-tests/support/step-definitions/helm/helm-compatibility.ts b/frontend/packages/helm-plugin/integration-tests/support/step-definitions/helm/helm-compatibility.ts deleted file mode 100644 index cd4f0bca2ae..00000000000 --- a/frontend/packages/helm-plugin/integration-tests/support/step-definitions/helm/helm-compatibility.ts +++ /dev/null @@ -1,22 +0,0 @@ -import { Given, When, Then } from 'cypress-cucumber-preprocessor/steps'; -import { detailsPage } from '@console/cypress-integration-tests/views/details-page'; -import { addOptions } from '@console/dev-console/integration-tests/support/constants/add'; -import { pageTitle } from '@console/dev-console/integration-tests/support/constants/pageTitle'; -import { catalogPO } from '@console/dev-console/integration-tests/support/pageObjects'; -import { addPage } from '@console/dev-console/integration-tests/support/pages/add-flow/add-page'; - -Given('user is at the Create Helm Release page', () => { - addPage.selectCardFromOptions(addOptions.HelmChart); -}); - -When('user clicks on the Helm Chart card on the Add page', () => { - addPage.selectCardFromOptions(addOptions.HelmChart); -}); - -When('user redirects to Helm Charts page', () => { - detailsPage.titleShouldContain(pageTitle.HelmCharts); -}); - -Then('user is able to see helm charts', () => { - cy.get(catalogPO.cardType).should('be.visible'); -}); diff --git a/frontend/packages/helm-plugin/integration-tests/support/step-definitions/helm/helm-installation-view.ts b/frontend/packages/helm-plugin/integration-tests/support/step-definitions/helm/helm-installation-view.ts deleted file mode 100644 index 4b4460cd206..00000000000 --- a/frontend/packages/helm-plugin/integration-tests/support/step-definitions/helm/helm-installation-view.ts +++ /dev/null @@ -1,54 +0,0 @@ -import { When, Then } from 'cypress-cucumber-preprocessor/steps'; -import { catalogPO, helmPO } from '@console/dev-console/integration-tests/support/pageObjects'; -import { catalogPage } from '@console/dev-console/integration-tests/support/pages'; - -When('user searches and selects {string} helm chart from catalog page', (helmChartName: string) => { - catalogPage.search(helmChartName); - catalogPage.selectHelmChartCard(helmChartName); -}); - -Then('user will see the information of all the chart versions', () => { - cy.byTestID('console-select-item').should('have.length.gte', 1); - cy.byLegacyTestID('reset-button').click(); -}); - -When('user clicks on the Create button on side bar', () => { - catalogPage.clickButtonOnCatalogPageSidePane(); -}); - -When('user clicks on the chart versions dropdown menu', () => { - // Wait for the dropdown to be enabled (starts disabled while loading chart versions) - cy.get(helmPO.upgradeHelmRelease.chartVersion).should('not.be.disabled'); - cy.get(helmPO.upgradeHelmRelease.chartVersion).click(); -}); - -When('user selects the YAML view', () => { - cy.get(catalogPO.installHelmChart.yamlView).click(); - cy.get('.osc-yaml-editor').should('be.visible'); -}); - -When('user enters Replica count as {string}', (replicaCount: string) => { - cy.get(catalogPO.installHelmChart.replicaCount).clear().type(replicaCount); -}); - -When('user selects the Form View', () => { - cy.get(catalogPO.installHelmChart.formView).click(); -}); - -When('user comes back to Form view', () => { - cy.get(catalogPO.installHelmChart.formView).click(); - cy.get('.co-dynamic-form').should('be.visible'); -}); - -Then( - 'user will see Release Name, Replica count as {string}, {string} respectively', - (releaseName: string, replicaCount: string) => { - cy.get(catalogPO.installHelmChart.replicaCount).should('contain.value', replicaCount); - cy.get(catalogPO.installHelmChart.releaseName).should('contain.value', releaseName); - cy.byLegacyTestID('reset-button').click(); - }, -); - -Then('user should see message {string}', (message: string) => { - cy.get('h4[class$="alert__title"]').should('contain.text', message).should('exist'); -}); diff --git a/frontend/packages/helm-plugin/integration-tests/support/step-definitions/helm/helm-navigation.ts b/frontend/packages/helm-plugin/integration-tests/support/step-definitions/helm/helm-navigation.ts deleted file mode 100644 index 591ea417b7b..00000000000 --- a/frontend/packages/helm-plugin/integration-tests/support/step-definitions/helm/helm-navigation.ts +++ /dev/null @@ -1,370 +0,0 @@ -import { Given, When, Then } from 'cypress-cucumber-preprocessor/steps'; -import { detailsPage } from '@console/cypress-integration-tests/views/details-page'; -import type { catalogTypes } from '@console/dev-console/integration-tests/support/constants'; -import { - devNavigationMenu, - addOptions, - pageTitle, -} from '@console/dev-console/integration-tests/support/constants'; -import { helmPO } from '@console/dev-console/integration-tests/support/pageObjects'; -import { - catalogPO, - helmChartRepositoriesPO, -} from '@console/dev-console/integration-tests/support/pageObjects/add-flow-po'; -import { - navigateTo, - addPage, - catalogPage, - createForm, -} from '@console/dev-console/integration-tests/support/pages'; -import { checkDeveloperPerspective } from '@console/dev-console/integration-tests/support/pages/functions/checkDeveloperPerspective'; -import { topologyPage } from '@console/topology/integration-tests/support/pages/topology/topology-page'; -import { navPaths } from '../../constants'; -import { helmPage, helmDetailsPage } from '../../pages'; - -const deleteChartRepositoryFromDetailsPage = (name: string, type: string) => { - cy.log(`Deleting ${name}`); - cy.byLegacyTestID('kebab-button').click(); - cy.byTestActionID(`Delete ${type}`).click(); - createForm.clickConfirm(); - cy.get('[class~="loading-box"] h4').contains('No repositories found'); // should('have.value', 'No repositories found'); -}; - -Given('user is at developer perspective', () => { - checkDeveloperPerspective(); -}); - -When('user clicks on the Helm tab in dev perspective', () => { - cy.get('[data-quickstart-id="qs-admin-nav-helm"]').should('be.visible').click({ force: true }); - cy.clickNavLink(navPaths.helm); -}); - -Then('user will be redirected to Helm releases page', () => { - detailsPage.titleShouldContain('Helm'); -}); - -Then('user will be redirected to Helm releases page under Helm tab', () => { - detailsPage.titleShouldContain(pageTitle.HelmReleases); -}); - -Then('user is able to see the message {string}', (noHelmReleasesFound: string) => { - helmPage.verifyMessage(noHelmReleasesFound); -}); - -Then('user will get the link to install helm charts from software catalog', () => { - helmPage.verifyInstallHelmLink(); -}); - -Then('user is able to see the link {string}', (installLink: string) => { - helmPage.verifyInstallHelmChartLink(installLink); -}); - -When('user searches and selects {string} card from catalog page', (cardName: string) => { - catalogPage.search(cardName); - catalogPage.selectHelmChartCard(cardName); -}); - -Then('Create Helm Release page is displayed', () => { - cy.get('[data-test="form-title"]').should('have.text', pageTitle.CreateHelmRelease); -}); - -Then('release name displays as {string}', (name: string) => { - cy.get(catalogPO.installHelmChart.releaseName).should('have.value', name); -}); - -Given('user is at Create Helm Release page', () => { - navigateTo(devNavigationMenu.Add); - addPage.selectCardFromOptions(addOptions.HelmChart); - catalogPage.search('Nodejs'); - catalogPage.selectHelmChartCard('Nodejs'); - catalogPage.clickButtonOnCatalogPageSidePane(); -}); - -Then('user is able to see YAML editor', () => { - cy.get('div.view-lines').should('be.visible'); - cy.get(catalogPO.installHelmChart.cancel).click(); -}); - -Then('Topology page have the helm chart workload {string}', (nodeName: string) => { - topologyPage.verifyWorkloadInTopologyPage(nodeName); -}); - -Given('user has installed helm chart', () => { - cy.clickNavLink(navPaths.topology); - topologyPage.verifyTopologyPage(); - topologyPage.verifyWorkloadInTopologyPage('nodejs-release'); -}); - -Given('user is at the Helm page', () => { - cy.clickNavLink(navPaths.helm); -}); - -Given('user is at the Helm Release tab in admin perspective', () => { - cy.clickNavLink(navPaths.helm); - cy.byLegacyTestID('horizontal-link-Helm Releases').should('exist').click({ force: true }); -}); - -When('user selects checkbox for the Deployed Helm charts', (workloadName: string) => { - topologyPage.verifyWorkloadInTopologyPage(workloadName); -}); - -When('user searches for a helm chart {string}', (helmChartName: string) => { - helmPage.search(helmChartName); -}); - -Then('the helm chart {string} will be shown', (helmChartName: string) => { - cy.log(helmChartName); -}); - -When('user clicks on the helm release name {string}', (helmChartName: string) => { - helmPage.search(helmChartName); - helmPage.clickHelmReleaseName(helmChartName); -}); - -Then('user will see the Details page opened', () => { - helmDetailsPage.verifyTitle(); -}); - -Then('user will see the Resources tab', () => { - helmDetailsPage.verifyResourcesTab(); -}); - -Then('user will see the Revision History tab', () => { - helmDetailsPage.verifyRevisionHistoryTab(); -}); - -Then('user will see the Release Notes tab', () => { - helmDetailsPage.verifyReleaseNotesTab(); -}); - -Then( - 'user will see the Actions drop down menu with options Upgrade, Rollback, and Delete Helm Release', - () => { - helmDetailsPage.verifyActionsDropdown(); - helmDetailsPage.clickActionMenu(); - helmDetailsPage.verifyActionsInActionMenu(); - }, -); - -When('user clicks Actions menu in Helm Details page', () => { - helmDetailsPage.clickActionMenu(); -}); - -When('user clicks on the filter drop down', () => { - helmPage.selectHelmFilterDropDown(); - cy.get(helmPO.filterDropdown).click(); -}); - -When('user selects checkbox for the {string} Helm charts', (status: string) => { - helmPage.selectHelmFilter(status); -}); - -When('the checkbox for the {string} Helm chart is checked', (status: string) => { - helmPage.verifyHelmFilterSelected(status); -}); - -When('helm charts with status {string} are listed', (status: string) => { - helmPage.getItemFromReleaseTable(status); -}); - -When('user clicks on the clear all filters button', () => { - helmPage.clearAllFilter(); -}); - -Then(`{string} filters selected will get removed`, (status: string) => { - helmPage.verifyHelmFilterUnSelected(status); -}); - -Then('user is able to see message on the Helm page as {string}', (message: string) => { - helmPage.verifySearchMessage(message); -}); - -Then('user will see the helm charts listed', () => { - helmPage.verifyHelmChartsListed(); -}); - -When('user selects {string} option from Type section', (catalogType: string) => { - catalogPage.selectCatalogType(catalogType as catalogTypes); -}); - -Then('user can see {string} card on the Add page', (cardName: string) => { - addPage.verifyCard(cardName); -}); - -Then('form view radio button is selected by default', () => { - cy.get('#form-radiobutton-editorType-form-field').should('be.checked'); -}); - -Then('yaml view radio button is enabled', () => { - cy.get('#form-radiobutton-editorType-yaml-field').should('not.be.checked'); -}); - -Then('form sections are displayed in form view', () => { - // cy.get('#root_ingress_field-group').should('be.visible'); - // cy.get('#root_service_accordion-toggle').should('be.visible'); - // cy.get('#root_image_field-group').should('be.visible'); - // Only field group IDs are available with new chart. - cy.get('#root_field-group').should('be.visible'); - cy.get(catalogPO.installHelmChart.cancel).click(); -}); - -Then('user is redirected to Repositories tab', () => { - detailsPage.titleShouldContain('Helm'); - helmDetailsPage.selectedHelmTab('Repositories'); -}); - -Then('user is able to see Helm Releases and Repositories Tabs', () => { - helmDetailsPage.checkHelmTab('Helm Releases'); - helmDetailsPage.checkHelmTab('Repositories'); -}); - -When('user clicks on Repositories tab', () => { - helmDetailsPage.selectHelmTab('Repositories'); -}); - -Then( - 'user is able to see the Create drop down menu with Helm Release and Repository options', - () => { - helmDetailsPage.verifyHelmActionsDropdown(); - helmDetailsPage.clickHelmActionButton(); - helmDetailsPage.verifyActionsInCreateMenu(); - }, -); - -Then('user clicks on {string} repository', (repoName: string) => { - helmDetailsPage.clickHelmChartRepository(repoName); -}); - -Then('user clicks on {string} chart repository', (repoName: string) => { - helmDetailsPage.selectHelmChartRepository(repoName); -}); - -Then('Repositories breadcrumbs is visible', () => { - detailsPage.breadcrumb(0).contains('Repositories'); -}); - -Then('user clicks on Repositories link', () => { - detailsPage.breadcrumb(0).click(); - detailsPage.titleShouldContain('Helm'); -}); - -When('user clicks on Repository in create action menu to see the {string} form', (formName) => { - helmDetailsPage.clickCreateRepository(); - cy.byTestID('form-title').contains(formName); -}); - -When('user clicks on Helm release in create action menu', () => { - helmDetailsPage.clickCreateHelmRelease(); -}); - -When('user enters Chart repository name as {string}', (name: string) => { - cy.get(helmChartRepositoriesPO.name).should('be.visible').clear().type(name); -}); - -When('user enters Description as {string}', (description: string) => { - cy.get(helmChartRepositoriesPO.description) - .scrollIntoView() - .should('be.visible') - .clear() - .type(description); -}); - -When('user enters URL as {string}', (url: string) => { - cy.get(helmChartRepositoriesPO.url).scrollIntoView().should('be.visible').clear().type(url); -}); - -When('user clicks on Create button', () => { - createForm.clickCreate(); -}); - -When( - 'user clicks on Save button to see the {string} {string} details page', - (type: string, name: string) => { - createForm.clickSave(); - cy.get(`[title=${type}`).should('be.visible'); - cy.get('[data-test="page-heading"] h1').contains(name); - }, -); - -When('user enters Display name as {string}', (displayName: string) => { - cy.get(helmChartRepositoriesPO.displayName) - .scrollIntoView() - .should('be.visible') - .clear() - .type(displayName); -}); - -Then( - 'user can see {string} {string} updated with {string} in the list page', - (type: string, repoName: string, updatedValue: string) => { - cy.byLegacyTestID('item-filter').should('be.visible').type(repoName); - cy.wait(3000); - cy.get('[data-test-rows="resource-row"]').contains(updatedValue); - deleteChartRepositoryFromDetailsPage(repoName, type); - }, -); - -When('user edits {string} {string}', (name: string, type: string) => { - cy.byLegacyTestID('item-filter').should('be.visible').clear().type(name); - cy.wait(3000); - cy.byLegacyTestID('kebab-button').click(); - cy.byTestActionID(`Edit ${type}`).click(); - cy.byTestID('form-title').contains(`Edit ${type}`); -}); - -When('user selects cluster-scoped scope type', () => { - cy.get(`[data-test="HelmChartRepository-view-input"]`).should('be.visible').click(); -}); - -When('user navigates to Helm page', () => { - cy.clickNavLink(navPaths.helm); -}); - -When('user can see {string} {string} details page', (type: string, name: string) => { - cy.get(`[title=${type}`).should('be.visible'); - cy.get('[data-test="page-heading"] h1').contains(name); -}); - -Given( - 'user has installed helm chart {string} with helm release name {string}', - (chartName: string, releaseName: string) => { - catalogPage.createHelmChart(releaseName, chartName); - }, -); - -Given('user is able to see {string} in helm page', (helmRelease: string) => { - cy.clickNavLink(navPaths.helm); - helmPage.search(helmRelease); -}); - -Given('user is able to see the status and status icon of {string} under helm releases tab', () => { - helmPage.verifyHelmChartStatus(); -}); - -Given( - 'user is able to see the {string}, {string} and {string} options under filter bar', - (item1: string, item2: string, item3: string) => { - helmPage.selectHelmFilterDropDown(); - helmPage.verifyDropdownItem(item1, item2, item3); - }, -); - -Then('user is able to see the status and status icon in title after {string}', () => { - cy.get('[data-test="page-heading"] h1').within(() => { - helmPage.verifyHelmChartStatus(); - }); -}); - -Then('user is able to see the status and status icon under helm release details', () => { - cy.byTestID('helm-release-status-details').within(() => { - helmPage.verifyHelmChartStatus(); - }); -}); - -Then('user is able to see the status and status icon of Revision history page', () => { - helmPage.verifyHelmChartStatus(); -}); - -Then('user switch to Revision history tab', () => { - helmDetailsPage.clickRevisionHistoryTab(); -}); diff --git a/frontend/packages/helm-plugin/integration-tests/support/step-definitions/helm/helm-release.ts b/frontend/packages/helm-plugin/integration-tests/support/step-definitions/helm/helm-release.ts deleted file mode 100644 index b191e750f06..00000000000 --- a/frontend/packages/helm-plugin/integration-tests/support/step-definitions/helm/helm-release.ts +++ /dev/null @@ -1,159 +0,0 @@ -import { Given, When, Then } from 'cypress-cucumber-preprocessor/steps'; -import { helmActions } from '@console/dev-console/integration-tests/support/constants'; -import { helmPO } from '@console/dev-console/integration-tests/support/pageObjects'; -import { - topologyPage, - topologySidePane, - createHelmChartFromAddPage, -} from '@console/dev-console/integration-tests/support/pages'; -import { navPaths } from '../../constants'; -import { upgradeHelmRelease, helmDetailsPage, rollBackHelmRelease, helmPage } from '../../pages'; - -Given('helm release {string} is present in topology page', (workloadName: string) => { - createHelmChartFromAddPage(workloadName); -}); - -Given('user has installed helm release {string}', (helmReleaseName: string) => { - createHelmChartFromAddPage(helmReleaseName); -}); - -When( - 'user right clicks on the helm release {string} to open the context menu', - (helmReleaseName: string) => { - topologyPage.verifyWorkloadInTopologyPage(helmReleaseName); - topologyPage.rightClickOnHelmWorkload(helmReleaseName); - }, -); - -Then( - 'user is able to see the context menu with actions Upgrade, Rollback and Uninstall Helm Release', - () => { - cy.get('ul[role="menu"]').should('be.visible'); - cy.get(helmPO.helmActions.upgrade).should('be.visible'); - cy.get(helmPO.helmActions.rollBack).should('be.visible'); - cy.get(helmPO.helmActions.deleteHelmRelease).should('be.visible'); - }, -); - -Then('user is able to see the context menu with actions Upgrade and Delete Helm Release', () => { - cy.get('div.odc-topology-context-menu').should('be.visible'); - cy.byTestActionID('Upgrade').should('be.visible'); - cy.byTestActionID('Delete Helm Release').should('be.visible'); -}); - -Given('user is on the topology sidebar of the helm release {string}', (helmReleaseName: string) => { - topologyPage.clickOnHelmGroup(helmReleaseName); - topologySidePane.verify(); -}); - -When('user clicks on the Actions drop down menu', () => { - topologySidePane.clickActionsDropDown(); -}); - -Then( - 'user is able to see the actions dropdown menu with actions Upgrade, Rollback and Uninstall Helm Release', - () => { - topologySidePane.verifyActions( - helmActions.upgrade, - helmActions.rollback, - helmActions.deleteHelmRelease, - ); - }, -); - -Then( - 'user is able to see the actions dropdown menu with actions Upgrade and Uninstall Helm Release', - () => { - const actions = ['Upgrade', 'Uninstall Helm Release']; - cy.byLegacyTestID('action-items') - .children() - .each(($ele) => { - expect(actions).toContain($ele.text()); - }); - }, -); - -Given('user is on the Helm page with helm release {string}', (helmRelease: string) => { - cy.clickNavLink(navPaths.helm); - helmPage.search(helmRelease); -}); - -Given('user is able to see {string} in helm page in admin view', (helmRelease: string) => { - helmPage.search(helmRelease); -}); - -When('user clicks on the Helm Release tab in admin perspective', () => { - cy.clickNavLink(navPaths.helm); - cy.byLegacyTestID('horizontal-link-Helm Releases').should('exist').click({ force: true }); -}); - -Then('user will be redirected to Helm Releases page under Helm tab', () => { - cy.get('[data-test-id="helm-nav"]').should('be.visible'); -}); - -When('user clicks on the Kebab menu', () => { - helmPage.selectKebabMenu(); -}); - -Then( - 'user is able to see kebab menu with actions Upgrade, Rollback and Delete Helm Release', - () => { - topologySidePane.verifyActions( - helmActions.upgrade, - helmActions.rollback, - helmActions.deleteHelmRelease, - ); - }, -); - -When('user clicks on the {string} action', (actionName: string) => { - helmPage.selectHelmActionFromMenu(actionName); -}); - -When('user upgrades the chart Version', () => { - upgradeHelmRelease.upgradeChartVersion(); -}); - -When('user clicks on the upgrade button', () => { - upgradeHelmRelease.clickOnUpgrade(); -}); - -When('user selects the version to Rollback', () => { - rollBackHelmRelease.selectRevision(); -}); - -When('user clicks on the rollback button', () => { - rollBackHelmRelease.clickOnRollBack(); - cy.get('.co-m-loader', { timeout: 40000 }).should('not.exist'); -}); - -When('user enters the release name {string}', (releaseName: string) => { - helmDetailsPage.enterReleaseNameInUninstallPopup(releaseName); -}); - -When('user clicks on the Delete button', () => { - helmDetailsPage.uninstallHelmRelease(); -}); - -When('user clicks on the helm release {string}', (helmReleaseName: string) => { - topologyPage.clickOnGroup(helmReleaseName); -}); - -Then('user will see the sidebar for the helm release', () => { - topologySidePane.verify(); -}); - -Then('user will see the Details, Resources, Release notes tabs', () => { - topologyPage.verifyHelmReleaseSidePaneTabs(); -}); - -Then('user will see the {string} action item', (actionItem: string) => { - cy.byTestActionID(actionItem).should('be.visible'); -}); - -Then('user is redirected to the {string} Details page for the helm release', (resource: string) => { - cy.get(`[data-test-section-heading="${resource} details"] span`).should( - 'contain.text', - `${resource} details`, - ); -}); diff --git a/frontend/packages/helm-plugin/integration-tests/support/step-definitions/helm/helm.ts b/frontend/packages/helm-plugin/integration-tests/support/step-definitions/helm/helm.ts deleted file mode 100644 index 095ae827385..00000000000 --- a/frontend/packages/helm-plugin/integration-tests/support/step-definitions/helm/helm.ts +++ /dev/null @@ -1,124 +0,0 @@ -import { When, Then, Given } from 'cypress-cucumber-preprocessor/steps'; -import { detailsPage } from '@console/cypress-integration-tests/views/details-page'; -import { - pageTitle, - devNavigationMenu, - addOptions, -} from '@console/dev-console/integration-tests/support/constants'; -import { - catalogPO, - quickStartSidebarPO, -} from '@console/dev-console/integration-tests/support/pageObjects'; -import { - catalogPage, - catalogInstallPageObj, - topologyHelper, - createHelmReleaseWithName, - navigateTo, - addPage, - projectNameSpace, - app, -} from '@console/dev-console/integration-tests/support/pages'; -import { checkDeveloperPerspective } from '@console/dev-console/integration-tests/support/pages/functions/checkDeveloperPerspective'; - -When('user selects YAML view', () => { - cy.document().its('readyState').should('eq', 'complete'); - cy.get(catalogPO.installHelmChart.yamlView).click(); - cy.testA11y('Pipeline Builder page - YAML view'); -}); - -When('user selects the Chart Version {string}', (chartVersion: string) => { - catalogInstallPageObj.selectHelmChartVersion(chartVersion); -}); - -When( - 'user selects {string} button from Change Chart version confirmation dialog', - (option: string) => { - catalogInstallPageObj.selectChangeOfChartVersionDialog(option); - }, -); - -When('user clicks on the Create button', () => { - catalogPage.clickOnInstallButton(); -}); - -Then('Topology page have the helm chart workload {string}', (nodeName: string) => { - topologyHelper.verifyWorkloadInTopologyPage(nodeName); -}); - -When('user enters Release Name as {string}', (releaseName: string) => { - catalogPage.enterReleaseName(releaseName); -}); - -Then('user will see the chart version dropdown', () => { - catalogInstallPageObj.verifyChartVersionDropdownAvailable(); -}); - -Then('user has added multiple helm charts repositories', () => { - createHelmReleaseWithName('Nodejs', 'nodejs-release'); - createHelmReleaseWithName('Quarkus', 'quarkus'); - navigateTo(devNavigationMenu.Add); -}); - -Then('user will get redirected to Helm Charts page', () => { - detailsPage.titleShouldContain(pageTitle.HelmCharts); -}); - -Then('user will see the list of Chart Repositories', () => { - catalogPage.verifyChartListAvailable(); -}); - -Then('user will see the cards of Helm Charts', () => { - catalogPage.verifyHelmChartCardsAvailable(); -}); - -Then('user will see Filter by Keyword field', () => { - catalogPage.verifyFilterByKeywordField(); -}); - -Then('user will see A-Z, Z-A sort by dropdown', () => { - catalogPage.verifySortDropdown(); -}); - -Given('user is at Add page', () => { - checkDeveloperPerspective(); - navigateTo(devNavigationMenu.Add); -}); - -Given('user has applied namespaced CRD yaml {string}', (yamlFile: string) => { - cy.exec(`oc apply -f ${yamlFile}`, { failOnNonZeroExit: false }); -}); - -Given( - 'user has created namespaced helm chart repo with yaml {string} in namespace {string}', - (yamlFile: string, namespace: string) => { - cy.exec(`oc apply -f ${yamlFile} -n ${namespace}`, { failOnNonZeroExit: false }); - }, -); - -When('user selects Helm Chart card from Add page', () => { - addPage.selectCardFromOptions(addOptions.HelmChart); -}); - -Then('user will see {string} under Chart repositories filter', (chartRepo: string) => { - catalogPage.verifyChartRepoAvailable(chartRepo); -}); - -Then( - 'user will not see {string} under Chart repositories filter in a new namespace {string}', - (chartRepo: string, namespace: string) => { - projectNameSpace.selectOrCreateProject(namespace); - catalogPage.verifyChartRepoNotAvailable(chartRepo); - }, -); - -When('user clicks on quick start link in helm catalog description', () => { - cy.get('[data-test="help-text"]>a').should('be.visible').click(); -}); - -Then('user will see {string} quick start', (quickStartName: string) => { - app.waitForDocumentLoad(); - cy.get(quickStartSidebarPO.quickStartSidebar) - .should('be.visible') - .should('contain', quickStartName); -}); diff --git a/frontend/packages/helm-plugin/integration-tests/support/step-definitions/helm/install-url-chart.ts b/frontend/packages/helm-plugin/integration-tests/support/step-definitions/helm/install-url-chart.ts deleted file mode 100644 index 7db027e83f7..00000000000 --- a/frontend/packages/helm-plugin/integration-tests/support/step-definitions/helm/install-url-chart.ts +++ /dev/null @@ -1,51 +0,0 @@ -import { Given, When, Then } from 'cypress-cucumber-preprocessor/steps'; -import { navPaths } from '../../constants'; -import { urlChartInstallPage } from '../../pages'; - -Given('user is at the URL chart install page', () => { - cy.clickNavLink(navPaths.helm); - cy.byLegacyTestID('item-create').click(); - cy.get('[data-test-dropdown-menu]').contains('Helm Chart URL').click(); -}); - -When('user clicks on Create menu and selects "Install a Helm Chart from a URL"', () => { - cy.byLegacyTestID('item-create').click(); - cy.get('[data-test-dropdown-menu]').contains('Helm Chart URL').click(); -}); - -Then('user is redirected to the URL chart install page', () => { - cy.url().should('include', '/url-chart'); - cy.get('[data-test="oci-chart-url"]').should('be.visible'); -}); - -When('user clicks on the Next button without filling any fields', () => { - urlChartInstallPage.clickNext(); -}); - -Then('user will see validation errors for Chart URL, Release name, and Chart version', () => { - urlChartInstallPage.verifyValidationErrors(); -}); - -When('user enters {string} as Chart URL', (url: string) => { - urlChartInstallPage.enterChartURL(url); -}); - -When('user enters Release Name as {string}', (name: string) => { - urlChartInstallPage.enterReleaseName(name); -}); - -When('user enters Chart Version as {string}', (version: string) => { - urlChartInstallPage.enterChartVersion(version); -}); - -When('user clicks on the Next button', () => { - urlChartInstallPage.clickNext(); -}); - -When('user clicks on the Install button', () => { - urlChartInstallPage.clickInstall(); -}); - -Then('user will see a validation error for invalid Chart URL format', () => { - cy.get('.pf-m-error').should('exist'); -}); diff --git a/frontend/packages/helm-plugin/integration-tests/test-data/namespaced-helm-chart-repository.yaml b/frontend/packages/helm-plugin/integration-tests/test-data/namespaced-helm-chart-repository.yaml deleted file mode 100644 index 3ff49f83b7a..00000000000 --- a/frontend/packages/helm-plugin/integration-tests/test-data/namespaced-helm-chart-repository.yaml +++ /dev/null @@ -1,8 +0,0 @@ -apiVersion: helm.openshift.io/v1beta1 -kind: ProjectHelmChartRepository -metadata: - name: ibm-repo - namespace: aut-helm -spec: - connectionConfig: - url: https://raw.githubusercontent.com/IBM/charts/master/repo/community/index.yaml diff --git a/frontend/packages/helm-plugin/integration-tests/test-data/namespaced-helm-crd.yaml b/frontend/packages/helm-plugin/integration-tests/test-data/namespaced-helm-crd.yaml deleted file mode 100644 index d039edaa651..00000000000 --- a/frontend/packages/helm-plugin/integration-tests/test-data/namespaced-helm-crd.yaml +++ /dev/null @@ -1,130 +0,0 @@ -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - api-approved.openshift.io: https://github.com/openshift/api/pull/1084 - include.release.openshift.io/ibm-cloud-managed: "true" - include.release.openshift.io/self-managed-high-availability: "true" - include.release.openshift.io/single-node-developer: "true" - name: projecthelmchartrepositories.helm.openshift.io -spec: - group: helm.openshift.io - names: - kind: ProjectHelmChartRepository - listKind: ProjectHelmChartRepositoryList - plural: projecthelmchartrepositories - singular: projecthelmchartrepository - scope: Namespaced - versions: - - name: v1beta1 - served: true - storage: true - subresources: - status: {} - schema: - openAPIV3Schema: - description: "ProjectHelmChartRepository holds namespace-wide configuration for proxied Helm chart repository \n Compatibility level 2: Stable within a major release for a minimum of 9 months or 3 minor releases (whichever is longer)." - type: object - required: - - spec - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - description: spec holds user settable values for configuration - type: object - properties: - connectionConfig: - description: Required configuration for connecting to the chart repo - type: object - properties: - ca: - description: ca is an optional reference to a config map by name containing the PEM-encoded CA bundle. It is used as a trust anchor to validate the TLS certificate presented by the remote server. The key "ca-bundle.crt" is used to locate the data. If empty, the default system roots are used. The namespace for this config map is openshift-config. - type: object - required: - - name - properties: - name: - description: name is the metadata.name of the referenced config map - type: string - tlsClientConfig: - description: tlsClientConfig is an optional reference to a secret by name that contains the PEM-encoded TLS client certificate and private key to present when connecting to the server. The key "tls.crt" is used to locate the client certificate. The key "tls.key" is used to locate the private key. The namespace for this secret is openshift-config. - type: object - required: - - name - properties: - name: - description: name is the metadata.name of the referenced secret - type: string - url: - description: Chart repository URL - type: string - maxLength: 2048 - pattern: ^https?:\/\/ - description: - description: Optional human readable repository description, it can be used by UI for displaying purposes - type: string - maxLength: 2048 - minLength: 1 - disabled: - description: If set to true, disable the repo usage in the cluster/namespace - type: boolean - name: - description: Optional associated human readable repository name, it can be used by UI for displaying purposes - type: string - maxLength: 100 - minLength: 1 - status: - description: Observed status of the repository within the namespace.. - type: object - properties: - conditions: - description: conditions is a list of conditions and their statuses - type: array - items: - description: "Condition contains details for one aspect of the current state of this API Resource. --- This struct is intended for direct use as an array at the field path .status.conditions. For example, type FooStatus struct{ // Represents the observations of a foo's current state. // Known .status.conditions.type are: \"Available\", \"Progressing\", and \"Degraded\" // +patchMergeKey=type // +patchStrategy=merge // +listType=map // +listMapKey=type Conditions []metav1.Condition `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"` \n // other fields }" - type: object - required: - - lastTransitionTime - - message - - reason - - status - - type - properties: - lastTransitionTime: - description: lastTransitionTime is the last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. - type: string - format: date-time - message: - description: message is a human readable message indicating details about the transition. This may be an empty string. - type: string - maxLength: 32768 - observedGeneration: - description: observedGeneration represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date with respect to the current state of the instance. - type: integer - format: int64 - minimum: 0 - reason: - description: reason contains a programmatic identifier indicating the reason for the condition's last transition. Producers of specific condition types may define expected values and meanings for this field, and whether the values are considered a guaranteed API. The value should be a CamelCase string. This field may not be empty. - type: string - maxLength: 1024 - minLength: 1 - pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ - status: - description: status of the condition, one of True, False, Unknown. - type: string - enum: - - "True" - - "False" - - Unknown - type: - description: type of condition in CamelCase or in foo.example.com/CamelCase. --- Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be useful (see .node.status.conditions), the ability to deconflict is important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) - type: string - maxLength: 316 - pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ diff --git a/frontend/packages/helm-plugin/integration-tests/test-data/red-hat-helm-charts.yaml b/frontend/packages/helm-plugin/integration-tests/test-data/red-hat-helm-charts.yaml deleted file mode 100644 index d6aa4fce2b5..00000000000 --- a/frontend/packages/helm-plugin/integration-tests/test-data/red-hat-helm-charts.yaml +++ /dev/null @@ -1,9 +0,0 @@ -apiVersion: helm.openshift.io/v1beta1 -kind: HelmChartRepository -metadata: - name: redhat-helm-charts -spec: - connectionConfig: - url: >- - https://redhat-developer.github.io/redhat-helm-charts - name: Red Hat Helm Charts diff --git a/frontend/packages/helm-plugin/integration-tests/tsconfig.json b/frontend/packages/helm-plugin/integration-tests/tsconfig.json deleted file mode 100644 index 51c7f1c3d4a..00000000000 --- a/frontend/packages/helm-plugin/integration-tests/tsconfig.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "compilerOptions": { - "target": "es5", - "module": "commonjs", - "strict": true, - "esModuleInterop": true, - "types": ["cypress"], - "lib": ["es6", "dom", "es2017"] - }, - "include": ["**/*.ts", "./support/commands/index.ts"] -} diff --git a/frontend/packages/integration-tests/OWNERS b/frontend/packages/integration-tests/OWNERS deleted file mode 100644 index 0246dfc9267..00000000000 --- a/frontend/packages/integration-tests/OWNERS +++ /dev/null @@ -1,2 +0,0 @@ -labels: - - kind/cypress diff --git a/frontend/packages/integration-tests/README.md b/frontend/packages/integration-tests/README.md deleted file mode 100644 index 5c2811e5832..00000000000 --- a/frontend/packages/integration-tests/README.md +++ /dev/null @@ -1,42 +0,0 @@ -#### Getting Started -- [What is Cypress?](https://www.youtube.com/watch?v=dr10Z-HpsCQ) (video) -- [Cypress in a Nutshell](https://www.youtube.com/watch?v=LcGHiFnBh3Y) (video) - -#### Best Practices -- Each it() should be its own atomic test (run independently of other tests). Each it() should likely start with -cy.visit() or nav to page -- We are switching over our test ids from `< ... data-test-id=".."/>` to using the Cypress preferred -`< ... data-test=".."/>`. This allows us to better take advantage of certain Cypress tooling, like the -[Selector Playground](https://docs.cypress.io/guides/core-concepts/test-runner.html#Selector-Playground) -- Use [Cypress's Best Practices for Selecting Elements](https://docs.cypress.io/guides/references/best-practices.html) - -#### Directory Structure -``` -frontend/packages/integration-tests/ -├── support <--- add commands to Cypress 'cy.' global, other support configurations -│   ├── index.ts -│   ├── nav.ts -│   ├── project.ts -│   ├── README.md -│   └── selectors.ts -├── fixtures <--- mock data -│   └── example.json -├── plugins -│   └── index.js <--- webpack-preprocessor, enviornment variables, baseUrl, custom tasks -├── tests <--- test suites -│   ├── crud -│   │   └── namespace-crud.cy.ts -│   └── monitoring -│   └── monitoring.cy.ts -└── views <--- helper objects containing assertions and commands - ├── details-page.ts - ├── list-page.ts - ├── form.ts - └── modal.ts -``` - -#### Additional Resources -- [Assertions](https://docs.cypress.io/guides/references/assertions.html#Chai) -- [Debugging](https://docs.cypress.io/guides/guides/debugging.html#Using-debugger) -- [Cypress.io docs](https://docs.cypress.io/guides/core-concepts/introduction-to-cypress.html#Cypress-Can-Be-Simple-Sometimes) -- [Cypress.io Recipes](https://docs.cypress.io/examples/examples/recipes.html#Fundamentals) diff --git a/frontend/packages/integration-tests/cypress-common-config.js b/frontend/packages/integration-tests/cypress-common-config.js deleted file mode 100644 index 0cd8886fb7d..00000000000 --- a/frontend/packages/integration-tests/cypress-common-config.js +++ /dev/null @@ -1,187 +0,0 @@ -const fs = require('fs'); -const path = require('path'); -const webpack = require('@cypress/webpack-preprocessor'); -const { defineConfig } = require('cypress'); -const merge = require('lodash/merge'); -const NodePolyfillPlugin = require('node-polyfill-webpack-plugin'); - -const webpackPreprocessor = webpack({ - webpackOptions: { - resolve: { - extensions: ['.ts', '.tsx', '.js'], - fallback: { - fs: false, - child_process: false, - readline: false, - }, - }, - plugins: [ - new NodePolyfillPlugin({ - additionalAliases: ['process'], - }), - ], - module: { - rules: [ - { - test: /\.tsx?$/, - loader: 'esbuild-loader', - }, - { - test: /\.feature$/, - use: [ - { - loader: 'cypress-cucumber-preprocessor/loader', - }, - ], - }, - { - test: /\.features$/, - use: [ - { - loader: 'cypress-cucumber-preprocessor/lib/featuresLoader', - }, - ], - }, - ], - }, - }, -}); - -/** @type {Cypress.ResolvedConfigOptions['setupNodeEvents']} */ -function setupNodeEvents(on, config) { - // `on` is used to hook into various events Cypress emits - on('task', { - log(message) { - // eslint-disable-next-line no-console - console.log(message); - return null; - }, - logError(message) { - // eslint-disable-next-line no-console - console.error(message); - return null; - }, - logTable(data) { - // eslint-disable-next-line no-console - console.table(data); - return null; - }, - readFileIfExists(filename) { - if (fs.existsSync(filename)) { - return fs.readFileSync(filename, 'utf8'); - } - return null; - }, - }); - on('after:screenshot', (details) => { - // Prepend "1_", "2_", etc. to screenshot filenames because they are sorted - // alphanumerically in CI's artifacts dir - const pathObj = path.parse(details.path); - fs.readdir(pathObj.dir, (error, files) => { - const newPath = `${pathObj.dir}${path.sep}${files.length}_${pathObj.base}`; - return new Promise((resolve, reject) => { - // eslint-disable-next-line consistent-return - fs.rename(details.path, newPath, (err) => { - if (err) return reject(err); - // because we renamed and moved the image, resolve with the new path - // so it is accurate in the test results - resolve({ path: newPath }); - }); - }); - }); - }); - on('file:preprocessor', webpackPreprocessor); - /* In a Docker container, the default size of the /dev/shm shared memory space is 64MB. - * This is not typically enough to run Chrome and can cause the browser to crash. You can - * fix this by passing the --disable-dev-shm-usage flag to Chrome. */ - on('before:browser:launch', (browser = {}, launchOptions) => { - if (browser.family === 'chromium' && browser.name !== 'electron') { - launchOptions.args.push('--disable-dev-shm-usage'); - } - return launchOptions; - }); - return config; -} - -/** @type {Cypress.ConfigOptions} */ -const commonConfig = { - projectId: 'yfeyv6', - viewportWidth: 1920, - viewportHeight: 1080, - defaultCommandTimeout: 40000, - animationDistanceThreshold: 40, - execTimeout: 270000, - pageLoadTimeout: 100000, - requestTimeout: 15000, - responseTimeout: 15000, - // blocked on https://github.com/badeball/cypress-cucumber-preprocessor/issues/1340 - allowCypressEnv: true, - chromeWebSecurity: true, - watchForFileChanges: true, - waitForAnimations: true, - video: true, - reporter: path.resolve(__dirname, '../../node_modules/cypress-multi-reporters'), - reporterOptions: { - configFile: 'reporter-config.json', - }, - screenshotsFolder: path.resolve(__dirname, '../../gui_test_screenshots/cypress/screenshots'), - videosFolder: path.resolve(__dirname, '../../gui_test_screenshots/cypress/videos'), - retries: { - runMode: 1, - openMode: 0, - }, - - env: { - BRIDGE_HTPASSWD_PASSWORD: process.env.BRIDGE_HTPASSWD_PASSWORD, - BRIDGE_KUBEADMIN_PASSWORD: process.env.BRIDGE_KUBEADMIN_PASSWORD, - }, - - expose: { - BRIDGE_HTPASSWD_IDP: process.env.BRIDGE_HTPASSWD_IDP, - BRIDGE_HTPASSWD_USERNAME: process.env.BRIDGE_HTPASSWD_USERNAME, - OAUTH_BASE_ADDRESS: process.env.OAUTH_BASE_ADDRESS, - OPENSHIFT_CI: process.env.OPENSHIFT_CI, - BRIDGE_AWS: process.env.BRIDGE_AWS, - }, - - /** - * CSP directives to be preserved during Cypress test runs. - * - * Note that Cypress only supports a small subset of all standard CSP directives. - * Therefore, CSP violation testing via Cypress is limited but still useful to have. - * - * @see {@link Cypress.ConfigOptions.experimentalCspAllowList} - * @see https://docs.cypress.io/app/references/experiments#Experimental-CSP-Allow-List - */ - experimentalCspAllowList: [ - 'child-src', - 'default-src', - 'form-action', - 'frame-src', - 'script-src-elem', - 'script-src', - ], - - e2e: { - setupNodeEvents, - baseUrl: `${process.env.BRIDGE_BASE_ADDRESS || 'http://localhost:9000'}${( - process.env.BRIDGE_BASE_PATH || '/' - ).replace(/\/$/, '')}`, - testIsolation: false, - experimentalMemoryManagement: true, - numTestsKeptInMemory: 50, - injectDocumentDomain: true, - // Keep in sync with INTEGRATION_TEST_USER_AGENT in packages/console-shared/src/constants/common.ts - userAgent: 'ConsoleIntegrationTestEnvironment', - }, -}; - -/** - * Configures Cypress with the common configuration and any overrides - * provided by the caller. - * - * @param {Cypress.ConfigOptions} overrides - the config that will be deep-merged with Console-wide defaults - * - * @returns {Cypress.ConfigOptions} the merged Cypress configuration - */ -module.exports.defineConfig = (overrides) => defineConfig(merge({}, commonConfig, overrides)); diff --git a/frontend/packages/integration-tests/cypress.config.js b/frontend/packages/integration-tests/cypress.config.js deleted file mode 100644 index 4391c3fd241..00000000000 --- a/frontend/packages/integration-tests/cypress.config.js +++ /dev/null @@ -1,9 +0,0 @@ -const { defineConfig } = require('./cypress-common-config'); - -module.exports = defineConfig({ - fixturesFolder: 'fixtures', - e2e: { - specPattern: 'tests/**/*.cy.{js,jsx,ts,tsx}', - supportFile: 'support/index.ts', - }, -}); diff --git a/frontend/packages/integration-tests/fixtures/asciisecret.txt b/frontend/packages/integration-tests/fixtures/asciisecret.txt deleted file mode 100644 index 7c3fb9387ab..00000000000 --- a/frontend/packages/integration-tests/fixtures/asciisecret.txt +++ /dev/null @@ -1 +0,0 @@ -This is ascii \ No newline at end of file diff --git a/frontend/packages/integration-tests/fixtures/binarysecret.bin b/frontend/packages/integration-tests/fixtures/binarysecret.bin deleted file mode 100644 index 994e78bd5b2d8ccbe25d8bd248e2e4675b4f7c38..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 497 zcmZQ&VqjnhXJBFwa&q_f~2f&5UAnJT+Y{&L9vX`R2NC z%pnuoTHmib%BrP+uFt2Y6+#ROY5IIOEY_I2J($J%fxSXlL4YYms{T5M>9LhBSfxaR evVm4o)mMTH0v5|uGB>g~Wco?G`)GV9R}}z>0gEO8 diff --git a/frontend/packages/integration-tests/fixtures/example.json b/frontend/packages/integration-tests/fixtures/example.json deleted file mode 100644 index da18d9352a1..00000000000 --- a/frontend/packages/integration-tests/fixtures/example.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "name": "Using fixtures to represent data", - "email": "hello@cypress.io", - "body": "Fixtures are a great way to mock data for responses to routes" -} \ No newline at end of file diff --git a/frontend/packages/integration-tests/fixtures/unicodesecret.utf8 b/frontend/packages/integration-tests/fixtures/unicodesecret.utf8 deleted file mode 100644 index aaaf48d6610..00000000000 --- a/frontend/packages/integration-tests/fixtures/unicodesecret.utf8 +++ /dev/null @@ -1 +0,0 @@ -ȹȻɣʄɣɱɰ \ No newline at end of file diff --git a/frontend/packages/integration-tests/mocks/snapshot.ts b/frontend/packages/integration-tests/mocks/snapshot.ts deleted file mode 100644 index 397368d2fa1..00000000000 --- a/frontend/packages/integration-tests/mocks/snapshot.ts +++ /dev/null @@ -1,112 +0,0 @@ -import type { Patch } from '@console/internal/module/k8s'; - -export const testerDeployment = { - apiVersion: 'apps/v1', - kind: 'Deployment', - metadata: { - name: 'busybox-deployment', - labels: { - app: 'busybox', - }, - }, - spec: { - replicas: 1, - strategy: { - type: 'RollingUpdate', - }, - selector: { - matchLabels: { - app: 'busybox', - }, - }, - template: { - metadata: { - labels: { - app: 'busybox', - }, - }, - spec: { - volumes: [ - { - name: 'testpvc', - persistentVolumeClaim: { - claimName: 'testpvc', - }, - }, - ], - containers: [ - { - name: 'busybox', - image: 'busybox', - imagePullPolicy: 'IfNotPresent', - volumeDevices: [ - { - name: 'testpvc', - devicePath: '/data', - }, - ], - command: ['sh', '-c', 'echo Container 1 is Running ; sleep 3600'], - }, - ], - }, - nodeSelector: { - overload: 'true', - }, - }, - }, -}; - -export const PVC = { - apiVersion: 'v1', - kind: 'PersistentVolumeClaim', - metadata: { - name: 'testpvc', - }, - spec: { - storageClassName: 'gp2-csi', - accessModes: ['ReadWriteOnce'], - resources: { - requests: { - storage: '1Gi', - }, - }, - }, -}; - -export const PVCGP3 = { - apiVersion: PVC.apiVersion, - kind: PVC.kind, - metadata: { - name: 'testpvcgp3', - }, - spec: { - storageClassName: 'gp3-csi', - accessModes: PVC.spec.accessModes, - resources: { - requests: { - storage: PVC.spec.resources.requests.storage, - }, - }, - }, -}; - -export const SnapshotClass = { - apiVersion: 'snapshot.storage.k8s.io/v1', - kind: 'VolumeSnapshotClass', - metadata: { - name: 'csi-hostpath-snapclass', - }, - driver: 'ebs.csi.aws.com', - deletionPolicy: 'Delete', -}; - -export const patchForVolume: Patch = { - op: 'add', - path: '/spec/template/spec/volumes/-', - value: { - name: 'testpvc-snapshot-restore', - persistentVolumeClaim: { - claimName: 'testpvc-snapshot-restore', - }, - }, -}; diff --git a/frontend/packages/integration-tests/mocks/storage-class.ts b/frontend/packages/integration-tests/mocks/storage-class.ts deleted file mode 100644 index 4fb07fcfe58..00000000000 --- a/frontend/packages/integration-tests/mocks/storage-class.ts +++ /dev/null @@ -1,316 +0,0 @@ -import type { Parameter } from '../views/storage/create-storage-class'; - -type ProvisionerAndParameters = { - [provisionerName: string]: Parameter[]; -}; - -export const provisionersMap: ProvisionerAndParameters = { - 'kubernetes.io/aws-ebs': [ - { - name: 'Type', - id: 'type', - values: ['io1', 'gp2', 'sc1', 'st1'], - }, - { - name: 'IOPS per GiB', - id: 'iopsPerGB', - values: '10', - }, - { - name: 'Filesystem type', - id: 'fsType', - values: 'ext4', - }, - { - name: 'Encrypted', - id: 'encrypted', - nestedParameter: { - name: 'KMS key ID', - values: 'sample-kms-id', - }, - }, - ], - // not showing up on GCP cluster - /* 'ebs.csi.aws.com': [ - { - name: 'Type', - id: 'type', - values: ['gp3', 'gp2', 'io1', 'sc1', 'st1', 'standard'], - }, - { - name: 'IOPS per GiB', - id: 'iopsPerGB', - values: '10', - }, - { - name: 'Filesystem Type', - id: 'fsType', - values: ['ext4', 'xfs', 'ext2', 'ext3'], - }, - { - name: 'Encrypted', - id: 'encrypted', - nestedParameter: { - name: 'KMS key ID', - values: 'sample-kms-id', - }, - }, - ], - 'kubernetes.io/gce-pd': [ - { - name: 'Type', - id: 'type', - values: ['pd-standard', 'pd-ssd'], - }, - { - name: 'Zone', - id: 'zone', - values: 'kathmandu', - }, - { - name: 'Replication type', - id: 'replication-type', - values: ['none', 'regional-pd'], - }, - ], - 'kubernetes.io/glusterfs': [ - { - name: 'Gluster REST/Heketi URL', - id: 'resturl', - values: 'abcd.xyz', - }, - { - name: 'Gluster REST/Heketi user', - id: 'restuser', - values: 'user', - }, - { - name: 'Secret Namespace', - id: 'secretNamespace', - values: 'secret-ns', - }, - { - name: 'Secret Name', - id: 'secretName', - values: 'secret-name', - }, - { - name: 'Cluster ID', - id: 'clusterid', - values: 'drogo', - }, - { - name: 'GID min', - id: 'gidMin', - values: '50', - }, - { - name: 'GID max', - id: 'gidMax', - values: '100', - }, - { - name: 'Volume type', - id: 'volumetype', - values: 'ext4', - }, - ], */ - 'kubernetes.io/cinder': [ - { - name: 'Volume type', - id: 'type', - values: 'ext4', - }, - { - name: 'Availability zone', - id: 'availability', - values: 'lalitpur', - }, - ], - 'kubernetes.io/azure-file': [ - { - name: 'SKU name', - id: 'skuName', - hintText: 'Azure storage account SKU tier', - values: 'sample-name', - }, - { - name: 'Location', - id: 'location', - hintText: 'Azure storage account name', - values: 'bhaktapur', - }, - { - name: 'Azure storage account name', - id: 'storageAccount', - hintText: 'Azure storage account name', - values: 'test-account', - }, - ], - 'kubernetes.io/azure-disk': [ - { - name: 'Storage account type', - id: 'storageaccounttype', - hintText: 'Storage account type', - values: 'tester', - }, - { - name: 'Account kind', - id: 'kind', - values: ['shared', 'dedicated', 'managed'], - }, - ], - 'kubernetes.io/quobyte': [ - { - name: 'Quobyte API server', - id: 'quobyteAPIServer', - values: 'test.xyzab', - }, - { - name: 'Registry address(es)', - id: 'registry', - values: 'xyz.abc', - }, - { - name: 'Admin secret name', - id: 'adminSecretName', - values: 'secret-admin', - }, - { - name: 'Admin secret namespace', - id: 'adminSecretNamespace', - values: 'secret-ns', - }, - { - name: 'User', - id: 'user', - values: 'admin', - }, - { - name: 'Quobyte configuration', - id: 'quobyteConfig', - values: 'config', - }, - { - name: 'Quobyte tenant', - id: 'quobyteTenant', - values: 'tester', - }, - ], - 'kubernetes.io/vsphere-volume': [ - { - name: 'Disk format', - id: 'diskformat', - values: ['thin', 'zeroedthick', 'eagerzeroedthick'], - }, - { - name: 'Datastore', - id: 'datastore', - values: 'store-thin', - }, - ], - 'kubernetes.io/portworx-volume': [ - { - name: 'Filesystem', - id: 'fs', - values: ['none', 'xfs', 'ext4'], - }, - { - name: 'Block size', - id: 'block_size', - values: '1024', - }, - { - name: 'Number of synchronous replicas to be provided in the form of replication factor', - id: 'repl', - values: '2', - }, - { - name: 'I/O priority', - id: 'io_priority', - values: ['high', 'medium', 'low'], - }, - { - name: 'Snapshot interval', - id: 'snap_interval', - values: '5', - }, - { - name: 'Aggregation level', - id: 'aggregation_level', - values: '2024', - }, - { - name: 'Ephemeral', - id: 'ephemeral', - }, - ], - 'kubernetes.io/scaleio': [ - { - name: 'API gateway', - id: 'gateway', - values: 'abc.xyz', - }, - { - name: 'System name', - id: 'system', - values: 'test-sys', - }, - { - name: 'Protection domain', - id: 'protectionDomain', - values: 'local', - }, - { - name: 'Storage pool', - id: 'storagePool', - values: 'simple-pool', - }, - { - name: 'Storage mode', - id: 'storageMode', - values: ['thinProvisioned', 'thickProvisioned'], - }, - { - name: 'Secret reference', - id: 'secretRef', - values: 'simpleSecret', - }, - { - name: 'Read Only', - id: 'readOnly', - }, - { - name: 'Filesystem Type', - id: 'fsType', - values: 'ext2', - }, - ], - 'kubernetes.io/storageos': [ - { - name: 'Pool', - id: 'pool', - values: 'test-pool', - }, - { - name: 'Description', - id: 'description', - values: 'storage drive', - }, - { - name: 'Filesystem type', - id: 'fsType', - values: 'ext3', - }, - { - name: 'Admin secret name', - id: 'adminSecretName', - values: 'admin-secret-name', - }, - { - name: 'Admin secret namespace', - id: 'adminSecretNamespace', - values: 'secret-ns', - }, - ], -}; diff --git a/frontend/packages/integration-tests/mocks/volume-attributes-class.ts b/frontend/packages/integration-tests/mocks/volume-attributes-class.ts deleted file mode 100644 index 6fcd77af8e7..00000000000 --- a/frontend/packages/integration-tests/mocks/volume-attributes-class.ts +++ /dev/null @@ -1,71 +0,0 @@ -import type { DeploymentKind } from '@console/internal/module/k8s'; - -// Factory function to generate unique fixture names and objects per test run -// This prevents collisions when tests run concurrently on shared clusters -export const getVACFixtures = (suffix: string) => { - const names = { - TEST_VAC_LOW_IOPS: `test-vac-low-iops-${suffix}`, - TEST_VAC_HIGH_IOPS: `test-vac-high-iops-${suffix}`, - TEST_VAC_INVALID: `test-vac-invalid-${suffix}`, - TEST_STORAGECLASS: `test-storageclass-${suffix}`, - // Namespace-scoped, no suffix needed - TEST_PVC: 'test-pvc', - TEST_DEPLOYMENT: 'test-deployment', - }; - - return { - ...names, - VAC_LOW_IOPS: { - apiVersion: 'storage.k8s.io/v1', - kind: 'VolumeAttributesClass', - metadata: { name: names.TEST_VAC_LOW_IOPS }, - driverName: 'ebs.csi.aws.com', - parameters: { iops: '3000', throughput: '125', type: 'gp3' }, - }, - VAC_HIGH_IOPS: { - apiVersion: 'storage.k8s.io/v1', - kind: 'VolumeAttributesClass', - metadata: { name: names.TEST_VAC_HIGH_IOPS }, - driverName: 'ebs.csi.aws.com', - // Uses identical parameters to VAC_LOW_IOPS to minimize CSI driver modification time and reduce test flakiness. - // This allows verification of VAC name fields on the PVC details page without long waits for actual volume operations. - parameters: { iops: '3000', throughput: '125', type: 'gp3' }, - }, - VAC_INVALID: { - apiVersion: 'storage.k8s.io/v1', - kind: 'VolumeAttributesClass', - metadata: { name: names.TEST_VAC_INVALID }, - driverName: 'ebs.csi.aws.com', - parameters: { iops: '999999', throughput: '999999', type: 'gp3' }, - }, - STORAGE_CLASS: { - apiVersion: 'storage.k8s.io/v1', - kind: 'StorageClass', - metadata: { name: names.TEST_STORAGECLASS }, - provisioner: 'ebs.csi.aws.com', - allowVolumeExpansion: true, - }, - getDeployment: (namespace: string, pvcName: string): DeploymentKind => ({ - apiVersion: 'apps/v1', - kind: 'Deployment', - metadata: { name: names.TEST_DEPLOYMENT, namespace }, - spec: { - replicas: 1, - selector: { matchLabels: { app: 'test-app' } }, - template: { - metadata: { labels: { app: 'test-app' } }, - spec: { - containers: [ - { - name: 'container', - image: 'image-registry.openshift-image-registry.svc:5000/openshift/httpd:latest', - volumeMounts: [{ name: 'storage', mountPath: '/data' }], - }, - ], - volumes: [{ name: 'storage', persistentVolumeClaim: { claimName: pvcName } }], - }, - }, - }, - }), - }; -}; diff --git a/frontend/packages/integration-tests/package.json b/frontend/packages/integration-tests/package.json deleted file mode 100644 index e817b74fc8a..00000000000 --- a/frontend/packages/integration-tests/package.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "name": "@console/cypress-integration-tests", - "version": "0.0.0-fixed", - "description": "Console integration tests to be moved into appropriate packages", - "private": true, - "scripts": { - "test-cypress": "cypress open --env openshift=true", - "test-cypress-headless": "node --max-old-space-size=4096 ../../node_modules/.bin/cypress run ${CYPRESS_RECORD_KEY:+--record} --env openshift=true --browser ${BRIDGE_E2E_BROWSER_NAME:-electron}" - } -} diff --git a/frontend/packages/integration-tests/reporter-config.json b/frontend/packages/integration-tests/reporter-config.json deleted file mode 100644 index de812e0cfb0..00000000000 --- a/frontend/packages/integration-tests/reporter-config.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "reporterEnabled": "mocha-junit-reporter, mochawesome", - "mochaJunitReporterReporterOptions": { - "mochaFile": "../../gui_test_screenshots/junit_cypress-[hash].xml", - "toConsole": false - }, - "mochawesomeReporterOptions": { - "reportDir": "../../gui_test_screenshots/", - "reportFilename": "cypress_report", - "overwrite": false, - "html": false, - "json": true - } -} diff --git a/frontend/packages/integration-tests/support/README.md b/frontend/packages/integration-tests/support/README.md deleted file mode 100644 index 7f34beb38fe..00000000000 --- a/frontend/packages/integration-tests/support/README.md +++ /dev/null @@ -1,15 +0,0 @@ -# Cypress Custom Commands - -Cypress comes with its own API for creating custom commands. This allows adding custom commands to the -Cypress global `cy` variable. - -Ex: `cy.createTestProject('test-qbvzv')` - -Custom commands work well when you’re needing to describe behavior that’s desirable across all of your tests. -Examples would be a cy.setup() or cy.login() or extending your application’s behavior like cy.get('.dropdown').dropdown('Apples'). -These are specific to your application and can be used everywhere. - -However, this pattern can be used and abused. Let’s not forget - writing Cypress tests is JavaScript, and -it’s often more efficient to write a function for repeatable behavior that’s specific to only a single spec file. - -Please follow [Cypress Best Practices for Custom Commands](https://docs.cypress.io/api/cypress-api/custom-commands.html#Best-Practices) diff --git a/frontend/packages/integration-tests/support/a11y.ts b/frontend/packages/integration-tests/support/a11y.ts deleted file mode 100644 index 6ab63bee0bc..00000000000 --- a/frontend/packages/integration-tests/support/a11y.ts +++ /dev/null @@ -1,84 +0,0 @@ -import 'cypress-jest-adapter'; -import 'cypress-axe'; -import type { Result } from 'axe-core'; - -declare global { - namespace Cypress { - interface Chainable { - logA11yViolations(violations: Result[], target: string): Chainable; - testA11y(target: string, selector?: string): Chainable; - } - } -} - -export const a11yTestResults: a11yTestResultsType = { - numberViolations: 0, - numberChecks: 0, -}; - -Cypress.Commands.add('logA11yViolations', (violations: Result[], target: string) => { - a11yTestResults.numberViolations += violations.length; - - cy.task( - 'log', - `${violations.length} accessibility violation${violations.length === 1 ? '' : 's'} ${ - violations.length === 1 ? 'was' : 'were' - } detected ${target ? `for ${target}` : ''}`, - ); - - // include violations in this log message - violations.forEach((violation, index) => { - cy.task( - 'log', - `- ${index + 1}. ${violation.impact} ${violation.id}\n ${violation.description.replace( - '\n', - '\n ', - )}\n ${violation.help.replace(/\n/g, '\n ')}\n ${ - violation.helpUrl - }\n Tags: ${violation.tags.join(', ')}\n ${ - violation.nodes.length === 1 ? 'Node' : 'Nodes:' - }:`, - ); - violation.nodes.forEach((node) => { - cy.task( - 'log', - ` - ${node.failureSummary.replace(/\n/g, '\n ')}\n HTML: ${node.html}${ - node.target ? `\n Target: ${node.target.join(' ')}` : '' - }${node.xpath ? `\n XPath: ${node.xpath.join(' ')}` : ''}`, - ); - }); - }); - - // pluck specific keys to keep the table readable - const violationData = violations.map(({ id, impact, description, nodes }) => ({ - impact, - id, - description, - nodes: nodes.length, - })); - cy.task('logTable', JSON.stringify(violationData)); -}); - -Cypress.Commands.add('testA11y', (target: string, selector?: string) => { - cy.injectAxe(); - cy.configureAxe({ - rules: [ - { id: 'color-contrast', enabled: false }, // seem to be somewhat inaccurate and has difficulty always picking up the correct colors, tons of open issues for it on axe-core - ], - }); - a11yTestResults.numberChecks += 1; - cy.checkA11y( - selector, - { - includedImpacts: ['serious', 'critical'], - }, - (violations) => cy.logA11yViolations(violations, target), - false, - ); -}); - -// eslint-disable-next-line @typescript-eslint/naming-convention -type a11yTestResultsType = { - numberViolations: number; - numberChecks: number; -}; diff --git a/frontend/packages/integration-tests/support/admin.ts b/frontend/packages/integration-tests/support/admin.ts deleted file mode 100644 index 60dba7804f0..00000000000 --- a/frontend/packages/integration-tests/support/admin.ts +++ /dev/null @@ -1,34 +0,0 @@ -import { nav } from '../views/nav'; - -declare global { - namespace Cypress { - interface Chainable { - initAdmin(): Chainable; - initDeveloper(): Chainable; - } - } -} - -// any command added below, must be added to global Cypress interface above - -Cypress.Commands.add('initAdmin', () => { - cy.log('redirect to home'); - cy.visit('/'); - cy.byTestID('loading-indicator').should('not.exist'); - cy.document().its('readyState').should('eq', 'complete'); - cy.log('ensure perspective switcher is set to Core platform'); - nav.sidenav.switcher.changePerspectiveTo('Core platform'); - nav.sidenav.switcher.shouldHaveText('Core platform'); -}); - -Cypress.Commands.add('initDeveloper', () => { - cy.log('redirect to home'); - cy.visit('/add'); - cy.byTestID('loading-indicator').should('not.exist'); - cy.document().its('readyState').should('eq', 'complete'); - cy.log('ensure perspective switcher is set to Developer'); - nav.sidenav.switcher.changePerspectiveTo('Developer'); - cy.log('switched perspective to Developer'); - nav.sidenav.switcher.shouldHaveText('Developer'); - cy.log('Developer perspective confirmed '); -}); diff --git a/frontend/packages/integration-tests/support/i18n.ts b/frontend/packages/integration-tests/support/i18n.ts deleted file mode 100644 index fa8348a0c39..00000000000 --- a/frontend/packages/integration-tests/support/i18n.ts +++ /dev/null @@ -1,72 +0,0 @@ -import { expect } from 'chai'; -import { listPage } from '../views/list-page'; - -declare global { - namespace Cypress { - interface Chainable { - isPseudoLocalized(): Chainable; - testI18n(selectors?: string[], testIDs?: string[]): Chainable; - visitWithDefaultLang(url: string): Chainable; - } - } -} - -Cypress.Commands.add('testI18n', (selectors: string[] = [], testIDs: string[] = []) => { - cy.location().then((loc) => { - const params = new URLSearchParams(loc.search); - params.set('pseudolocalization', 'true'); - params.set('lng', 'en'); - const pseudoLocUrl = `${loc.pathname}?${params.toString()}`; - - cy.visitWithDefaultLang(pseudoLocUrl); - - // eslint-disable-next-line cypress/no-unnecessary-waiting - cy.wait(2000); // don't know what to wait for since could be list or detail page - - // if PF toolbar, click to open 'search by' dropdown - cy.get('#content').then(($body) => { - if ($body.find('#filter-toolbar').length) { - cy.get('#content').within(() => { - listPage.filter.clickSearchByDropdown(); - cy.byTestID('console-select-item').isPseudoLocalized(); // 'search by' menu items - }); - } - - testIDs.forEach((testId) => cy.byTestID(testId).isPseudoLocalized()); - selectors.forEach((selector) => - cy.get(selector).each(($el) => { - const i18nNotTranslatedAttr = $el.attr('i18n-not-translated'); - if (!i18nNotTranslatedAttr) { - cy.wrap($el).isPseudoLocalized(); - } - }), - ); - }); - }); -}); - -Cypress.Commands.add( - 'isPseudoLocalized', - { - prevSubject: true, - }, - (subject) => { - cy.wrap(subject).each(($el) => { - const text = $el.text(); - if (text.length > 0) { - expect(text).to.match(/\[[^a-zA-Z]+\]/); - } - }); - }, -); - -Cypress.Commands.add('visitWithDefaultLang', (url) => { - cy.visit(url, { - onBeforeLoad(win) { - Object.defineProperty(win.navigator, 'language', { - value: 'en', - writable: false, - }); - }, - }); -}); diff --git a/frontend/packages/integration-tests/support/index.ts b/frontend/packages/integration-tests/support/index.ts deleted file mode 100644 index a0fa9eaba2d..00000000000 --- a/frontend/packages/integration-tests/support/index.ts +++ /dev/null @@ -1,121 +0,0 @@ -import './login'; -import './project'; -import './selectors'; -import './nav'; -import './resources'; -import './i18n'; -import { a11yTestResults } from './a11y'; -import './admin'; - -declare global { - namespace Cypress { - interface Chainable { - visitAndWait( - url: string, - options?: Partial, - selector?: string, - ): Chainable; - } - } -} - -Cypress.Cookies.debug(true); - -Cypress.on('uncaught:exception', (err) => { - console.error('Uncaught exception', err); - - // ResizeObserver loop errors are non-actionable and can be ignored - if (typeof err.message === 'string' && err.message.includes('ResizeObserver loop')) { - return false; - } - - return true; // test fails -}); - -Cypress.Commands.overwrite('log', (originalFn, message) => { - cy.task('log', ` ${message}`, { log: false }); // log:false means do not log task in runner GUI - originalFn(message); // calls original cy.log(message) -}); - -const waitForElementToExist = (selector: string) => - cy.get(selector, { timeout: 30000 }).should('exist'); - -Cypress.Commands.add('visitAndWait', (url, options, selector = '#content') => { - if (url !== '/') { - cy.visit('/'); - waitForElementToExist('#content'); - } - - cy.visit(url, options); - waitForElementToExist(selector); -}); - -before(() => { - cy.task('readFileIfExists', 'cypress-a11y-report.json').then((a11yReportOrNull: string) => { - if (a11yReportOrNull !== null) { - try { - const a11yReport = JSON.parse(a11yReportOrNull); - a11yTestResults.numberViolations = Number(a11yReport.numberViolations); - a11yTestResults.numberChecks = Number(a11yReport.numberChecks); - return; - } catch (e) { - cy.task('logError', `couldn't parse cypress-a11y-results.json. ${e}`); - } - } - a11yTestResults.numberViolations = 0; - a11yTestResults.numberChecks = 0; - }); -}); - -after(() => { - cy.writeFile('cypress-a11y-report.json', { - numberChecks: `${a11yTestResults.numberChecks}`, - numberViolations: `${a11yTestResults.numberViolations}`, - }); -}); - -export const checkErrors = () => - cy.window().then((win: any) => { - // Only check windowError if it exists - if (win.windowError !== undefined) { - assert.isTrue(!win.windowError, win.windowError); - } - }); - -export const testName = `test-${Math.random() - .toString(36) - .replace(/[^a-z]+/g, '') - .substr(0, 5)}`; - -export const actions = Object.freeze({ - labels: 'Edit Labels', - annotations: 'Edit Annotations', - edit: 'Edit', - delete: 'Delete', -}); - -const actionOnKind = (action: string, kind: string, humanizeKind: boolean) => { - if (!humanizeKind) { - return `${action} ${kind}`; - } - - const humanizedKind = (kind.includes('~') ? kind.split('~')[2] : kind) - .split(/(?=[A-Z])/) - .join(''); - - return `${action} ${humanizedKind}`; -}; -export const editKind = (kind: string, humanizeKind: boolean) => - actionOnKind(actions.edit, kind, humanizeKind); -export const deleteKind = (kind: string, humanizeKind: boolean) => - actionOnKind(actions.delete, kind, humanizeKind); - -export const create = (obj) => { - const filename = [ - Cypress.config('screenshotsFolder').toString().replace('/cypress/screenshots', ''), - `${obj.metadata.name}.${obj.kind.toLowerCase()}.json`, - ].join('/'); - cy.writeFile(filename, JSON.stringify(obj)); - cy.exec(`oc apply -f ${filename}`); - cy.exec(`rm ${filename}`); -}; diff --git a/frontend/packages/integration-tests/support/login.ts b/frontend/packages/integration-tests/support/login.ts deleted file mode 100644 index 66fb60221ad..00000000000 --- a/frontend/packages/integration-tests/support/login.ts +++ /dev/null @@ -1,87 +0,0 @@ -import { isLocalDevEnvironment } from '../views/common'; - -declare global { - namespace Cypress { - interface Chainable { - login(provider?: string, username?: string, password?: string): Chainable; - } - } -} - -// any command added below, must be added to global Cypress interface above - -// This will add 'cy.login(...)' -// ex: cy.login('my-idp', 'my-user', 'my-password') -Cypress.Commands.add( - 'login', - (provider: string = 'kube:admin', username: string = 'kubeadmin', password?: string) => { - const doLogin = (resolvedPassword: string) => { - cy.session( - [provider, username], - () => { - cy.visit(Cypress.config('baseUrl')); - cy.window().then((win: any) => { - // Check if auth is disabled (for a local development environment) - if (win.SERVER_FLAGS?.authDisabled) { - cy.task('log', ' skipping login, console is running with auth disabled'); - return; - } - - if (isLocalDevEnvironment) { - cy.exec( - 'oc get route oauth-openshift -n openshift-authentication -o json | jq .spec.host', - ).then((result) => { - Cypress.expose('OAUTH_BASE_ADDRESS', result.stdout.replace(/"/g, '')); - cy.origin( - Cypress.expose('OAUTH_BASE_ADDRESS'), - { args: { provider, username, password: resolvedPassword } }, - // eslint-disable-next-line @typescript-eslint/no-shadow - ({ provider, username, password }) => { - // note required duplication in else below due to limitations of cy.origin - cy.task('log', ` Logging in as ${username}`); - cy.get('[data-test-id="login"]').should('be.visible'); - cy.get('body').then(($body) => { - if ($body.text().includes(provider)) { - cy.contains(provider).should('be.visible').click(); - } - }); - cy.get('#inputUsername').type(username); - cy.get('#inputPassword').type(password); - cy.get('button[type=submit]').click(); - }, - ); - }); - } else { - // note required duplication in if above due to limitations of cy.origin - cy.task('log', ` Logging in as ${username}`); - cy.get('[data-test-id="login"]').should('be.visible'); - cy.get('body').then(($body) => { - if ($body.text().includes(provider)) { - cy.contains(provider).should('be.visible').click(); - } - }); - cy.get('#inputUsername').type(username); - cy.get('#inputPassword').type(resolvedPassword); - cy.get('button[type=submit]').click(); - } - }); - }, - { - cacheAcrossSpecs: true, - validate() { - cy.visit(Cypress.config('baseUrl')); - cy.byTestID('user-dropdown-toggle').should('exist'); - }, - }, - ); - }; - - if (password !== undefined) { - doLogin(password); - } else { - cy.env(['BRIDGE_KUBEADMIN_PASSWORD']).then(({ BRIDGE_KUBEADMIN_PASSWORD }) => { - doLogin(BRIDGE_KUBEADMIN_PASSWORD); - }); - } - }, -); diff --git a/frontend/packages/integration-tests/support/nav.ts b/frontend/packages/integration-tests/support/nav.ts deleted file mode 100644 index d60805a4cc0..00000000000 --- a/frontend/packages/integration-tests/support/nav.ts +++ /dev/null @@ -1,23 +0,0 @@ -export {}; // needed in files which don't have an import to trigger ES6 module usage -declare global { - namespace Cypress { - interface Chainable { - clickNavLink(path: string[]): Chainable; - } - } -} - -// any command added below, must be added to global Cypress interface above - -Cypress.Commands.add('clickNavLink', (path: string[]) => { - cy.get('#page-sidebar') - .contains(path[0]) - .then(($navItem) => { - if ($navItem.attr('aria-expanded') !== 'true') { - cy.wrap($navItem).click(); - } - }); - if (path.length === 2) { - cy.get('#page-sidebar').contains(path[1]).click(); - } -}); diff --git a/frontend/packages/integration-tests/support/project.ts b/frontend/packages/integration-tests/support/project.ts deleted file mode 100644 index 189365fe0a4..00000000000 --- a/frontend/packages/integration-tests/support/project.ts +++ /dev/null @@ -1,59 +0,0 @@ -import { detailsPage } from '../views/details-page'; -import { listPage } from '../views/list-page'; -import { modal } from '../views/modal'; - -declare global { - namespace Cypress { - interface Chainable { - createProject(name: string): Chainable; - createProjectWithCLI(name: string): Chainable; - deleteProject(name: string): Chainable; - deleteProjectWithCLI(name: string, timeout?: number): Chainable; - } - } -} - -// any command added below, must be added to global Cypress interface above - -// This will add to 'createProject(...)' to cy -// ex: cy.createProject(name) -Cypress.Commands.add('createProject', (name: string, devConsole: boolean = false) => { - cy.log(`create project`); - cy.visit(`/k8s/cluster/projects`); - listPage.isCreateButtonVisible(); - listPage.clickCreateYAMLbutton(); - modal.shouldBeOpened(); - cy.byTestID('input-name').click().type(name); - cy.testA11y('Create Project modal'); - modal.submit(); - modal.shouldBeClosed(); - if (devConsole === false) { - listPage.titleShouldHaveText(name); - } -}); - -Cypress.Commands.add('createProjectWithCLI', (name: string) => { - cy.exec(`oc new-project ${name}`).its('stdout').should('contain', `Now using project "${name}"`); -}); - -Cypress.Commands.add('deleteProject', (name: string) => { - cy.log(`delete project`); - cy.visit(`/k8s/cluster/projects/${name}`); - detailsPage.isLoaded(); - detailsPage.clickPageActionFromDropdown('Delete Project'); - modal.shouldBeOpened(); - modal.submitShouldBeDisabled(); - cy.byTestID('project-name-input').type(name); - modal.submitShouldBeEnabled(); - cy.testA11y('Delete Project modal'); - modal.submit(); - modal.shouldBeClosed(); - listPage.titleShouldHaveText('Projects'); -}); - -Cypress.Commands.add('deleteProjectWithCLI', (name: string, timeout?: number) => { - cy.exec(`oc delete project ${name} --wait=false`, { - timeout: timeout || 60000, - failOnNonZeroExit: false, - }); -}); diff --git a/frontend/packages/integration-tests/support/resources.ts b/frontend/packages/integration-tests/support/resources.ts deleted file mode 100644 index acf38343df4..00000000000 --- a/frontend/packages/integration-tests/support/resources.ts +++ /dev/null @@ -1,52 +0,0 @@ -import { plural } from 'pluralize'; -import type { K8sResourceKindReference } from '@console/internal/module/k8s'; - -export {}; -declare global { - namespace Cypress { - interface Chainable { - resourceShouldBeDeleted( - namespace: string, - resource: K8sResourceKindReference | string, - name: string, - ): Chainable; - } - } -} - -// Convert types in the `user.openshift.io~v1~Group` format to `groups.v1.useropenshift.io` -// to pass to oc. -const toCLIType = (type: K8sResourceKindReference | string): string => { - if (!type.includes('~')) { - return type; - } - const [group, version, kind] = type.split('~'); - // Resources aren't required to follow this pattern when converting from kind to plural, - // but this should work for most resources and is good enough for our tests. - return `${plural(kind.toLowerCase())}.${version}.${group}`; -}; - -// any command added below, must be added to global Cypress interface above - -Cypress.Commands.add( - 'resourceShouldBeDeleted', - (namespace: string, resource: K8sResourceKindReference | string, name: string): any => - cy - .exec( - `oc get -n ${namespace} ${toCLIType( - resource, - )}/${name} -o template --template '{{.metadata.deletionTimestamp}}'`, - { failOnNonZeroExit: false }, - ) - .then((result) => { - if (result.exitCode !== 0) { - // if stderr === NotFound, means resource was succesfully deleted - if (!result.stderr.includes('NotFound')) { - // error other than 'NotFound', this typically would be a 'You must be logged in to the server (Unauthorized)' - assert.fail('', '', `Error during 'oc get ${resource}/${name}', ${result.stderr} `); - } - } else { - expect(result.stdout).not.toContain(``); - } - }), -); diff --git a/frontend/packages/integration-tests/support/selectors.ts b/frontend/packages/integration-tests/support/selectors.ts deleted file mode 100644 index 0ab51abf02d..00000000000 --- a/frontend/packages/integration-tests/support/selectors.ts +++ /dev/null @@ -1,99 +0,0 @@ -/* eslint-disable @typescript-eslint/no-use-before-define */ -import Loggable = Cypress.Loggable; -import Timeoutable = Cypress.Timeoutable; -import Withinable = Cypress.Withinable; -import Shadow = Cypress.Shadow; - -export {}; -declare global { - namespace Cypress { - interface Chainable { - byTestID( - selector: string, - options?: Partial, - ): Chainable; - byTestActionID(selector: string): Chainable>; - byLegacyTestID( - selector: string, - options?: Partial, - ): Chainable>; - byButtonText(selector: string): Chainable>; - byDataID(selector: string): Chainable>; - byTestSelector( - selector: string, - options?: Partial, - ): Chainable>; - byTestDropDownMenu(selector: string): Chainable>; - byTestOperatorRow( - selector: string, - options?: Partial, - ): Chainable>; - byTestSectionHeading( - selector: string, - options?: Partial, - ): Chainable>; - byTestOperandLink( - selector: string, - options?: Partial, - ): Chainable>; - } - } -} - -// any command added below, must be added to global Cypress interface above - -Cypress.Commands.add( - 'byTestID', - (selector: string, options?: Partial) => { - cy.get(`[data-test="${selector}"]`, options); - }, -); - -Cypress.Commands.add('byTestActionID', (selector: string) => - cy.get(`[data-test-action="${selector}"]:not([disabled])`), -); - -// deprecated! new IDs should use 'data-test', ie. `cy.byTestID(...)` -Cypress.Commands.add( - 'byLegacyTestID', - (selector: string, options?: Partial) => { - cy.get(`[data-test-id="${selector}"]`, options); - }, -); - -Cypress.Commands.add('byButtonText', (selector: string) => { - cy.get('button[type="button"]').contains(`${selector}`); -}); - -Cypress.Commands.add('byDataID', (selector: string) => { - cy.get(`[data-id="${selector}"]`); -}); - -Cypress.Commands.add( - 'byTestSelector', - (selector: string, options?: Partial) => { - cy.get(`[data-test-selector="${selector}"]`, options); - }, -); - -Cypress.Commands.add('byTestDropDownMenu', (selector: string) => { - cy.get(`[data-test-dropdown-menu="${selector}"]`); -}); - -Cypress.Commands.add('byTestOperatorRow', (selector: string, options?: object) => { - cy.get(`[data-test-operator-row="${selector}"]`, options); -}); - -Cypress.Commands.add( - 'byTestSectionHeading', - (selector: string, options?: Partial) => { - cy.get(`[data-test-section-heading="${selector}"]`, options); - }, -); - -Cypress.Commands.add( - 'byTestOperandLink', - (selector: string, options?: Partial) => { - cy.get(`[data-test-operand-link="${selector}"]`, options); - }, -); diff --git a/frontend/packages/integration-tests/support/stub-machine-config-pool-watch-ws.ts b/frontend/packages/integration-tests/support/stub-machine-config-pool-watch-ws.ts deleted file mode 100644 index 01b728d1d2c..00000000000 --- a/frontend/packages/integration-tests/support/stub-machine-config-pool-watch-ws.ts +++ /dev/null @@ -1,42 +0,0 @@ -/** Stub MCP list watch WebSockets only so intercepted GETs are not overwritten in Redux; other watches use the real WebSocket. */ -export const stubMachineConfigPoolWatchWebSocket = (win: Window) => { - const OriginalWebSocket = win.WebSocket; - - class StubWebSocket extends OriginalWebSocket { - constructor(url: string | URL, protocols?: string | string[]) { - const urlString = url.toString(); - - // MCP list watch URL only; all other sockets stay native. - if (urlString.includes('machineconfiguration.openshift.io/v1/machineconfigpools')) { - // eslint-disable-next-line no-constructor-return - return ({ - close: () => {}, - send: () => {}, - addEventListener: () => {}, - removeEventListener: () => {}, - dispatchEvent: () => true, - readyState: 3, // CLOSED - url: urlString, - protocol: '', - extensions: '', - bufferedAmount: 0, - binaryType: 'blob' as BinaryType, - onopen: null, - onerror: null, - onclose: null, - onmessage: null, - CONNECTING: 0, - OPEN: 1, - CLOSING: 2, - CLOSED: 3, - } as unknown) as WebSocket; - } - - return new OriginalWebSocket(url, protocols); - } - } - - // Replace the global WebSocket with our stub - // eslint-disable-next-line no-param-reassign - win.WebSocket = (StubWebSocket as unknown) as typeof WebSocket; -}; diff --git a/frontend/packages/integration-tests/tests/app/admission-webhook-warning-notifications.cy.ts b/frontend/packages/integration-tests/tests/app/admission-webhook-warning-notifications.cy.ts deleted file mode 100644 index a418150e6dd..00000000000 --- a/frontend/packages/integration-tests/tests/app/admission-webhook-warning-notifications.cy.ts +++ /dev/null @@ -1,167 +0,0 @@ -import { checkErrors, testName } from '../../support'; -import { detailsPage } from '../../views/details-page'; -import * as yamlEditor from '../../views/yaml-editor'; - -const POD_NAME = 'pod1'; -const DEPLOY_NAME = 'deploy1'; -const CONTAINER_NAME = 'container1'; -const WARNING_FOO = '299 - "[pod-must-have-label-foo] you must provide labels: {"foo"}"'; -const WARNING_BAR = '299 - "[deployment-must-have-label-bar] you must provide labels: {"bar"}"'; -const WAIT_OPTION = { timeout: 5000 }; -const POD_CREATED_ALIAS = 'podCreated'; -const BULK_RESOURCES_CREATED_ALIAS = 'bulkResourcesCreated'; -const LEARN_MORE_ID = 'admission-webhook-warning-learn-more'; -const WARNING_ID = 'admission-webhook-warning'; -const resources = [ - { kind: 'Pod', name: `${POD_NAME}-b`, warning: WARNING_FOO, resource: 'pods', path: 'api' }, - { - kind: 'Deployment', - name: DEPLOY_NAME, - warning: WARNING_BAR, - resource: 'deployments', - path: 'apis/apps', - }, -]; -const pod1ReqObj = `apiVersion: v1 -kind: Pod -metadata: - name: ${POD_NAME}-a - labels: - app: httpd - namespace: ${testName} -spec: - securityContext: - runAsNonRoot: true - seccompProfile: - type: RuntimeDefault - containers: - - name: ${CONTAINER_NAME} - image: 'image-registry.openshift-image-registry.svc:5000/openshift/httpd:latest' - ports: - - containerPort: 8080 - securityContext: - allowPrivilegeEscalation: false - capabilities: - drop: - - ALL`; - -const bulkResourcesReqObj = `apiVersion: v1 -kind: Pod -metadata: - name: ${POD_NAME}-b - labels: - app: httpd - namespace: ${testName} -spec: - securityContext: - runAsNonRoot: true - seccompProfile: - type: RuntimeDefault - containers: - - name: ${CONTAINER_NAME} - image: 'image-registry.openshift-image-registry.svc:5000/openshift/httpd:latest' - ports: - - containerPort: 8080 - securityContext: - allowPrivilegeEscalation: false - capabilities: - drop: - - ALL ---- -apiVersion: apps/v1 -kind: Deployment -metadata: - name: ${DEPLOY_NAME} - annotations: {} - namespace: ${testName} -spec: - selector: - matchLabels: - app: deploy1 - replicas: 3 - template: - metadata: - labels: - app: deploy1 - spec: - containers: - - name: ${CONTAINER_NAME} - image: >- - image-registry.openshift-image-registry.svc:5000/openshift/httpd:latest - ports: - - containerPort: 8080 - protocol: TCP - env: - - name: app - value: frontennd - imagePullSecrets: [] - strategy: - type: RollingUpdate - rollingUpdate: - maxSurge: 25% - maxUnavailable: 25% - paused: false -`; - -describe('Admission Webhook warning notification', () => { - before(() => { - cy.login(); - cy.createProjectWithCLI(testName); - }); - - afterEach(() => { - checkErrors(); - }); - - after(() => { - cy.visit('/'); - cy.deleteProjectWithCLI(testName); - }); - - it('Create a pod and display Admission Webhook warning notification', () => { - cy.visit(`/k8s/ns/${testName}/import`); - yamlEditor.isImportLoaded(); - yamlEditor.setEditorContent(pod1ReqObj).then(() => { - cy.intercept('POST', `/api/kubernetes/api/v1/namespaces/${testName}/pods`, (req) => { - req.continue((res) => { - res.headers = { - Warning: WARNING_FOO, - }; - }); - }).as(POD_CREATED_ALIAS); - yamlEditor.clickSaveCreateButton(); - cy.wait(`@${POD_CREATED_ALIAS}`, WAIT_OPTION); - detailsPage.sectionHeaderShouldExist('Pod details'); - cy.byTestID(WARNING_ID).contains('Admission Webhook Warning'); - cy.byTestID(WARNING_ID).contains(`Pod ${POD_NAME}-a violates policy ${WARNING_FOO}`); - cy.byTestID(LEARN_MORE_ID).contains('Learn more').click(); - }); - }); - - it('Create bulk resources and display Admission Webhook warning notifications', () => { - cy.visit(`/k8s/ns/${testName}/import`); - yamlEditor.isImportLoaded(); - yamlEditor.setEditorContent(bulkResourcesReqObj).then(() => { - for (const resource of resources) { - cy.intercept( - 'POST', - `/api/kubernetes/${resource.path}/v1/namespaces/${testName}/${resource.resource}`, - (req) => { - req.continue((res) => { - res.headers = { - Warning: resource.warning, - }; - }); - }, - ).as(BULK_RESOURCES_CREATED_ALIAS); - } - yamlEditor.clickSaveCreateButton(); - cy.wait(`@${BULK_RESOURCES_CREATED_ALIAS}`, WAIT_OPTION); - cy.byTestID('resources-successfully-created').contains('Resources successfully created'); - cy.byTestID(WARNING_ID).contains('Admission Webhook Warning'); - cy.byTestID(WARNING_ID).contains(`Pod ${POD_NAME}-b violates policy ${WARNING_FOO}`); - cy.byTestID(WARNING_ID).contains(`Deployment ${DEPLOY_NAME} violates policy ${WARNING_BAR}`); - cy.byTestID(LEARN_MORE_ID).contains('Learn more').click(); - }); - }); -}); diff --git a/frontend/packages/integration-tests/tests/app/auth-multiuser-login.cy.ts b/frontend/packages/integration-tests/tests/app/auth-multiuser-login.cy.ts deleted file mode 100644 index c373f4d85d1..00000000000 --- a/frontend/packages/integration-tests/tests/app/auth-multiuser-login.cy.ts +++ /dev/null @@ -1,89 +0,0 @@ -import { checkErrors } from '../../support'; -import { masthead } from '../../views/masthead'; -import { nav } from '../../views/nav'; - -describe('Auth test', () => { - const KUBEADMIN_IDP = 'kube:admin'; - const KUBEADMIN_USERNAME = 'kubeadmin'; - - beforeEach(() => { - // clear any existing sessions - Cypress.session.clearAllSavedSessions(); - }); - - afterEach(() => { - checkErrors(); - Cypress.session.clearAllSavedSessions(); - }); - - it(`logs in as 'test' user via htpasswd identity provider`, function () { - cy.env(['BRIDGE_KUBEADMIN_PASSWORD', 'BRIDGE_HTPASSWD_PASSWORD']).then( - ({ BRIDGE_KUBEADMIN_PASSWORD, BRIDGE_HTPASSWD_PASSWORD }) => { - if (!BRIDGE_KUBEADMIN_PASSWORD) { - this.skip(); - return; - } - const idp = Cypress.expose('BRIDGE_HTPASSWD_IDP') || 'test'; - const username = Cypress.expose('BRIDGE_HTPASSWD_USERNAME') || 'test'; - const passwd = BRIDGE_HTPASSWD_PASSWORD || 'test'; - cy.login(idp, username, passwd); - cy.url().should('include', Cypress.config('baseUrl')); - - // test Developer perspective is default for test user - // Below line to be uncommented after pr https://github.com/openshift/console-operator/pull/954 is merged - masthead.username.shouldHaveText(username); - - cy.log('switches from dev to admin perspective'); - // nav.sidenav.switcher.shouldHaveText('Developer'); - nav.sidenav.switcher.changePerspectiveTo('Core platform'); - nav.sidenav.switcher.shouldHaveText('Core platform'); - - cy.log('does not show admin nav items in Administration to test user'); - // eslint-disable-next-line cypress/no-unnecessary-waiting - cy.wait(10000); // wait for feature FLAGS to load - nav.sidenav.shouldNotHaveNavSection(['Administration', 'Cluster Status']); - nav.sidenav.shouldNotHaveNavSection(['Administration', 'Cluster Settings']); - nav.sidenav.shouldNotHaveNavSection(['Administration', 'Namespaces']); - nav.sidenav.shouldNotHaveNavSection(['Administration', 'Custom Resource Definitions']); - - cy.log('does not show admin nav items in Ecosystem to test user'); - nav.sidenav.shouldNotHaveNavSection(['Ecosystem', 'Software Catalog']); - - cy.log('does not show admin nav items in Storage to test user'); - nav.sidenav.shouldNotHaveNavSection(['Storage', 'Persistent Volumes']); - - cy.log('does not show Compute or Monitoring to test user'); - nav.sidenav.shouldNotHaveNavSection(['Compute']); - nav.sidenav.shouldNotHaveNavSection(['Monitoring']); - }, - ); - }); - - it(`log in as 'kubeadmin' user`, () => { - cy.env(['BRIDGE_KUBEADMIN_PASSWORD']).then(({ BRIDGE_KUBEADMIN_PASSWORD }) => { - cy.login(KUBEADMIN_IDP, KUBEADMIN_USERNAME, BRIDGE_KUBEADMIN_PASSWORD); - cy.byTestID('loading-indicator').should('not.exist'); - cy.url().should('include', Cypress.config('baseUrl')); - masthead.username.shouldHaveText(KUBEADMIN_IDP); - cy.byTestID('global-notifications').contains( - 'You are logged in as a temporary administrative user. Update the cluster OAuth configuration to allow others to log in.', - ); - - // test Administrator perspective is default for kubeadmin - nav.sidenav.switcher.shouldHaveText('Core platform'); - // test guided tour is displayed first time switching to 'Developer' perspective - // skip if running localhost - if (!Cypress.config('baseUrl').includes('localhost')) { - // nav.sidenav.switcher.changePerspectiveTo('Developer'); - // nav.sidenav.switcher.shouldHaveText('Developer'); - nav.sidenav.switcher.changePerspectiveTo('Core platform'); - nav.sidenav.switcher.shouldHaveText('Core platform'); - } - cy.log('verify sidenav menus and Administration menu access for cluster admin user'); - nav.sidenav.shouldHaveNavSection(['Compute']); - nav.sidenav.shouldHaveNavSection(['Operators']); - nav.sidenav.clickNavLink(['Administration', 'Cluster Settings']); - cy.byLegacyTestID('cluster-settings-page-heading').should('be.visible'); - }); - }); -}); diff --git a/frontend/packages/integration-tests/tests/app/debug-pod.cy.ts b/frontend/packages/integration-tests/tests/app/debug-pod.cy.ts deleted file mode 100644 index e5714a694f3..00000000000 --- a/frontend/packages/integration-tests/tests/app/debug-pod.cy.ts +++ /dev/null @@ -1,113 +0,0 @@ -import { checkErrors, testName } from '../../support'; -import { detailsPage } from '../../views/details-page'; -import { listPage } from '../../views/list-page'; -import * as yamlEditor from '../../views/yaml-editor'; - -const POD_NAME = `pod1`; -const CONTAINER_NAME = `container1`; -const XTERM_CLASS = `[class="xterm-viewport"]`; -const podToDebug = `apiVersion: v1 -kind: Pod -metadata: - name: ${POD_NAME} -spec: - securityContext: - runAsNonRoot: true - seccompProfile: - type: RuntimeDefault - containers: - - name: ${CONTAINER_NAME} - image: quay.io/fedora/fedora - securityContext: - allowPrivilegeEscalation: false - capabilities: - drop: - - ALL - restartPolicy: Always`; - -describe('Debug pod', () => { - before(() => { - cy.login(); - cy.createProjectWithCLI(testName); - }); - - afterEach(() => { - checkErrors(); - }); - - after(() => { - cy.visit('/'); - cy.deleteProjectWithCLI(testName); - }); - - it('Create pod that has crashbackloop error', () => { - cy.visit(`/k8s/ns/${testName}/import`); - yamlEditor.isImportLoaded(); - yamlEditor.setEditorContent(podToDebug).then(() => { - yamlEditor.clickSaveCreateButton(); - cy.byTestID('yaml-error').should('not.exist'); - detailsPage.sectionHeaderShouldExist('Pod details'); - }); - }); - - it('Opens debug terminal page from Logs subsection', () => { - cy.visit(`/k8s/ns/${testName}/pods`); - listPage.dvRows.shouldExist(POD_NAME); - cy.visit(`/k8s/ns/${testName}/pods/${POD_NAME}`); - detailsPage.isLoaded(); - detailsPage.selectTab('Logs'); - detailsPage.isLoaded(); - cy.byTestID('debug-container-link').click(); - listPage.titleShouldHaveText(`Debug ${CONTAINER_NAME}`); - cy.get(XTERM_CLASS).should('exist'); - cy.get('[data-test-id="breadcrumb-link-0"]').click(); - listPage.dvRows.shouldExist(POD_NAME); - }); - - it('Opens debug terminal page from Pod Details - Status tool tip', () => { - cy.visit(`/k8s/ns/${testName}/pods/${POD_NAME}`); - detailsPage.isLoaded(); - cy.byTestID('popover-status-button', { timeout: 60000 }).click(); - // Regression test for OCPBUGS-83813: Wait for popover content to be stable before clicking - // https://issues.redhat.com/browse/OCPBUGS-83813 - cy.byTestID(`popup-debug-container-link-${CONTAINER_NAME}`).should('be.visible'); - cy.byTestID(`popup-debug-container-link-${CONTAINER_NAME}`).click(); - listPage.titleShouldHaveText(`Debug ${CONTAINER_NAME}`); - cy.get(XTERM_CLASS).should('exist'); - cy.get('[data-test-id="breadcrumb-link-0"]').click(); - listPage.dvRows.shouldExist(POD_NAME); - }); - - it('Opens debug terminal page from Pods Page - Status tool tip', () => { - cy.visit(`/k8s/ns/${testName}/pods`); - listPage.dvRows.shouldExist(POD_NAME); - listPage.dvRows.clickStatusButton(POD_NAME); - // Regression test for OCPBUGS-83813: Wait for popover content to be stable before clicking - // https://issues.redhat.com/browse/OCPBUGS-83813 - cy.byTestID(`popup-debug-container-link-${CONTAINER_NAME}`).should('be.visible').click(); - listPage.titleShouldHaveText(`Debug ${CONTAINER_NAME}`); - cy.get(XTERM_CLASS).should('exist'); - - cy.log('debug pod should not copy main pod network info'); - cy.exec( - `oc get pods -n ${testName} -o jsonpath='{.items[0].status.podIP}{"#"}{.items[1].status.podIP}'`, - ).then((result) => { - const [ipAddressOne, ipAddressTwo] = result.stdout.split('#'); - expect(`${ipAddressOne}`).to.not.equal(`${ipAddressTwo}`); - }); - cy.get('[data-test-id="breadcrumb-link-0"]').click(); - listPage.dvRows.shouldExist(POD_NAME); - }); - - it('Debug pod should be terminated after leaving debug container page', () => { - cy.visit(`/k8s/ns/${testName}/pods`); - listPage.dvRows.shouldExist(POD_NAME); - listPage.dvFilter.by('Status', 'Running'); - cy.exec( - `oc get pods -n ${testName} -o jsonpath='{.items[0].metadata.name}{"#"}{.items[1].metadata.name}'`, - ).then((result) => { - const debugPodName = result.stdout.split('#')[1]; - listPage.dvRows.shouldNotExist(debugPodName); - }); - }); -}); diff --git a/frontend/packages/integration-tests/tests/app/deployments.cy.ts b/frontend/packages/integration-tests/tests/app/deployments.cy.ts deleted file mode 100644 index 1f5f56f00b8..00000000000 --- a/frontend/packages/integration-tests/tests/app/deployments.cy.ts +++ /dev/null @@ -1,55 +0,0 @@ -import { checkErrors, testName } from '../../support'; -import { detailsPage } from '../../views/details-page'; -import { listPage } from '../../views/list-page'; -import { modal } from '../../views/modal'; - -describe('Deployment resource details page', () => { - let WORKLOAD_NAME; - let CREATE_DEPLOYMENT; - let CREATE_HPA; - - before(() => { - cy.login(); - cy.initAdmin(); - cy.createProjectWithCLI(testName); - - WORKLOAD_NAME = `deployment-${testName}`; - CREATE_DEPLOYMENT = `oc create deployment ${WORKLOAD_NAME} --image=httpd --replicas=0`; - CREATE_HPA = `oc autoscale deployment ${WORKLOAD_NAME} --min=1 --max=10`; - - // Create a deployment named foo with 0 replicas using the cli - cy.exec(CREATE_DEPLOYMENT, { - failOnNonZeroExit: false, - }); - // Create an HorizontalPodAutoscaler using the cli that autoscales the deployment foo - cy.exec(CREATE_HPA, { failOnNonZeroExit: false }); - cy.visit(`/k8s/ns/${testName}/deployments`); - }); - - beforeEach(() => { - cy.visitAndWait(`/k8s/ns/${testName}/deployments/${WORKLOAD_NAME}`); - detailsPage.isLoaded(); - }); - - afterEach(() => { - checkErrors(); - }); - - after(() => { - cy.visit(`/k8s/ns/${testName}/deployments`); - listPage.dvRows.shouldBeLoaded(); - listPage.dvFilter.byName(WORKLOAD_NAME); - listPage.dvRows.clickKebabAction(WORKLOAD_NAME, 'Delete Deployment'); - modal.shouldBeOpened(); - modal.submit(); - modal.shouldBeClosed(); - cy.deleteProjectWithCLI(testName); - }); - - it('Enable deployment autoscale button should exist', () => { - cy.byTestID('enable-autoscale').should('exist').click(); - }); - it('Enable deployment autoscale button should not exist', () => { - cy.byTestID('enable-autoscale').should('not.exist'); - }); -}); diff --git a/frontend/packages/integration-tests/tests/app/machine-config.cy.ts b/frontend/packages/integration-tests/tests/app/machine-config.cy.ts deleted file mode 100644 index 6f8bd0bc50f..00000000000 --- a/frontend/packages/integration-tests/tests/app/machine-config.cy.ts +++ /dev/null @@ -1,68 +0,0 @@ -import { checkErrors } from '../../support'; -import { detailsPage } from '../../views/details-page'; - -const MC_WITH_CONFIG_FILES = '00-master'; -const MC_WITHOUT_CONFIG_FILES = '99-master-ssh'; -const MC_DETAILS_PAGE_URL = '/k8s/cluster/machineconfiguration.openshift.io~v1~MachineConfig/'; -const MC_SECTION_HEADING = 'Configuration files'; -const MC_CONFIG_FILE_PATH_ID = 'config-file-path-0'; -const MC_C2C = '.co-copy-to-clipboard__text'; -const checkMachineConfigDetails = (mode, overwrite, content) => { - cy.byTestID(MC_CONFIG_FILE_PATH_ID).scrollIntoView(); - cy.get('button[aria-label="Info"]').first().click(); - cy.contains(mode).should('exist'); - cy.contains(overwrite.toString()).should('exist'); - cy.get('code') - .first() - .should(($code) => { - const text = $code.text(); - expect(text).to.include( - decodeURIComponent(content) - .replace(/^(data:,)/, '') - .slice(0, 30), - ); - }); -}; - -describe('MachineConfig resource details page', () => { - before(() => { - cy.login(); - cy.initAdmin(); - }); - - afterEach(() => { - checkErrors(); - }); - - it(`${MC_WITH_CONFIG_FILES} displays configuration files`, () => { - cy.visit(`${MC_DETAILS_PAGE_URL}${MC_WITH_CONFIG_FILES}`); - detailsPage.titleShouldContain(`${MC_WITH_CONFIG_FILES}`); - detailsPage.isLoaded(); - cy.byTestSectionHeading(MC_SECTION_HEADING).should('exist'); - cy.byTestID(MC_CONFIG_FILE_PATH_ID).should('exist'); - cy.get(MC_C2C).should('exist'); - cy.exec(`oc get mc ${MC_WITH_CONFIG_FILES} -o jsonpath='{.spec.config.storage.files[0]}'`).then( - (result) => { - const mcContents = JSON.parse(result.stdout); - expect(mcContents).to.have.property('contents'); - expect(mcContents).to.have.property('mode'); - expect(mcContents).to.have.property('overwrite'); - const { - contents: { source }, - mode, - overwrite, - } = mcContents; - checkMachineConfigDetails(mode, overwrite, source); - }, - ); - }); - - it(`${MC_WITHOUT_CONFIG_FILES} does not display configuration files`, () => { - cy.visit(`${MC_DETAILS_PAGE_URL}${MC_WITHOUT_CONFIG_FILES}`); - detailsPage.titleShouldContain(`${MC_WITHOUT_CONFIG_FILES}`); - detailsPage.isLoaded(); - cy.byTestSectionHeading(MC_SECTION_HEADING).should('not.exist'); - cy.byTestID(MC_CONFIG_FILE_PATH_ID).should('not.exist'); - cy.get(MC_C2C).should('not.exist'); - }); -}); diff --git a/frontend/packages/integration-tests/tests/app/start-job-from-cronjob.cy.ts b/frontend/packages/integration-tests/tests/app/start-job-from-cronjob.cy.ts deleted file mode 100644 index 08efc0ae1c4..00000000000 --- a/frontend/packages/integration-tests/tests/app/start-job-from-cronjob.cy.ts +++ /dev/null @@ -1,76 +0,0 @@ -import { checkErrors, testName } from '../../support'; -import { detailsPage } from '../../views/details-page'; -import { listPage } from '../../views/list-page'; -import * as yamlEditor from '../../views/yaml-editor'; - -const CRONJOB_NAME = 'cronjob1'; - -const cronJobReqPayload = `apiVersion: batch/v1 -kind: CronJob -metadata: - name: ${CRONJOB_NAME} - namespace: ${testName} -spec: - schedule: '@daily' - jobTemplate: - spec: - template: - spec: - containers: - - name: hello - image: busybox - args: - - /bin/sh - - '-c' - - date; echo Hello from the Openshift cluster - restartPolicy: OnFailure`; - -describe('Start a Job from a CronJob', () => { - before(() => { - cy.login(); - cy.createProjectWithCLI(testName); - }); - - afterEach(() => { - checkErrors(); - }); - - after(() => { - cy.visit('/'); - cy.deleteProjectWithCLI(testName); - }); - - it('verify "Start Job" on the CronJob details page', () => { - cy.visit(`/k8s/ns/${testName}/import`); - yamlEditor.isImportLoaded(); - yamlEditor.setEditorContent(cronJobReqPayload).then(() => { - yamlEditor.clickSaveCreateButton(); - detailsPage.sectionHeaderShouldExist('CronJob details'); - }); - detailsPage.clickPageActionFromDropdown('Start Job'); - detailsPage.isLoaded(); - detailsPage.sectionHeaderShouldExist('Job details'); - detailsPage.titleShouldContain(`${CRONJOB_NAME}`); - }); - - it('verify "Start Job" on the CronJob list page', () => { - cy.visit(`/k8s/ns/${testName}/cronjobs`); - listPage.dvRows.shouldBeLoaded(); - listPage.dvRows.clickKebabAction(CRONJOB_NAME, 'Start Job'); - detailsPage.isLoaded(); - detailsPage.sectionHeaderShouldExist('Job details'); - detailsPage.titleShouldContain(`${CRONJOB_NAME}`); - }); - - it('verify the number of Jobs in CronJob > Jobs tab list page', () => { - cy.visit(`/k8s/ns/${testName}/cronjobs`); - listPage.dvRows.shouldBeLoaded(); - cy.visit(`/k8s/ns/${testName}/cronjobs/${CRONJOB_NAME}/jobs`); - listPage.dvRows.countShouldBe(2); - }); - - it('verify the number of events in CronJob > Events tab list page', () => { - cy.visit(`/k8s/ns/${testName}/cronjobs/${CRONJOB_NAME}/events`); - cy.byTestID('event-totals').should('have.text', 'Showing 2 events'); - }); -}); diff --git a/frontend/packages/integration-tests/tests/crud/secrets/add-to-workload.cy.ts b/frontend/packages/integration-tests/tests/crud/secrets/add-to-workload.cy.ts deleted file mode 100644 index 61bf5825f09..00000000000 --- a/frontend/packages/integration-tests/tests/crud/secrets/add-to-workload.cy.ts +++ /dev/null @@ -1,116 +0,0 @@ -import * as _ from 'lodash'; -import type { DeploymentKind } from '@console/internal/module/k8s'; -import { checkErrors, testName } from '../../../support'; -import { modal } from '../../../views/modal'; -import { secrets } from '../../../views/secret'; - -const secretName = 'test-secret'; -const resourceName = 'test-deploy'; -const resourceKind = 'deployment'; -const envPrefix = 'env-'; -const mountPath = '/tmp/testdata'; -const deployment: DeploymentKind = { - apiVersion: 'apps/v1', - kind: 'Deployment', - metadata: { - name: resourceName, - namespace: testName, - }, - spec: { - selector: { - matchLabels: { - test: 'add-secret-to-workload', - }, - }, - template: { - metadata: { - labels: { - test: 'add-secret-to-workload', - }, - }, - spec: { - containers: [ - { - name: 'httpd', - image: 'image-registry.openshift-image-registry.svc:5000/openshift/httpd:latest', - }, - ], - }, - }, - }, -}; - -describe('Add Secret to Workloads', () => { - before(() => { - cy.login(); - cy.createProjectWithCLI(testName); - cy.exec(`echo '${JSON.stringify(deployment)}' | oc create -n ${testName} -f -`); - cy.exec( - `oc create secret generic ${secretName} --from-literal=key1=supersecret -n ${testName}`, - ); - }); - - beforeEach(() => { - cy.visit(`/k8s/ns/${testName}/secrets/${secretName}`); - }); - - afterEach(() => { - checkErrors(); - }); - - after(() => { - cy.deleteProjectWithCLI(testName); - }); - - it(`Adds Secret to Deployment as Environment Variables`, () => { - cy.log('Add Secret'); - secrets.addSecretToWorkload(resourceName); - cy.byTestID('Environment variables-radio-input').click(); - cy.byTestID('add-secret-to-workload-prefix').type(envPrefix); - modal.submitShouldBeEnabled(); - modal.submit(); - - cy.log('Verify Secret'); - secrets.getResourceJSON(resourceName, testName, resourceKind).then((resourceJSON) => { - const resource = JSON.parse(resourceJSON.stdout); - const name = _.get( - resource, - 'spec.template.spec.containers[0].envFrom[0].secretRef.name', - undefined, - ); - expect(name).to.equal(secretName); - const prefix = _.get( - resource, - 'spec.template.spec.containers[0].envFrom[0].prefix', - undefined, - ); - expect(prefix).to.equal(envPrefix); - }); - }); - - it(`Adds Secret to Deployment as Volume`, () => { - cy.log('Add Secret'); - secrets.addSecretToWorkload(resourceName); - cy.byTestID('Volume-radio-input').click(); - cy.byTestID('add-secret-to-workload-mountpath').type(mountPath); - modal.submitShouldBeEnabled(); - modal.submit(); - - cy.log('Verify Secret'); - secrets.getResourceJSON(resourceName, testName, resourceKind).then((resourceJSON) => { - const resource = JSON.parse(resourceJSON.stdout); - const name = _.get( - resource, - 'spec.template.spec.containers[0].volumeMounts[0].name', - undefined, - ); - expect(name).to.equal(secretName); - const mp = _.get( - resource, - 'spec.template.spec.containers[0].volumeMounts[0].mountPath', - undefined, - ); - expect(mp).to.equal(mountPath); - }); - }); -}); diff --git a/frontend/packages/integration-tests/tests/crud/secrets/image-pull.cy.ts b/frontend/packages/integration-tests/tests/crud/secrets/image-pull.cy.ts deleted file mode 100644 index 018ba794fa6..00000000000 --- a/frontend/packages/integration-tests/tests/crud/secrets/image-pull.cy.ts +++ /dev/null @@ -1,211 +0,0 @@ -import { checkErrors, testName } from '../../../support'; -import { detailsPage } from '../../../views/details-page'; -import { secrets } from '../../../views/secret'; - -const heading = 'Create image pull secret'; - -describe('Image pull secrets', () => { - before(() => { - cy.login(); - cy.createProjectWithCLI(testName); - }); - - beforeEach(function () { - // Skip beforeEach for the obfuscated passwords test - if (this.currentTest?.title === 'Passwords entered on the console are obfuscated') { - return; - } - // ensure the test project is selected to avoid flakes - cy.visit(`/k8s/cluster/projects/${testName}`); - cy.visit(`/k8s/ns/${testName}/secrets/`); - secrets.clickCreateSecretDropdownButton('image'); - }); - - afterEach(() => { - const credentialsImageSecretName = `registry-credentials-image-secret-${testName}`; - const uploadConfigFileImageSecretName = `upload-configuration-file-image-secret-${testName}`; - cy.exec( - `oc delete secret -n ${testName} ${credentialsImageSecretName} ${uploadConfigFileImageSecretName}`, - { - failOnNonZeroExit: false, - }, - ); - checkErrors(); - }); - - after(() => { - cy.exec(`oc delete project ${testName} --wait=false`); - }); - - it(`Creates, edits, and deletes an image registry credentials pull secret`, () => { - const credentialsImageSecretName = `registry-credentials-image-secret-${testName}`; - const address = 'https://index.openshift.io/v'; - const addressUpdated = 'https://index.openshift.io/updated/v1'; - const username = 'username'; - const password = 'password'; - const username0 = `${username}0`; - const password0 = `${password}0`; - const username1 = `${username}1`; - const password1 = `${password}1`; - const usernameUpdated = `${username}Updated`; - const passwordUpdated = `${password}Updated`; - const mail = 'test@secret.com'; - const mail0 = `${mail}0`; - const mail1 = `${mail}1`; - const mailUpdated = 'testUpdated@secret.com'; - - const credentialsToCheck = { - '.dockerconfigjson': { - auths: { - 'https://index.openshift.io/v0': { - username: username0, - password: password0, - auth: secrets.encode(username0, password0), - email: mail0, - }, - 'https://index.openshift.io/v1': { - username: username1, - password: password1, - auth: secrets.encode(username1, password1), - email: mail1, - }, - }, - }, - }; - const updatedCredentialsToCheck = { - '.dockerconfigjson': { - auths: { - 'https://index.openshift.io/updated/v1': { - username: usernameUpdated, - password: passwordUpdated, - auth: secrets.encode(usernameUpdated, passwordUpdated), - email: mailUpdated, - }, - }, - }, - }; - - cy.log('Create secret'); - cy.byTestID('page-heading').contains(heading); - secrets.enterSecretName(credentialsImageSecretName); - secrets.clickAddCredentialsButton(); - cy.get('[data-test-id="create-image-secret-form"]').each(($el, index) => { - cy.wrap($el).find('[data-test="image-secret-address"]').type(`${address}${index}`); - cy.wrap($el).find('[data-test="image-secret-username"]').type(`${username}${index}`); - cy.wrap($el).find('[data-test="image-secret-password"]').type(`${password}${index}`); - cy.wrap($el).find('[data-test="image-secret-email"]').type(`${mail}${index}`); - }); - secrets.save(); - cy.byTestID('loading-indicator').should('not.exist'); - - // Navigate to secret details page (save may go to list page) - cy.url({ timeout: 30000 }).then((url) => { - if (!url.includes(`/secrets/${credentialsImageSecretName}`)) { - cy.visit(`/k8s/ns/${testName}/secrets/${credentialsImageSecretName}`); - } - }); - secrets.detailsPageIsLoaded(credentialsImageSecretName); - - cy.log('Verify secret'); - secrets.checkSecret(credentialsToCheck, true); - - cy.log('Edit secret with whitespace in input values'); - detailsPage.clickPageActionFromDropdown('Edit Secret'); - // Wait for form to load - cy.byTestID('page-heading').contains('Edit image pull secret'); - cy.get('[data-test-id="create-image-secret-form"]').should('have.length', 2); - secrets.clickRemoveEntryButton(); - cy.byTestID('image-secret-address').clear(); - cy.byTestID('image-secret-address').type(` ${addressUpdated} `); - cy.byTestID('image-secret-username').clear(); - cy.byTestID('image-secret-username').type(` ${usernameUpdated} `); - cy.byTestID('image-secret-password').clear(); - cy.byTestID('image-secret-password').type(` ${passwordUpdated} `); - cy.byTestID('image-secret-email').clear(); - cy.byTestID('image-secret-email').type(` ${mailUpdated} `); - secrets.save(); - cy.byTestID('loading-indicator').should('not.exist'); - - // Navigate to secret details page (save may go to list page) - cy.url({ timeout: 30000 }).then((url) => { - if (!url.includes(`/secrets/${credentialsImageSecretName}`)) { - cy.visit(`/k8s/ns/${testName}/secrets/${credentialsImageSecretName}`); - } - }); - - cy.log('Verify edit, whitespace in input values are removed'); - secrets.detailsPageIsLoaded(credentialsImageSecretName); - secrets.checkSecret(updatedCredentialsToCheck, true); - - cy.log('Delete secret'); - secrets.deleteSecret(credentialsImageSecretName); - }); - - it(`Creates and deletes an upload configuration file image pull secret`, () => { - const uploadConfigFileImageSecretName = `upload-configuration-file-image-secret-${testName}`; - const username = 'username'; - const password = 'password'; - const configFile = { - auths: { - 'https://index.openshift.io/v1': { - username, - password, - auth: secrets.encode(username, password), - email: 'test@secret.com', - }, - }, - }; - - cy.log('Create secret'); - cy.byTestID('page-heading').contains(heading); - secrets.enterSecretName(uploadConfigFileImageSecretName); - cy.byTestID('console-select-auth-type-menu-toggle').click(); - cy.byTestDropDownMenu('config-file').click(); - - // Type the JSON config to properly trigger React state updates and Yup validation - const configJson = JSON.stringify(configFile); - cy.byLegacyTestID('file-input-textarea') - .clear() - .type(configJson, { delay: 0, parseSpecialCharSequences: false }); - - // Wait for validation to complete and save button to be enabled - cy.byTestID('save-changes', { timeout: 30000 }).should('be.visible').and('be.enabled'); - - secrets.save(); - cy.byTestID('loading-indicator').should('not.exist'); - - // Navigate to secret details page (save may go to list page) - cy.url({ timeout: 30000 }).then((url) => { - if (!url.includes(`/secrets/${uploadConfigFileImageSecretName}`)) { - // If we're on list page, click on the secret to go to details - cy.visit(`/k8s/ns/${testName}/secrets/${uploadConfigFileImageSecretName}`); - } - }); - secrets.detailsPageIsLoaded(uploadConfigFileImageSecretName); - - cy.log('Verify secret'); - secrets.checkSecret( - { - '.dockerconfigjson': configFile, - }, - true, - ); - - cy.log('Delete secret'); - secrets.deleteSecret(uploadConfigFileImageSecretName); - }); - it(`Passwords entered on the console are obfuscated`, () => { - // Navigate to secrets page and open image secret form - cy.visit(`/k8s/ns/${testName}/secrets/`); - secrets.clickCreateSecretDropdownButton('image'); - cy.get('input[data-test="image-secret-password"]').should('have.attr', 'type', 'password'); - cy.get('button[id="cancel"]').click(); - - // Open source secret form - secrets.clickCreateSecretDropdownButton('source'); - cy.get('input[data-test="secret-password"]').should('have.attr', 'type', 'password'); - - // Clean up - navigate back to secrets list to close any open forms - cy.visit(`/k8s/ns/${testName}/secrets/`); - }); -}); diff --git a/frontend/packages/integration-tests/tests/crud/secrets/key-value.cy.ts b/frontend/packages/integration-tests/tests/crud/secrets/key-value.cy.ts deleted file mode 100644 index 814f0f45851..00000000000 --- a/frontend/packages/integration-tests/tests/crud/secrets/key-value.cy.ts +++ /dev/null @@ -1,218 +0,0 @@ -import { checkErrors, testName } from '../../../support'; -import { detailsPage } from '../../../views/details-page'; -import { listPage } from '../../../views/list-page'; -import { nav } from '../../../views/nav'; -import { secrets } from '../../../views/secret'; - -const populateSecretForm = (name: string, key: string, fileName: string) => { - cy.get('[data-test="page-heading"] h1').contains('Create key/value secret'); - cy.byTestID('secret-name').should('exist'); - cy.byLegacyTestID('file-input-textarea').should('exist'); - secrets.enterSecretName(name); - cy.byTestID('secret-key').type(key); - cy.get('.co-file-input').selectFile( - `${Cypress.config('fileServerFolder')}/fixtures/${fileName}`, - { - action: 'drag-drop', - force: true, - }, - ); -}; - -const modifySecretForm = (key: string) => { - detailsPage.clickPageActionFromDropdown('Edit Secret'); - cy.get('[data-test="page-heading"] h1').contains('Edit key/value secret'); - cy.byTestID('secret-key').clear().type(key); -}; - -describe('Create key/value secrets', () => { - const binarySecretName = `key-value-binary-secret-${testName}`; - const asciiSecretName = `key-value-ascii-secret-${testName}`; - const unicodeSecretName = `key-value-unicode-secret-${testName}`; - const tlsSecretName = `key-value-tls-secret-${testName}`; - const binaryFilename = 'binarysecret.bin'; - const asciiFilename = 'asciisecret.txt'; - const unicodeFilename = 'unicodesecret.utf8'; - const secretKey = `secretkey`; - const modifiedSecretKey = 'modifiedsecretkey'; - const tlsSecretYaml = ` -apiVersion: v1 -kind: Secret -metadata: - name: ${tlsSecretName} -type: kubernetes.io/tls -data: - tls.crt: QUFBCg== - tls.key: QkJCCg== -`; - - before(() => { - cy.login(); - cy.createProjectWithCLI(testName); - cy.exec(`echo '${tlsSecretYaml}' | oc create -f - -n ${testName}`); - }); - - beforeEach(() => { - // ensure the test project is selected to avoid flakes - cy.visit(`/k8s/cluster/projects/${testName}`); - nav.sidenav.clickNavLink(['Workloads', 'Secrets']); - listPage.titleShouldHaveText('Secrets'); - secrets.clickCreateSecretDropdownButton('generic'); - }); - - afterEach(() => { - cy.exec( - `oc delete secret -n ${testName} ${binarySecretName} ${asciiSecretName} ${unicodeSecretName}`, - { - failOnNonZeroExit: false, - }, - ); - checkErrors(); - }); - - after(() => { - cy.deleteProjectWithCLI(testName); - }); - - it(`Validate create and edit of a key/value secret whose value is a binary file`, () => { - populateSecretForm(binarySecretName, secretKey, binaryFilename); - cy.byLegacyTestID('file-input-textarea').should('not.exist'); - cy.byTestID('file-input-binary-alert').should('exist'); - secrets.save(); - cy.byTestID('loading-indicator').should('not.exist'); - detailsPage.isLoaded(); - detailsPage.titleShouldContain(binarySecretName); - cy.exec( - `oc get secret -n ${testName} ${binarySecretName} --template '{{.data.${secretKey}}}'`, - { - failOnNonZeroExit: false, - }, - ).then((value) => { - cy.fixture(binaryFilename, 'base64').then((binarySecret) => { - expect(binarySecret).toEqual(value.stdout); - }); - }); - modifySecretForm(modifiedSecretKey); - cy.byTestID('file-input-binary-alert').should('exist'); - secrets.save(); - cy.byTestID('loading-indicator').should('not.exist'); - detailsPage.isLoaded(); - detailsPage.titleShouldContain(binarySecretName); - cy.exec( - `oc get secret -n ${testName} ${binarySecretName} --template '{{.data.${modifiedSecretKey}}}'`, - { - failOnNonZeroExit: false, - }, - ).then((value) => { - cy.fixture(binaryFilename, 'base64').then((binarySecret) => { - expect(binarySecret).toEqual(value.stdout); - }); - }); - }); - - it(`Validate a key/value secret whose value is an ascii file`, () => { - populateSecretForm(asciiSecretName, secretKey, asciiFilename); - cy.fixture(asciiFilename, 'ascii').then((asciiSecret) => { - cy.byLegacyTestID('file-input-textarea').should('contain.text', asciiSecret); - cy.byTestID('file-input-binary-alert').should('not.exist'); - secrets.save(); - cy.byTestID('loading-indicator').should('not.exist'); - detailsPage.isLoaded(); - detailsPage.titleShouldContain(asciiSecretName); - cy.exec( - `oc get secret -n ${testName} ${asciiSecretName} --template '{{.data.${secretKey}}}' | base64 -d`, - { - failOnNonZeroExit: false, - }, - ).then((value) => { - expect(asciiSecret).toEqual(value.stdout); - }); - }); - }); - - it(`Validate a key/value secret whose value is a unicode file`, () => { - populateSecretForm(unicodeSecretName, secretKey, unicodeFilename); - cy.fixture(unicodeFilename, 'utf8').then((unicodeSecret) => { - cy.byLegacyTestID('file-input-textarea').should('contain.text', unicodeSecret); - cy.byTestID('file-input-binary-alert').should('not.exist'); - secrets.save(); - cy.byTestID('loading-indicator').should('not.exist'); - detailsPage.isLoaded(); - detailsPage.titleShouldContain(unicodeSecretName); - cy.exec( - `oc get secret -n ${testName} ${unicodeSecretName} --template '{{.data.${secretKey}}}' | base64 -d`, - { - failOnNonZeroExit: false, - }, - ).then((value) => { - expect(unicodeSecret).toEqual(value.stdout); - }); - }); - }); - - it('Validate tls secret is editable', () => { - cy.visit(`/k8s/ns/${testName}/secrets/${tlsSecretName}/edit`); - secrets.addKeyValue('keyfortest', 'valuefortest'); - secrets.save(); - secrets.detailsPageIsLoaded(tlsSecretName); - secrets.checkKeyValueExist('keyfortest', 'valuefortest'); - }); - - it('Validate editing text field does not corrupt binary data (OCPBUGS-70273)', () => { - const mixedSecretName = `key-value-mixed-secret-${testName}`; - const textKey = 'textfield'; - const textValue = 'original-password'; - const updatedTextValue = 'updated-password'; - const binaryKey = 'binaryfield'; - - // Create a secret with both text and binary data using CLI - cy.exec( - `oc create secret generic ${mixedSecretName} -n ${testName} --from-literal=${textKey}=${textValue} --from-file=${binaryKey}=${Cypress.config( - 'fileServerFolder', - )}/fixtures/${binaryFilename}`, - ); - - // Capture the original binary data - cy.exec( - `oc get secret -n ${testName} ${mixedSecretName} --template '{{.data.${binaryKey}}}'`, - ).then((originalBinary) => { - // Edit the secret via the console - cy.visit(`/k8s/ns/${testName}/secrets/${mixedSecretName}`); - detailsPage.isLoaded(); - detailsPage.clickPageActionFromDropdown('Edit Secret'); - - // Modify only the text field - cy.byTestID('secret-key') - .should('have.length', 2) - .each(($el) => { - if ($el.val() === textKey) { - // Find the corresponding value textarea and update it - cy.byLegacyTestID('file-input-textarea').first().clear().type(updatedTextValue); - } - }); - - // Verify binary field shows the binary alert (indicates it's still treated as binary) - cy.byTestID('file-input-binary-alert').should('exist'); - - secrets.save(); - cy.byTestID('loading-indicator').should('not.exist'); - detailsPage.isLoaded(); - - // Verify the text field was updated - secrets.clickRevealValues(); - cy.byTestID('copy-to-clipboard').should('contain.text', updatedTextValue); - - // Verify the binary data was NOT corrupted - cy.exec( - `oc get secret -n ${testName} ${mixedSecretName} --template '{{.data.${binaryKey}}}'`, - ).then((updatedBinary) => { - expect(updatedBinary.stdout).to.equal(originalBinary.stdout); - }); - - // Cleanup - cy.exec(`oc delete secret -n ${testName} ${mixedSecretName}`, { - failOnNonZeroExit: false, - }); - }); - }); -}); diff --git a/frontend/packages/integration-tests/tests/crud/secrets/source.cy.ts b/frontend/packages/integration-tests/tests/crud/secrets/source.cy.ts deleted file mode 100644 index 293b649aece..00000000000 --- a/frontend/packages/integration-tests/tests/crud/secrets/source.cy.ts +++ /dev/null @@ -1,113 +0,0 @@ -import { checkErrors, testName } from '../../../support'; -import { detailsPage } from '../../../views/details-page'; -import { secrets } from '../../../views/secret'; - -describe('Source secrets', () => { - const basicSourceSecretName = `basic-source-secret-${testName}`; - const basicSourceSecretUsername = 'username'; - const basicSourceSecretUsernameUpdated = 'usernameUpdated'; - const basicSourceSecretPassword = 'password'; - const basicSourceSecretPasswordUpdated = 'passwordUpdated'; - const sshSourceSecretName = `ssh-source-secret-${testName}`; - const sshSourceSecretSSHKey = 'sshKey'; - const sshSourceSecretSSHKeUpdated = 'sshKeyUpdated'; - - before(() => { - cy.login(); - cy.createProjectWithCLI(testName); - }); - - beforeEach(() => { - // ensure the test project is selected to avoid flakes - cy.visit(`/k8s/cluster/projects/${testName}`); - cy.visit(`/k8s/ns/${testName}/secrets/`); - secrets.clickCreateSecretDropdownButton('source'); - }); - - afterEach(() => { - cy.exec(`oc delete secret -n ${testName} ${basicSourceSecretName} ${sshSourceSecretName}`, { - failOnNonZeroExit: false, - }); - checkErrors(); - }); - - after(() => { - cy.deleteProjectWithCLI(testName); - }); - - it(`Creates, edits, and deletes a basic source secret`, () => { - cy.log('Create secret'); - cy.byTestID('page-heading').contains('Create source secret'); - secrets.enterSecretName(basicSourceSecretName); - cy.byTestID('secret-username').type(basicSourceSecretUsername); - cy.byTestID('secret-password').type(basicSourceSecretPassword); - secrets.save(); - cy.byTestID('loading-indicator').should('not.exist'); - secrets.detailsPageIsLoaded(basicSourceSecretName); - - cy.log('Verify secret'); - secrets.checkSecret({ - password: basicSourceSecretPassword, - username: basicSourceSecretUsername, - }); - - cy.log('Edit secret'); - detailsPage.clickPageActionFromDropdown('Edit Secret'); - // Wait for form to load and hydrate with current values - cy.byTestID('page-heading').contains('Edit source secret'); - cy.byTestID('secret-username').should('have.value', basicSourceSecretUsername); - cy.byTestID('secret-password').should('have.value', basicSourceSecretPassword); - cy.byTestID('secret-username').clear(); - cy.byTestID('secret-username').type(basicSourceSecretUsernameUpdated); - cy.byTestID('secret-password').clear(); - cy.byTestID('secret-password').type(basicSourceSecretPasswordUpdated); - secrets.save(); - cy.byTestID('loading-indicator').should('not.exist'); - - cy.log('Verify edit'); - secrets.detailsPageIsLoaded(basicSourceSecretName); - secrets.checkSecret({ - password: basicSourceSecretPasswordUpdated, - username: basicSourceSecretUsernameUpdated, - }); - - cy.log('Delete secret'); - secrets.deleteSecret(basicSourceSecretName); - }); - - it(`Creates, edits, and deletes a SSH source secret`, () => { - cy.log('Create secret'); - cy.byTestID('page-heading').contains('Create source secret'); - secrets.enterSecretName(sshSourceSecretName); - cy.byTestID('console-select-auth-type-menu-toggle').click(); - cy.byTestDropDownMenu('kubernetes.io/ssh-auth').click(); - cy.byLegacyTestID('file-input-textarea').type(sshSourceSecretSSHKey); - secrets.save(); - cy.byTestID('loading-indicator').should('not.exist'); - secrets.detailsPageIsLoaded(sshSourceSecretName); - - cy.log('Verify secret'); - secrets.checkSecret({ - 'ssh-privatekey': `${sshSourceSecretSSHKey}\n`, - }); - - cy.log('Edit secret'); - detailsPage.clickPageActionFromDropdown('Edit Secret'); - // Wait for form to load and hydrate with current values - cy.byTestID('page-heading').contains('Edit source secret'); - cy.byLegacyTestID('file-input-textarea').should('contain.value', sshSourceSecretSSHKey); - cy.byLegacyTestID('file-input-textarea').clear(); - cy.byLegacyTestID('file-input-textarea').type(sshSourceSecretSSHKeUpdated); - secrets.save(); - cy.byTestID('loading-indicator').should('not.exist'); - - cy.log('Verify edit'); - secrets.detailsPageIsLoaded(sshSourceSecretName); - secrets.checkSecret({ - 'ssh-privatekey': `${sshSourceSecretSSHKeUpdated}\n`, - }); - - cy.log('Delete secret'); - secrets.deleteSecret(sshSourceSecretName); - }); -}); diff --git a/frontend/packages/integration-tests/tests/crud/secrets/webhook.cy.ts b/frontend/packages/integration-tests/tests/crud/secrets/webhook.cy.ts deleted file mode 100644 index e611f3bca22..00000000000 --- a/frontend/packages/integration-tests/tests/crud/secrets/webhook.cy.ts +++ /dev/null @@ -1,66 +0,0 @@ -import { checkErrors, testName } from '../../../support'; -import { detailsPage } from '../../../views/details-page'; -import { secrets } from '../../../views/secret'; - -describe('Webhook secret', () => { - const webhookSecretName = `webhook-secret-${testName}`; - const webhookSecretKey = 'webhookValue'; - - before(() => { - cy.login(); - cy.createProjectWithCLI(testName); - }); - - beforeEach(() => { - // ensure the test project is selected to avoid flakes - cy.visit(`/k8s/cluster/projects/${testName}`); - cy.visit(`/k8s/ns/${testName}/secrets/`); - secrets.clickCreateSecretDropdownButton('webhook'); - }); - - afterEach(() => { - cy.exec(`oc delete secret -n ${testName} ${webhookSecretName}`, { - failOnNonZeroExit: false, - }); - checkErrors(); - }); - - after(() => { - cy.deleteProjectWithCLI(testName); - }); - - it(`Create, edit, and delete a webhook secret`, () => { - cy.log('Create secret'); - cy.byTestID('page-heading').contains('Create webhook secret'); - secrets.enterSecretName(webhookSecretName); - cy.byTestID('secret-key').type(webhookSecretKey); - secrets.save(); - cy.byTestID('loading-indicator').should('not.exist'); - secrets.detailsPageIsLoaded(webhookSecretName); - - cy.log('Verify secret'); - secrets.checkSecret({ - WebHookSecretKey: webhookSecretKey, - }); - - cy.log('Edit secret'); - detailsPage.clickPageActionFromDropdown('Edit Secret'); - // Wait for form to load - cy.byTestID('page-heading').contains('Edit webhook secret'); - cy.byTestID('webhook-generate-button').should('be.visible'); - cy.byTestID('webhook-generate-button').click(); - secrets.save(); - cy.byTestID('loading-indicator').should('not.exist'); - - cy.log('Verify edit'); - secrets.detailsPageIsLoaded(webhookSecretName); - secrets.clickRevealValues(); - cy.get('.co-copy-to-clipboard__text .co-copy-to-clipboard__code') - .eq(0) - .invoke('text') - .should('not.equal', webhookSecretKey); - - cy.log('Delete secret'); - secrets.deleteSecret(webhookSecretName); - }); -}); diff --git a/frontend/packages/integration-tests/tests/storage/clone.cy.ts b/frontend/packages/integration-tests/tests/storage/clone.cy.ts deleted file mode 100644 index a025f604f80..00000000000 --- a/frontend/packages/integration-tests/tests/storage/clone.cy.ts +++ /dev/null @@ -1,113 +0,0 @@ -import { PVC, PVCGP3, testerDeployment } from '../../mocks/snapshot'; -import { testName, checkErrors } from '../../support'; -import { resourceStatusShouldContain } from '../../views/common'; -import { detailsPage, DetailsPageSelector } from '../../views/details-page'; -import { listPage } from '../../views/list-page'; -import { modal } from '../../views/modal'; -import { nav } from '../../views/nav'; - -const cloneName = `${PVC.metadata.name}-clone`; -const cloneSize = '2'; -const deletePVCClone = (pvcName: string) => { - nav.sidenav.clickNavLink(['PersistentVolumeClaims']); - listPage.filter.byName(pvcName); - listPage.rows.clickKebabAction(pvcName, 'Delete PersistentVolumeClaim'); - modal.shouldBeOpened(); - modal.submitShouldBeEnabled(); - modal.submit(); - modal.shouldBeClosed(); - listPage.rows.shouldNotExist(pvcName); -}; - -// Normalize env check: CI env vars are strings, so "false" would be truthy without explicit comparison. -const isAws = String(Cypress.expose('BRIDGE_AWS')).toLowerCase() === 'true'; -if (isAws) { - describe('Clone Tests', () => { - before(() => { - cy.login(); - cy.createProjectWithCLI(testName); - cy.exec(`echo '${JSON.stringify(PVC)}' | oc apply -n ${testName} -f -`); - cy.exec(`echo '${JSON.stringify(PVCGP3)}' | oc apply -n ${testName} -f -`); - cy.exec(`echo '${JSON.stringify(testerDeployment)}' | oc apply -n ${testName} -f -`); - nav.sidenav.clickNavLink(['Storage', 'PersistentVolumeClaims']); - listPage.filter.byName(PVC.metadata.name); - resourceStatusShouldContain('Bound'); - }); - - afterEach(() => { - checkErrors(); - }); - - after(() => { - cy.exec(`echo '${JSON.stringify(testerDeployment)}' | oc delete -n ${testName} -f -`); - cy.exec(`echo '${JSON.stringify(PVC)}' | oc delete -n ${testName} -f -`); - cy.exec(`echo '${JSON.stringify(PVCGP3)}' | oc delete -n ${testName} -f -`); - cy.deleteProjectWithCLI(testName); - }); - - it('Creates PVC Clone', () => { - listPage.rows.clickKebabAction(PVC.metadata.name, 'Clone PVC'); - modal.shouldBeOpened(); - modal.submitShouldBeEnabled(); - cy.byTestID('input-request-size').clear().type(cloneSize); - modal.submit(); - modal.shouldBeClosed(); - cy.location('pathname').should( - 'include', - `persistentvolumeclaims/${PVC.metadata.name}-clone`, - ); - detailsPage.titleShouldContain(`${PVC.metadata.name}-clone`); - cy.exec(`oc get pvc ${PVC.metadata.name}-clone -n ${testName} -o json`) - .its('stdout') - .then((res) => { - const pvc = JSON.parse(res); - cy.get(DetailsPageSelector.name).contains(pvc.metadata.name); - cy.get(DetailsPageSelector.namespace).contains(pvc.metadata.namespace); - cy.byTestID('pvc-requested-capacity').contains(`${cloneSize} GiB`); - }); - }); - - it('Lists Clone', () => { - nav.sidenav.clickNavLink(['PersistentVolumeClaims']); - listPage.rows.shouldBeLoaded(); - listPage.rows.shouldExist(cloneName); - }); - - it('Deletes PVC Clone', () => { - deletePVCClone(cloneName); - }); - - it('Creates PVC Clone with different storage cluster', () => { - listPage.filter.byName(PVC.metadata.name); - listPage.rows.clickKebabAction(PVC.metadata.name, 'Clone PVC'); - modal.shouldBeOpened(); - modal.submitShouldBeEnabled(); - cy.byTestID('input-request-size').clear().type(cloneSize); - cy.byTestID('storage-class-dropdown').click(); - cy.byTestID('console-select-item').contains('gp3-csi').click(); - modal.submit(); - modal.shouldBeClosed(); - cy.location('pathname').should( - 'include', - `persistentvolumeclaims/${PVC.metadata.name}-clone`, - ); - detailsPage.titleShouldContain(`${PVC.metadata.name}-clone`); - cy.exec(`oc get pvc ${PVC.metadata.name}-clone -n ${testName} -o json`) - .its('stdout') - .then((res) => { - const pvc = JSON.parse(res); - cy.get(DetailsPageSelector.name).contains(pvc.metadata.name); - cy.get(DetailsPageSelector.namespace).contains(pvc.metadata.namespace); - cy.byTestID('pvc-requested-capacity').contains(`${cloneSize} GiB`); - }); - }); - - it('Deletes PVC Clone', () => { - deletePVCClone(cloneName); - }); - }); -} else { - describe('Skipping Clone Tests', () => { - it('No CSI based storage classes are available in this platform', () => {}); - }); -} diff --git a/frontend/packages/integration-tests/tests/storage/create-storage-class.cy.ts b/frontend/packages/integration-tests/tests/storage/create-storage-class.cy.ts deleted file mode 100644 index e1423e88ed7..00000000000 --- a/frontend/packages/integration-tests/tests/storage/create-storage-class.cy.ts +++ /dev/null @@ -1,26 +0,0 @@ -import { provisionersMap } from '../../mocks/storage-class'; -import { nav } from '../../views/nav'; -import { - createStorageClassValidateAndCleanUp, - fillStorageClassInformation, - validatePresenceOfParameterAndFeedData, -} from '../../views/storage/create-storage-class'; - -describe('Test creation of Storage classes using various provisioners', () => { - before(() => { - cy.login(); - nav.sidenav.clickNavLink(['Storage', 'StorageClasses']); - }); - - beforeEach(() => { - cy.byTestID('item-create').click(); - }); - - Object.entries(provisionersMap).forEach(([provisionerName, parameters]) => { - it(`Create ${provisionerName} based storage class`, () => { - fillStorageClassInformation(provisionerName); - parameters.forEach((parameter) => validatePresenceOfParameterAndFeedData(parameter)); - createStorageClassValidateAndCleanUp(provisionerName, parameters); - }); - }); -}); diff --git a/frontend/packages/integration-tests/tests/storage/snapshot.cy.ts b/frontend/packages/integration-tests/tests/storage/snapshot.cy.ts deleted file mode 100644 index 21bf43207a0..00000000000 --- a/frontend/packages/integration-tests/tests/storage/snapshot.cy.ts +++ /dev/null @@ -1,109 +0,0 @@ -import { PVC, testerDeployment, SnapshotClass, patchForVolume } from '../../mocks/snapshot'; -import { testName, checkErrors } from '../../support'; -import { resourceStatusShouldContain } from '../../views/common'; -import { detailsPage, DetailsPageSelector } from '../../views/details-page'; -import { listPage } from '../../views/list-page'; -import { modal } from '../../views/modal'; -import { nav } from '../../views/nav'; -import { SnapshotDetails, dropdownFirstItem } from '../../views/storage/snapshot'; - -const snapshotName = `${PVC.metadata.name}-snapshot`; - -// These tests are meant to be run on AWS as only AWS supports CSI storage classes(gp2-csi) -// Normalize env check: CI env vars are strings, so "false" would be truthy without explicit comparison. -const isAws = String(Cypress.expose('BRIDGE_AWS')).toLowerCase() === 'true'; -if (isAws) { - describe('Snapshot Tests', () => { - before(() => { - cy.login(); - cy.createProjectWithCLI(testName); - cy.exec(`echo '${JSON.stringify(PVC)}' | oc apply -n ${testName} -f -`); - cy.exec(`echo '${JSON.stringify(testerDeployment)}' | oc apply -n ${testName} -f -`); - cy.exec(`echo '${JSON.stringify(SnapshotClass)}' | oc apply -f -`); - nav.sidenav.clickNavLink(['Storage', 'Persistent Volume Claims']); - listPage.filter.byName(PVC.metadata.name); - resourceStatusShouldContain('Bound'); - }); - - afterEach(() => { - checkErrors(); - }); - - after(() => { - cy.exec(`echo '${JSON.stringify(testerDeployment)}' | oc delete -n ${testName} -f -`); - cy.exec(`echo '${JSON.stringify(PVC)}' | oc delete -n ${testName} -f -`); - cy.exec(`oc delete pvc ${snapshotName}-restore -n ${testName}`); - cy.exec(`echo '${JSON.stringify(SnapshotClass)}' | oc delete -f -`); - cy.deleteProjectWithCLI(testName); - }); - - it('Creates Snapshot', () => { - nav.sidenav.clickNavLink(['Volume Snapshots']); - listPage.clickCreateYAMLbutton(); - cy.byTestID('pvc-dropdown').click(); - cy.get(dropdownFirstItem).first().click(); - cy.byTestID('snapshot-dropdown').click(); - cy.get(dropdownFirstItem).first().click(); - modal.submit(); - cy.location('pathname').should( - 'include', - `snapshot.storage.k8s.io~v1~VolumeSnapshot/${PVC.metadata.name}-snapshot`, - ); - detailsPage.titleShouldContain(PVC.metadata.name); - resourceStatusShouldContain('Ready', { timeout: 40000 }); - cy.exec(`oc get VolumeSnapshot ${PVC.metadata.name}-snapshot -n ${testName} -o json`) - .its('stdout') - .then((res) => { - const volumeSnapshot = JSON.parse(res); - cy.get(DetailsPageSelector.name).contains(volumeSnapshot.metadata.name); - cy.get(DetailsPageSelector.namespace).contains(volumeSnapshot.metadata.namespace); - cy.get(SnapshotDetails.vsc).contains( - volumeSnapshot.status.boundVolumeSnapshotContentName, - ); - cy.get(SnapshotDetails.sc).contains(volumeSnapshot.spec.volumeSnapshotClassName); - cy.get(SnapshotDetails.pvc).contains( - volumeSnapshot.spec.source.persistentVolumeClaimName, - ); - }); - }); - - it('Lists Snapshot', () => { - nav.sidenav.clickNavLink(['VolumeSnapshots']); - listPage.rows.shouldBeLoaded(); - listPage.rows.shouldExist(snapshotName); - listPage.rows.shouldNotExist(`${snapshotName}dup`); - }); - - it('Restore a Snapshot to create a new claim from it', () => { - cy.clickNavLink(['Volume Snapshots']); - listPage.rows.clickKebabAction(snapshotName, 'Restore as new PVC'); - modal.shouldBeOpened(); - cy.byTestID('pvc-name').should('have.value', `${snapshotName}-restore`); - cy.get(SnapshotDetails.scDropdown).click(); - cy.get(dropdownFirstItem).eq(1).click(); - modal.submit(); - modal.shouldBeClosed(); - cy.exec( - `oc patch Deployment ${ - testerDeployment.metadata.name - } --type='json' -n ${testName} -p '[${JSON.stringify(patchForVolume)}]'`, - ) - .its('stdout') - .then(() => resourceStatusShouldContain('Bound', { timeout: 40000 })); - }); - - it('Deletes Snapshot', () => { - cy.clickNavLink(['VolumeSnapshots']); - listPage.rows.clickKebabAction(snapshotName, 'Delete VolumeSnapshot'); - modal.shouldBeOpened(); - modal.submitShouldBeEnabled(); - modal.submit(); - modal.shouldBeClosed(); - listPage.rows.shouldNotExist(snapshotName); - }); - }); -} else { - describe('Skipping Snapshot Tests', () => { - it('No CSI based storage classes are available in this platform', () => {}); - }); -} diff --git a/frontend/packages/integration-tests/tests/storage/volume-attributes-class.cy.ts b/frontend/packages/integration-tests/tests/storage/volume-attributes-class.cy.ts deleted file mode 100644 index db941412c2f..00000000000 --- a/frontend/packages/integration-tests/tests/storage/volume-attributes-class.cy.ts +++ /dev/null @@ -1,184 +0,0 @@ -import { getVACFixtures } from '../../mocks/volume-attributes-class'; -import { testName, checkErrors } from '../../support'; -import { resourceStatusShouldContain } from '../../views/common'; -import { detailsPage } from '../../views/details-page'; -import { listPage } from '../../views/list-page'; -import { modal } from '../../views/modal'; - -// These tests require AWS platform with EBS CSI driver for modifyVolume support -const isAws = String(Cypress.expose('BRIDGE_AWS')).toLowerCase() === 'true'; - -if (isAws) { - describe('VolumeAttributesClass E2E tests', () => { - // Generate unique fixtures per test run to avoid collisions on shared clusters - const fixtures = getVACFixtures(testName); - const { - VAC_LOW_IOPS, - VAC_HIGH_IOPS, - VAC_INVALID, - STORAGE_CLASS, - TEST_VAC_LOW_IOPS, - TEST_VAC_HIGH_IOPS, - TEST_VAC_INVALID, - TEST_PVC, - TEST_DEPLOYMENT, - TEST_STORAGECLASS, - getDeployment, - } = fixtures; - - before(() => { - cy.login(); - cy.createProjectWithCLI(testName); - // Create StorageClass for PVC provisioning - cy.exec(`echo '${JSON.stringify(STORAGE_CLASS)}' | oc apply -f -`); - // Create VolumeAttributesClasses for testing - cy.exec(`echo '${JSON.stringify(VAC_LOW_IOPS)}' | oc apply -f -`); - cy.exec(`echo '${JSON.stringify(VAC_HIGH_IOPS)}' | oc apply -f -`); - cy.exec(`echo '${JSON.stringify(VAC_INVALID)}' | oc apply -f -`); - // Create Deployment that will consume the PVC - cy.exec(`echo '${JSON.stringify(getDeployment(testName, TEST_PVC))}' | oc apply -f -`); - }); - - afterEach(() => { - checkErrors(); - }); - - after(() => { - // Navigate to VAC list page to avoid 404 during cleanup - cy.visit('/k8s/cluster/storage.k8s.io~v1~VolumeAttributesClass'); - listPage.dvRows.shouldBeLoaded(); - - // Delete Deployment first to release PVC - cy.exec( - `oc delete deployment ${TEST_DEPLOYMENT} -n ${testName} --ignore-not-found=true --wait=true`, - { - failOnNonZeroExit: false, - timeout: 120000, - }, - ); - - // Delete PVC to release VAC reference - cy.exec(`oc delete pvc ${TEST_PVC} -n ${testName} --ignore-not-found=true --wait=true`, { - failOnNonZeroExit: false, - timeout: 120000, - }); - - // Remove finalizers from VACs to allow deletion - [TEST_VAC_LOW_IOPS, TEST_VAC_HIGH_IOPS, TEST_VAC_INVALID].forEach((vacName) => { - cy.exec( - `oc patch volumeattributesclass ${vacName} -p '{"metadata":{"finalizers":[]}}' --type=merge`, - { failOnNonZeroExit: false, timeout: 30000 }, - ); - }); - - // Delete VACs without waiting (cluster-scoped resources can be slow) - cy.exec( - `oc delete volumeattributesclass ${TEST_VAC_LOW_IOPS} ${TEST_VAC_HIGH_IOPS} ${TEST_VAC_INVALID} --ignore-not-found=true --wait=false`, - { - failOnNonZeroExit: false, - timeout: 30000, - }, - ); - - // Delete StorageClass - cy.exec(`oc delete storageclass ${TEST_STORAGECLASS} --ignore-not-found=true --wait=false`, { - failOnNonZeroExit: false, - timeout: 30000, - }); - - cy.deleteProjectWithCLI(testName); - }); - - it('creates PVC with VolumeAttributesClass and verifies it appears on details page', () => { - cy.visit(`/k8s/ns/${testName}/persistentvolumeclaims/~new/form`); - cy.byTestID('pvc-name').should('exist').clear().type(TEST_PVC); - cy.byTestID('pvc-size').clear().type('1'); - - // Select StorageClass from dropdown - cy.byTestID('storageclass-dropdown').click(); - cy.byTestID('console-select-item').contains(TEST_STORAGECLASS).click(); - - // Select VolumeAttributesClass from dropdown - cy.byTestID('volumeattributesclass-dropdown').click(); - cy.byTestID('console-select-item').contains(TEST_VAC_LOW_IOPS).click(); - - // Create PVC and navigate to details page - cy.byTestID('create-pvc').click(); - detailsPage.titleShouldContain(TEST_PVC); - - // Verify requested VAC is displayed - cy.byLegacyTestID('pvc-requested-vac', { timeout: 30000 }).should( - 'contain.text', - TEST_VAC_LOW_IOPS, - ); - - // Wait for PVC to reach Bound status - resourceStatusShouldContain('Bound', { timeout: 120000 }); - - // Verify current VAC matches requested VAC - cy.byLegacyTestID('pvc-current-vac', { timeout: 30000 }).should('exist'); - cy.byLegacyTestID('pvc-current-vac').should('contain.text', TEST_VAC_LOW_IOPS); - }); - - it('modifies VolumeAttributesClass via modal and verifies update', () => { - cy.visit(`/k8s/ns/${testName}/persistentvolumeclaims/${TEST_PVC}`); - detailsPage.isLoaded(); - - // Open Modify VolumeAttributesClass modal - detailsPage.clickPageActionFromDropdown('Modify VolumeAttributesClass'); - modal.shouldBeOpened(); - - // Select new VolumeAttributesClass - cy.byTestID('modify-vac-dropdown').click(); - cy.byTestID('console-select-item').contains(TEST_VAC_HIGH_IOPS).click(); - modal.submit(); - modal.shouldBeClosed(); - - // Verify requested VAC updated to new value - cy.byLegacyTestID('pvc-requested-vac', { timeout: 30000 }).should( - 'contain.text', - TEST_VAC_HIGH_IOPS, - ); - - // Verify current VAC updated to new value - cy.byLegacyTestID('pvc-current-vac', { timeout: 30000 }).should( - 'contain.text', - TEST_VAC_HIGH_IOPS, - ); - }); - - it('attempts invalid VAC modification and verifies error alert', () => { - cy.visit(`/k8s/ns/${testName}/persistentvolumeclaims/${TEST_PVC}`); - detailsPage.isLoaded(); - - // Open Modify VolumeAttributesClass modal and select invalid VAC - detailsPage.clickPageActionFromDropdown('Modify VolumeAttributesClass'); - modal.shouldBeOpened(); - cy.byTestID('modify-vac-dropdown').click(); - cy.byTestID('console-select-item').contains(TEST_VAC_INVALID).click(); - modal.submit(); - modal.shouldBeClosed(); - - // Verify requested VAC updated to invalid value - cy.byLegacyTestID('pvc-requested-vac', { timeout: 30000 }).should( - 'contain.text', - TEST_VAC_INVALID, - ); - - // Verify current VAC remains at previous valid value - cy.byLegacyTestID('pvc-current-vac').should('exist'); - cy.byLegacyTestID('pvc-current-vac').should('contain.text', TEST_VAC_HIGH_IOPS); - - // Verify error alert appears after CSI driver rejects modification - cy.byLegacyTestID('vac-error-alert', { timeout: 60000 }).should('be.visible'); - cy.byLegacyTestID('vac-error-alert').should( - 'contain.text', - 'VolumeAttributesClass modification failed', - ); - }); - }); -} else { - describe('Skipping VolumeAttributesClass Tests', () => { - it('requires AWS platform with EBS CSI driver', () => {}); - }); -} diff --git a/frontend/packages/integration-tests/tsconfig.json b/frontend/packages/integration-tests/tsconfig.json deleted file mode 100644 index 98392714895..00000000000 --- a/frontend/packages/integration-tests/tsconfig.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "compilerOptions": { - "types": ["cypress"], - "jsx": "react-jsx" - }, - "include": ["../../node_modules/cypress", "**/*.ts"] -} diff --git a/frontend/packages/integration-tests/views/common.ts b/frontend/packages/integration-tests/views/common.ts deleted file mode 100644 index 78966c17229..00000000000 --- a/frontend/packages/integration-tests/views/common.ts +++ /dev/null @@ -1,23 +0,0 @@ -export const resourceStatusShouldContain = (desiredStatus: string, options?: any) => - cy.contains('[data-test="status-text"]', desiredStatus, options); - -export const projectDropdown = { - shouldExist: () => cy.byLegacyTestID('namespace-bar-dropdown').should('exist'), - selectProject: (projectName: string) => { - cy.reload(); - cy.byLegacyTestID('namespace-bar-dropdown').contains('Project:').click(); - cy.byTestID('showSystemSwitch').check(); - cy.byTestID('dropdown-menu-item-link').contains(projectName).click(); - // TODO - remove and fix properly - // eslint-disable-next-line cypress/no-unnecessary-waiting - cy.wait(3000); - }, - shouldContain: (name: string) => - // eslint-disable-next-line cypress/no-unnecessary-waiting - cy.byLegacyTestID('namespace-bar-dropdown').contains(name).should('exist').wait(3000), - shouldNotContain: (name: string) => - cy.byLegacyTestID('namespace-bar-dropdown').should('not.contain', name), - shouldNotExist: () => cy.byLegacyTestID('namespace-bar-dropdown').should('not.exist'), -}; - -export const isLocalDevEnvironment = Cypress.config('baseUrl').includes('localhost'); diff --git a/frontend/packages/integration-tests/views/details-page.ts b/frontend/packages/integration-tests/views/details-page.ts deleted file mode 100644 index 2f9f6da209d..00000000000 --- a/frontend/packages/integration-tests/views/details-page.ts +++ /dev/null @@ -1,32 +0,0 @@ -export const detailsPage = { - titleShouldContain: (title: string) => { - cy.get('[data-test="page-heading"]', { timeout: 30000 }).should('exist'); - return cy.get('[data-test="page-heading"]').contains(title, { timeout: 30000 }); - }, - sectionHeaderShouldExist: (sectionHeading: string) => - cy.get(`[data-test-section-heading="${sectionHeading}"]`).should('exist'), - labelShouldExist: (labelName: string) => cy.byTestID('label-list').contains(labelName), - clickPageActionFromDropdown: (actionID: string) => { - cy.byLegacyTestID('actions-menu-button').click(); - cy.byTestActionID(actionID).click(); - }, - clickPageActionButton: (action: string) => { - cy.byLegacyTestID('details-actions').contains(action).click(); - }, - isLoaded: () => { - cy.byTestID('skeleton-detail-view').should('not.exist'); - cy.get('[data-test-id="resource-title"]', { timeout: 30000 }).should('not.be.empty'); - }, - breadcrumb: (breadcrumbIndex: number) => cy.byLegacyTestID(`breadcrumb-link-${breadcrumbIndex}`), - selectTab: (name: string) => { - cy.byLegacyTestID(`horizontal-link-${name}`).should('exist').click(); - }, -}; - -export namespace DetailsPageSelector { - export const name = 'dd[data-test-selector="details-item-value__Name"]'; - export const namespace = 'dd[data-test-selector="details-item-value__Namespace"] a'; - export const sectionHeadings = '[data-test-section-heading]'; - export const itemLabels = 'dt'; - export const horizontalNavTabs = '.pf-v6-c-tabs__item'; -} diff --git a/frontend/packages/integration-tests/views/environment.ts b/frontend/packages/integration-tests/views/environment.ts deleted file mode 100644 index cab2c42458f..00000000000 --- a/frontend/packages/integration-tests/views/environment.ts +++ /dev/null @@ -1,57 +0,0 @@ -const option = '[data-test="console-select-item"]'; - -export const environment = { - isLoaded: () => { - cy.byTestID('pairs-list-name').should('exist'); - cy.byTestID('environment-save').should('be.enabled'); - }, - addVariable: (key: string, value: string) => { - environment.isLoaded(); - cy.byTestID('pairs-list-name').clear(); - cy.byTestID('pairs-list-name').type(key); - cy.byTestID('pairs-list-value').clear(); - cy.byTestID('pairs-list-value').type(value); - cy.byTestID('environment-save').click(); - }, - addVariableFrom: (resourceName: string, resourcePrefix?: string, getExactResource?: boolean) => { - environment.isLoaded(); - cy.get('.value-from button').click().byTestID('console-select-search-input').type(resourceName); - if (getExactResource) { - cy.get(option).find('.co-resource-item__resource-name').contains(resourceName).click(); - } else { - cy.get(option).first().click(); - } - if (resourcePrefix) { - cy.byLegacyTestID('env-prefix').clear().type(resourcePrefix); - } - cy.byTestID('environment-save').click(); - }, - deleteVariable: () => { - environment.isLoaded(); - cy.byTestID('delete-button').first().click(); - cy.byTestID('environment-save').click(); - }, - deleteFromVariable: () => { - environment.isLoaded(); - cy.byLegacyTestID('pairs-list__delete-from-btn').click(); - cy.byTestID('environment-save').click(); - }, - validateKeyAndValue: (key: string, value: string, isPresent: boolean) => { - if (isPresent) { - cy.byTestID('pairs-list-name').should('have.value', key); - cy.byTestID('pairs-list-value').should('have.value', value); - } else { - cy.byTestID('pairs-list-name').should('not.have.value', key); - cy.byTestID('pairs-list-value').should('not.have.value', value); - } - }, - validateValueFrom: (valueFrom: string, prefix: string, isPresent: boolean) => { - if (isPresent) { - cy.get('.co-resource-item__resource-name').last().should('have.text', valueFrom); - cy.byLegacyTestID('env-prefix').should('have.value', prefix); - } else { - cy.get('.co-resource-item__resource-name').last().should('have.text', 'container'); - cy.byLegacyTestID('env-prefix').should('have.value', ''); - } - }, -}; diff --git a/frontend/packages/integration-tests/views/form.ts b/frontend/packages/integration-tests/views/form.ts deleted file mode 100644 index 93ee5c65d05..00000000000 --- a/frontend/packages/integration-tests/views/form.ts +++ /dev/null @@ -1,2 +0,0 @@ -export const submitButton = 'button[type=submit]'; -export const refreshWebConsoleLink = 'refresh-web-console'; diff --git a/frontend/packages/integration-tests/views/labels.ts b/frontend/packages/integration-tests/views/labels.ts deleted file mode 100644 index 7e1a73d2fca..00000000000 --- a/frontend/packages/integration-tests/views/labels.ts +++ /dev/null @@ -1,6 +0,0 @@ -export const labels = { - inputLabel: (label: string) => cy.byTestID('tags-input').type(`${label}{enter}`), - confirmDetailsPageLabelExists: (label: string) => cy.byTestID('label-key').contains(label), - clickDetailsPageLabel: () => cy.byTestID('label-key').click(), - chipExists: (label: string) => cy.get('#search-toolbar').contains(label).should('exist'), -}; diff --git a/frontend/packages/integration-tests/views/list-page.ts b/frontend/packages/integration-tests/views/list-page.ts deleted file mode 100644 index 7ce48c07f03..00000000000 --- a/frontend/packages/integration-tests/views/list-page.ts +++ /dev/null @@ -1,172 +0,0 @@ -import * as yamlEditor from './yaml-editor'; - -export const listPage = { - titleShouldHaveText: (title: string) => - cy.get('[data-test="page-heading"] h1').contains(title).should('exist'), - clickCreateYAMLdropdownButton: () => { - cy.byTestID('item-create') - .click() - .get('body') - .then(($body) => { - if ($body.find(`[data-test-dropdown-menu="yaml"]`).length) { - cy.get(`[data-test-dropdown-menu="yaml"]`).click(); - } - }); - }, - isCreateButtonVisible: () => { - cy.byTestID('item-create').should('be.visible'); - }, - clickCreateYAMLbutton: () => { - cy.byTestID('item-create').click({ force: true }); - }, - createNamespacedResourceWithDefaultYAML: (resourceType: string, testName: string) => { - cy.visit(`/k8s/ns/${testName}/${resourceType}`); - listPage.clickCreateYAMLbutton(); - cy.byTestID('resource-sidebar').should('exist'); - yamlEditor.isLoaded(); - yamlEditor.clickSaveCreateButton(); - }, - filter: { - byName: (name: string) => { - cy.byTestID('name-filter-input').clear().type(name); - }, - clickSearchByDropdown: () => { - cy.byTestID('filter-toolbar').within(() => { - cy.byTestID('console-select-menu-toggle').click(); - }); - }, - clickFilterDropdown: () => { - cy.byLegacyTestID('filter-dropdown-toggle').within(() => { - cy.get('button').click(); - }); - }, - by: (rowFilter: string) => { - cy.byTestID('filter-toolbar').within(() => { - cy.byLegacyTestID('filter-dropdown-toggle') - .find('button') - .as('filterDropdownToggleButton') - .click(); - }); - /* PF Filter dropdown menu items are: -
  • -