Skip to content

chore(cypress): extract cypress into top-level package and upgrade to v15#2257

Open
wreality wants to merge 11 commits into
masterfrom
chore/cypress-reorg
Open

chore(cypress): extract cypress into top-level package and upgrade to v15#2257
wreality wants to merge 11 commits into
masterfrom
chore/cypress-reorg

Conversation

@wreality
Copy link
Copy Markdown
Contributor

@wreality wreality commented Apr 8, 2026

Summary

Reorganizes cypress tests into their own top-level cypress/ package so they can be installed and run independently of the Quasar client build, then upgrades cypress to v15.

  • Extract client/test/cypresscypress/ with its own package.json, yarn.lock, eslint config, and cypress.config.cjs. Removes cypress deps and eslint overrides from client/. Updates root package.json, .lando.extras.yml, the e2e workflow, and docs to reference the new path.
  • Upgrade cypress to v15, fix browser launch config, and resolve SSL / node engine errors in the cypress container.
  • CI add a lint-cypress job and a cypress path filter so cypress-only changes trigger the right jobs.

Test plan

  • lando rebuild brings up the cypress service cleanly
  • cd cypress && lando cypress run passes
  • cd cypress && yarn lint passes
  • CI lint-cypress job runs on cypress-touching PRs
  • e2e workflow (do-test-e2e) runs cypress from cypress/

@netlify
Copy link
Copy Markdown

netlify Bot commented Apr 8, 2026

Deploy Preview for pilcrow-docs ready!

Name Link
🔨 Latest commit b70a1fa
🔍 Latest deploy log https://app.netlify.com/projects/pilcrow-docs/deploys/69fa28443c0d1900080e5ea3
😎 Deploy Preview https://deploy-preview-2257--pilcrow-docs.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

Move cypress tests from client/test/cypress to a top-level cypress/
directory with its own package.json so cypress can be installed and
run independently of the Quasar client build.

- New cypress/ package with its own eslint config and cypress.config.cjs
- Remove cypress deps and eslint overrides from client/
- Drop test/cypress from client/tsconfig.json exclude
- Update root package.json, .lando.extras.yml, e2e workflow and docs
  to reference the new cypress/ path
- Bump cypress to v15 in cypress/package.json and lockfile
- Fix browser launch config in cypress.config.cjs for v15
- Resolve SSL and node engine errors in the cypress container
- Update do-test-e2e workflow for the new cypress version
Add a lint-cypress job that runs yarn lint in the new cypress/
package on PRs touching cypress files, and wire a cypress path
filter into the changes job.
@wreality wreality force-pushed the chore/cypress-reorg branch from 7467695 to 4ac72b7 Compare April 12, 2026 21:12
@cypress
Copy link
Copy Markdown

cypress Bot commented Apr 12, 2026

Collaborative Community Review Upstream    Run #13869

Run Properties:  status check passed Passed #13869  •  git commit 25de3dc524 ℹ️: Merge 4f27435f2db18645eafb5215b7e88848bd71e052 into 1de383c5f2d79be096ad46df8a1c...
Project Collaborative Community Review Upstream
Branch Review chore/cypress-reorg
Run status status check passed Passed #13869
Run duration 02m 58s
Commit git commit 25de3dc524 ℹ️: Merge 4f27435f2db18645eafb5215b7e88848bd71e052 into 1de383c5f2d79be096ad46df8a1c...
Committer Brian Adams
View all properties for this run ↗︎

Test results
Tests that failed  Failures 0
Tests that were flaky  Flaky 0
Tests that did not run due to a developer annotating a test with .skip  Pending 0
Tests that did not run due to a failure in a mocha hook  Skipped 0
Tests that passed  Passing 115
View all changes introduced in this branch ↗︎

…handling

The build-image action's version output is empty because
pilcrow-toolkit's parse-build-output never sets it. Work around this
by extracting the version from the tags output instead.

Also fix the resetDb cypress task which crashed the config file on
GraphQL errors due to a missing return before reject().
Comment thread cypress/cypress.config.cjs Dismissed
The fpm image doesn't include the SSL cert verification fix that was
added to the unit-test Dockerfile stage. Add it at runtime in the
start-stack action before running migrate:fresh.
Sanctum needs the port in stateful domains for non-standard ports.
Without this, session cookies aren't sent on localhost:8888 requests,
causing all authenticated tests to fail.
Copy link
Copy Markdown
Contributor

@gmeben gmeben left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I can't get cypress to install or run. cd cypress && lando cypress run results in the error:

error Command "cypress" not found.

cypress/base:18.16.1 is Node 18, but Cypress 15 requires Node 20+.
The --ignore-engines flag silenced the install-time check but left a
broken install (missing node_modules/.bin/cypress), which surfaced as
`error Command "cypress" not found.` from `lando cypress run`.

Bump the service to node:22 / cypress/base:22.20.0 to match the CI
workflow's Node 22, and drop the no-longer-needed --ignore-engines.
Update the matching snippet in docs/developers/testing.md.
@wreality
Copy link
Copy Markdown
Contributor Author

Bumped the service to Node 22 / cypress/base:22.20.0 in 96ac7d2. To pick up the change locally, you'll likely need to disable and re-enable the cypress extra so the old template isn't stuck in your .lando.local.yml:

lando extras disable cypress
lando extras enable cypress
lando rebuild -y -s cypress
lando cypress run

wreality added 2 commits May 5, 2026 13:23
# Conflicts:
#	client/package.json
#	client/yarn.lock
Carries forward the axe-core bump from master (originally in
client/package.json) into cypress/, where the dep now lives after
the cypress extraction.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants