ci: define basic e2e tests - #86
Open
andyatmiami wants to merge 1 commit into
Open
Conversation
andyatmiami
force-pushed
the
test/e2e-cypress-tests
branch
2 times, most recently
from
April 29, 2026 20:13
cac2045 to
98aab9c
Compare
andyatmiami
force-pushed
the
notebooks-v2
branch
from
April 30, 2026 01:13
532de30 to
9280c63
Compare
andyatmiami
force-pushed
the
test/e2e-cypress-tests
branch
2 times, most recently
from
May 22, 2026 02:52
db15e3d to
3f74a3c
Compare
andyatmiami
force-pushed
the
test/e2e-cypress-tests
branch
4 times, most recently
from
May 22, 2026 03:44
b7aed52 to
624922e
Compare
Add a self-contained Cypress e2e test suite under testing/e2e/ that validates core user workflows against a real Kubernetes cluster. The suite runs two specs: a user creating a Workspace through the wizard, and an admin creating a WorkspaceKind via YAML upload. Kubernetes environment setup (namespace, RBAC, seed data) is handled programmatically via @kubernetes/client-node in Cypress plugin tasks rather than shell scripts and static YAML manifests. A global before() hook calls setupE2e() before any spec runs, making the test project self-contained with all dependencies co-located. The JupyterLab WorkspaceKind seed data references the controller's sample YAML directly to avoid maintaining duplicate fixtures. Authentication is simulated by injecting the kubeflow-userid header via cy.intercept(), with separate loginAsAdmin and loginAsUser helpers that map to distinct RBAC policies (cluster-scoped admin vs namespace-scoped user). Custom Cypress commands (k8sGet, k8sDelete, k8sWaitForResource) provide a thin wrapper over the Kubernetes API for in-test assertions and cleanup. Each spec deletes resources it creates in afterEach() hooks. Page objects encapsulate UI interactions for the workspaces list, workspace creation wizard, workspace kinds list, and workspace kind creation form. The CI workflow deploys all three components (controller, backend, frontend) to a Kind cluster with Istio and cert-manager, runs a sanity check to verify endpoints respond, then executes Cypress with the gateway port-forwarded. The frontend is built in standalone deployment mode via .env.production.local so it serves without the central dashboard. Test artifacts (videos, screenshots) are uploaded on failure. The Makefile provides an `e2e` convenience target that chains setup-cluster, deploy-all, sanity-check, and local-e2e for local development. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> Signed-off-by: Andy Stoneberg <astonebe@redhat.com>
andyatmiami
force-pushed
the
test/e2e-cypress-tests
branch
from
May 22, 2026 03:56
624922e to
48df9ca
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.