name: cypress-quick-start description: Use this skill when running, debugging, reproducing, or validating Cypress E2E tests in this repo, including the required ELECTRON_RUN_AS_NODE override.
Cypress Quick Start Skill
Trigger
Use when asked to run, debug, reproduce, or verify Cypress E2E tests.
Required Environment Detail
This environment often has ELECTRON_RUN_AS_NODE=1 set globally. If not overridden, Cypress fails with bad option: --no-sandbox or --smoke-test. Always prefix commands with ELECTRON_RUN_AS_NODE=.
Match the Cypress spec folder to its backend env file. Source .env before the lane env file when exporting variables for Cypress so the lane-specific values win:
set -a
. ./.env
. ./.env.cloud
set +a
Only specs that call cy.stubGoogleOAuthToken(...) need DEV_REFRESH_TOKEN_INFO or DEV_REFRESH_TOKEN. DEV_REFRESH_TOKEN_INFO must include only profile/email scopes; DEV_REFRESH_TOKEN must include BigQuery and storage scopes. Specs that use cy.setDevClaimsEmail(...) need the backend started with DEKART_DEV_CLAIMS=1, but they do not need Google refresh tokens unless they also stub OAuth.
Standard Workflow
- Ensure you are in repo root.
- Start local Postgres with
make up-and-down. - Start backend with the matching env file, for example
make server .env.cloud. - Start the frontend with
make client. - If Cypress binary is missing:
npx cypress install - Run the requested spec:
ELECTRON_RUN_AS_NODE= npx cypress run --spec "<spec-path>"
- Report: pass/fail, failing assertion, artifact paths (video/screenshot).
Canonical Commands
- Run cloud specs:
- backend:
make server .env.cloud - env:
set -a; . ./.env; . ./.env.cloud; set +a - Cypress:
ELECTRON_RUN_AS_NODE= npx cypress run --spec "cypress/e2e/cloud/*.cy.js"
- backend:
- Run Google OAuth specs against local Vite:
- backend:
set -a; . ./.env; . ./.env.googleoauth; set +a; DEKART_CORS_ORIGIN=http://localhost:3000 go run ./src/server/main.go - env:
set -a; . ./.env; . ./.env.googleoauth; set +a - Cypress:
ELECTRON_RUN_AS_NODE= npx cypress run --spec "cypress/e2e/google-oauth/*.cy.js"
- backend:
- Run one spec:
ELECTRON_RUN_AS_NODE= npx cypress run --spec "cypress/e2e/snowflake-s3/layerOrderRerunRegression.cy.js" - Run all Snowflake S3 specs:
ELECTRON_RUN_AS_NODE= npx cypress run --spec "cypress/e2e/snowflake-s3/*.cy.js" - Open interactive UI:
ELECTRON_RUN_AS_NODE= npx cypress open
Notes
- Base URL configured in
cypress.config.js(http://localhost:3000). - Layer-order regression spec:
cypress/e2e/snowflake-s3/layerOrderRerunRegression.cy.js - Prefer local server instances (
make server ...) for running local tests.