Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

E2E test suite for Che 7 - NodeJS version #15103

Closed
10 tasks
l0rd opened this issue Nov 5, 2019 · 8 comments
Closed
10 tasks

E2E test suite for Che 7 - NodeJS version #15103

l0rd opened this issue Nov 5, 2019 · 8 comments
Labels
area/qe kind/enhancement A feature request - must adhere to the feature request template. kind/epic A long-lived, PM-driven feature request. Must include a checklist of items that must be completed. lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. severity/P1 Has a major impact to usage or development of the system.
Milestone

Comments

@l0rd
Copy link
Contributor

l0rd commented Nov 5, 2019

E2E test suite for Che 7 - NodeJS version

This is the description of an E2E UI testing of Eclipse Che 7 similar to #12728 but for NodeJS applications.

E2E Test Script

1 - Deploy Che on minikube using the operator with authentication enabled

Steps

  • Install minikube
  • Pre-pull docker images needed by the workspace:
    • Usual ones
      • quay.io/eclipse/che-operator:nightly
      • centos/postgresql-96-centos7:9.6
      • eclipse/che-keycloak:nightly
      • eclipse/che-server:nightly
      • busybox
      • quay.io/eclipse/che-devfile-registry:nightly
      • quay.io/eclipse/che-plugin-registry:nightly
      • registry.access.redhat.com/ubi8-minimal:8.0-213
      • quay.io/eclipse/che-jwtproxy:dbd0578
      • eclipse/che-init-plugin-broker:v0.24
      • eclipse/che-unified-plugin-broker:v0.24
      • docker.io/eclipse/che-theia-endpoint-runtime-binary:next
      • docker.io/eclipse/che-machine-exec:next
      • docker.io/eclipse/che-theia:next
    • Specific to the workspace
      • mariolet/nodejs-sample-backend
      • mariolet/nodejs-sample-frontend
      • docker.io/eclipse/che-remote-plugin-node:next
  • Deploy Che: run chectl server:start --installer=operator --platform=minikube
  • Create a new Che user and login as that user

Success criteria

  • Minikube status is running
  • Che, Keycloak and Postre are Running
  • It's possible to login as a new user and access the dashboard
  • Images are pulled

Blockers and workarounds

2 - Generate a devfile from a running application

Steps

  • 1 - Deploy Guestbook:
REPO="l0rd/nodejs-sample"
BRANCH="master"
K8S_MANIFEST_DIR="https://raw.githubusercontent.com/${REPO}/${BRANCH}/kubernetes-manifests"
NAMESPACE="nodejs-sample"
kubectl create namespace "${NAMESPACE}"
kubectl apply -n "${NAMESPACE}" -f "${K8S_MANIFEST_DIR}"/mongo.deployment.yaml
kubectl apply -n "${NAMESPACE}" -f "${K8S_MANIFEST_DIR}"/mongo.service.yaml
kubectl apply -n "${NAMESPACE}" -f "${K8S_MANIFEST_DIR}"/guestbook-backend.deployment.prod.yaml
kubectl apply -n "${NAMESPACE}" -f "${K8S_MANIFEST_DIR}"/guestbook-backend.service.yaml
kubectl apply -n "${NAMESPACE}" -f "${K8S_MANIFEST_DIR}"/guestbook-frontend.deployment.prod.yaml
kubectl apply -n "${NAMESPACE}" -f "${K8S_MANIFEST_DIR}"/guestbook-frontend.service.yaml
  • 2 - Generate a devfile for the development of that application:
chectl devfile:generate \
        --namespace="${NAMESPACE}" \
        --language=typescript \
        --git-repo='https://github.com/l0rd/nodejs-sample.git' \
        --plugin='{"type": "chePlugin", "id": "redhat/vscode-yaml/latest"}' > guestbook.devfile.yaml

Success criteria

  • The CRUD application is responding
  • A valid devfile is generated

Blockers and workarounds

3 - Start a Workspace from a devfile

Steps

  • 1 - Start a workspace using a devfile
TOKEN=<Che OIDC token>
DEVFILE=https://raw.githubusercontent.com/l0rd/nodejs-sample/master/devfile.yaml
chectl workspace:start --access-token="${TOKEN}" --devfile="${DEVFILE}"

Success criteria

  • Workspace started successfully
  • Workspace is started in less than X seconds
  • Project is cloned
  • Typescript LS and Node debug adapter are initialized correctly
  • YAML LS is initialized correctly
  • Kubernetes tooling is initialized correctly
  • GitHub PR plugin is initialized correctly
  • Terminal work

Blockers and workarounds

4 - Use Typescript IDE features and the inner loop

Steps

  • 1 - Open a Javscript file, change some code, verify that error highlighting, code completion and code navigation work
  • 2 - Use the "Run frontend" task and and verify that port 8080 is proposed to be exposed and that the application is accessible and has the code change applied at step 1 is taken into account
  • 3 - Set a breakpoint in the frontend application and select Debug->Start Debugging to verify that the application stops at the breakpoint

Success criteria

  • Typescript Code completion, error highlighting and code navigation should work successfully
  • The provided "Run" task executes successfully and a pop-up ask to open the application URL
  • Changes done at step 4.1 should be applied
  • NodeJS Debugger should be able to attach successfully when selecting "Start Debugging".
  • NodeJS Debugger should be stop at a breakpoint and resume application execution when clicking on resume.

Blockers and workarounds

@l0rd l0rd added kind/enhancement A feature request - must adhere to the feature request template. severity/P1 Has a major impact to usage or development of the system. team/che-qe labels Nov 5, 2019
@rhopp rhopp added this to the Backlog - QE milestone Dec 4, 2019
@rhopp rhopp added the kind/epic A long-lived, PM-driven feature request. Must include a checklist of items that must be completed. label Dec 4, 2019
@rhopp rhopp added the area/qe label May 11, 2020
@che-bot
Copy link
Contributor

che-bot commented Jan 4, 2021

Issues go stale after 180 days of inactivity. lifecycle/stale issues rot after an additional 7 days of inactivity and eventually close.

Mark the issue as fresh with /remove-lifecycle stale in a new comment.

If this issue is safe to close now please do so.

Moderators: Add lifecycle/frozen label to avoid stale mode.

@che-bot che-bot added the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Jan 4, 2021
@rhopp
Copy link
Contributor

rhopp commented Jan 4, 2021

/remove-lifecycle stale

@che-bot che-bot removed the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Jan 4, 2021
@che-bot
Copy link
Contributor

che-bot commented Jul 19, 2021

Issues go stale after 180 days of inactivity. lifecycle/stale issues rot after an additional 7 days of inactivity and eventually close.

Mark the issue as fresh with /remove-lifecycle stale in a new comment.

If this issue is safe to close now please do so.

Moderators: Add lifecycle/frozen label to avoid stale mode.

@che-bot che-bot added the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Jul 19, 2021
@l0rd
Copy link
Contributor Author

l0rd commented Jul 20, 2021

@dmytro-ndp do you think you will be able to work on this or should I close the issue?

@che-bot che-bot closed this as completed Aug 9, 2021
@dmytro-ndp
Copy link
Contributor

@Katka92: does Hosted Che QE team have resources to automate this test execution?

@Katka92
Copy link
Contributor

Katka92 commented Aug 17, 2021

Hi @dmytro-ndp, I think this issue is for Hosted Che team (mainly @ScrewTSW and @Warfvf), but I'm not sure about the priority. Our goal now is to have green and stable currently existing tests and after that, we plan to cover other test cases. If the priority of this issue is higher, please let me know.

@che-bot che-bot closed this as completed Sep 2, 2021
@dmytro-ndp dmytro-ndp reopened this Sep 2, 2021
@che-bot che-bot closed this as completed Sep 20, 2021
@l0rd l0rd reopened this Sep 20, 2021
@l0rd
Copy link
Contributor Author

l0rd commented Sep 20, 2021

/remove-lifecycle stale

@che-bot che-bot removed the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Sep 20, 2021
@che-bot
Copy link
Contributor

che-bot commented May 9, 2022

Issues go stale after 180 days of inactivity. lifecycle/stale issues rot after an additional 7 days of inactivity and eventually close.

Mark the issue as fresh with /remove-lifecycle stale in a new comment.

If this issue is safe to close now please do so.

Moderators: Add lifecycle/frozen label to avoid stale mode.

@che-bot che-bot added the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label May 9, 2022
@che-bot che-bot closed this as completed May 16, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/qe kind/enhancement A feature request - must adhere to the feature request template. kind/epic A long-lived, PM-driven feature request. Must include a checklist of items that must be completed. lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. severity/P1 Has a major impact to usage or development of the system.
Projects
None yet
Development

No branches or pull requests

6 participants