Skip to content

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

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

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

Conversation

@wreality

@wreality wreality commented Apr 8, 2026

Copy link
Copy Markdown
Contributor

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

netlify Bot commented Apr 8, 2026

Copy link
Copy Markdown

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

cypress Bot commented Apr 12, 2026

Copy link
Copy Markdown

Collaborative Community Review Upstream    Run #13871

Run Properties:  status check passed Passed #13871  •  git commit eb4ce42938 ℹ️: Merge e7e21cca984d13413067a87a21842133a3c90ecd into cf681cdf0a508fb59efe62df043c...
Project Collaborative Community Review Upstream
Branch Review chore/cypress-reorg
Run status status check passed Passed #13871
Run duration 03m 05s
Commit git commit eb4ce42938 ℹ️: Merge e7e21cca984d13413067a87a21842133a3c90ecd into cf681cdf0a508fb59efe62df043c...
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 1
Tests that did not run due to a failure in a mocha hook  Skipped 0
Tests that passed  Passing 114
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.

@gmeben gmeben left a comment

Copy link
Copy Markdown
Contributor

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 3 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.
# Conflicts:
#	.github/workflows/testing.yml
#	.lando.extras.yml
#	client/eslint.config.js
#	client/package.json
#	client/yarn.lock
#	package.json
@netlify

netlify Bot commented Jul 4, 2026

Copy link
Copy Markdown

Deploy Preview for pilcrow-docs ready!

Name Link
🔨 Latest commit c98c120
🔍 Latest deploy log https://app.netlify.com/projects/pilcrow-docs/deploys/6a49830dd97f8b0008412d5c
😎 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.

@github-actions

github-actions Bot commented Jul 4, 2026

Copy link
Copy Markdown
Contributor

Fallow audit report

No GitHub PR/MR findings.

Generated by fallow.

@github-actions

github-actions Bot commented Jul 4, 2026

Copy link
Copy Markdown
Contributor

Fallow audit report

0 inline findings selected for GitHub review.

@github-actions

github-actions Bot commented Jul 4, 2026

Copy link
Copy Markdown
Contributor

Diff Coverage

Diff: origin/master...HEAD, staged and unstaged changes

No lines with coverage information in this diff.

@codecov

codecov Bot commented Jul 4, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 65.67%. Comparing base (cf681cd) to head (e7e21cc).
✅ All tests successful. No failed tests found.

Additional details and impacted files
@@            Coverage Diff             @@
##           master    #2257      +/-   ##
==========================================
+ Coverage   65.60%   65.67%   +0.07%     
==========================================
  Files         327      327              
  Lines        7413     7430      +17     
  Branches      703      703              
==========================================
+ Hits         4863     4880      +17     
  Misses       2439     2439              
  Partials      111      111              
Flag Coverage Δ
backend 81.65% <100.00%> (+0.13%) ⬆️
client 58.31% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

Files with missing lines Coverage Δ
backend/app/Policies/UserPolicy.php 100.00% <100.00%> (ø)

@github-actions

github-actions Bot commented Jul 4, 2026

Copy link
Copy Markdown
Contributor

Diff Coverage

Diff: origin/master...HEAD, staged and unstaged changes

  • backend/app/Policies/UserPolicy.php (100%)

Summary

  • Total: 24 lines
  • Missing: 0 lines
  • Coverage: 100%

wreality added 2 commits July 4, 2026 18:53
The email redaction added in #2286 left review coordinators unable to
reinvite staged reviewers: the reinvite mutations are authorized for
coordinators (updateReviewers / updateReviewCoordinators) but take the
target's email as input, which the coordinator could no longer read.

Extend UserPolicy::viewEmail so a coordinator can see emails of
reviewers and fellow coordinators on submissions they coordinate.
Submitters on those submissions stay redacted.
Title editing became author-only and draft-only when updateSubmission
was dissolved, but the only renaming UI (SubmissionTitle on the details
page) is unreachable for drafts — the router redirects draft details to
the draft page, which has no title editor. Skip the test until renaming
has a working surface again.
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