Skip to content

Fix: bump testcafe to ^3.7.5 for Chrome 149 compatibility (PER-9755)#32

Merged
Shivanshu-07 merged 3 commits into
masterfrom
fix/PER-9755-testcafe-chrome149
Jul 1, 2026
Merged

Fix: bump testcafe to ^3.7.5 for Chrome 149 compatibility (PER-9755)#32
Shivanshu-07 merged 3 commits into
masterfrom
fix/PER-9755-testcafe-chrome149

Conversation

@Sriram567

Copy link
Copy Markdown
Contributor

Problem

The Tests job fails deterministically on GitHub-hosted runners now that they ship Chrome 149. The run hangs ~6 minutes (6m23s / 6m28s / 6m30s across recent runs), then:

Chrome 149.0.0.0 browser disconnected ...
[percy] Snapshot command was not called

Root cause

testcafe@3.7.2 is pinned in package-lock.json (CI uses npm ci, which installs the exact lockfile version regardless of the ^3.7.2 range). TestCafe 3.0+ drives Chromium over native CDP, and 3.7.2 cannot establish a CDP connection to Chrome 149 — so it hits TestCafe's browser-connection timeout and the tests never execute. This is environmental (runner Chrome upgrade) × a stale TestCafe pin; percy exec / @percy/testcafe are not at fault (the disconnect is entirely inside TestCafe's automation layer). Same pattern as DevExpress/testcafe#8367.

Note: the recent "green" master Tests run is a red herring — that job finished in ~12s (Run-tests step = 1s), i.e. it never ran a real testcafe session.

Fix

  • package.json: testcafe ^3.7.2^3.7.5 (3.7.4 bumped testcafe-hammerhead; 3.7.5 is latest, published 2026-06-16).
  • Regenerated package-lock.json so npm ci installs 3.7.5 (the caret alone wouldn't help while the lockfile pinned 3.7.2).
  • @percy/testcafe peer dep is testcafe: ">=1", so the bump is safe — no Percy-side change.

Validation

Please let CI run the full Tests job and confirm it executes a real ~6-min testcafe run and goes green on Chrome 149 (rather than the 1s no-op). If green, the same bump should be applied to the other TestCafe sample repos.

Fixes PER-9755.

🤖 Generated with Claude Code

TestCafe 3.7.2 (pinned in the lockfile) cannot establish a native-automation
CDP connection to Chrome 149 now shipping on GitHub-hosted runners, so the
`Tests` job hangs ~6 minutes, reports "Chrome 149.0.0.0 browser disconnected",
and the snapshot command never runs ([percy] Snapshot command was not called).

Bumps testcafe to ^3.7.5 (3.7.4 bumped testcafe-hammerhead; 3.7.5 is the latest)
and regenerates package-lock.json so `npm ci` installs 3.7.5. `@percy/testcafe`
peer dep is `testcafe >=1`, so no Percy-side change is needed.

Fixes PER-9755.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@Sriram567 Sriram567 requested a review from a team as a code owner June 26, 2026 02:43
Sriram567 and others added 2 commits June 29, 2026 08:55
The basic `Tests` job (.github/workflows/test.yml) pinned Node 14, which is
below testcafe's engine floor (3.7.2 needs >=16, 3.7.5 needs >=20). On Node 14
`percy exec -- testcafe` no-ops (<1s, no output, exit 0) so 0 snapshots reach
Percy and the Percy check fails with "no snapshots were uploaded".

Bumps node-version 14 -> 20 (satisfies testcafe@3.7.5 engines), refreshes the
deprecated actions (checkout@v3->v4, setup-node@v1->v4, cache@v3->v4), and fixes
the cache key (package-lock.lock -> package-lock.json, node-14 -> node-20).

Refs PER-9755.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…de 20 + pinned deps)

The advanced job uploaded 0 snapshots: every percySnapshot failed with testcafe's
"Cannot prepare tests ... eval code cannot contain async/await syntax" → Percy build
failed no_snapshots and masked the green basic build (shared commit-status context).

Both jobs use identical @percy/testcafe 1.0.4 + testcafe 3.7.5; the only deltas were the
advanced env: Node 18 (vs 20) and unpinned deps (npm install pulled @percy/cli 1.32.2 vs
the basic job's proven 1.30.11). This aligns advanced to the basic job's working set:
- advanced.yml: Node 18 -> 20, setup-node@v3->v4, checkout@v3->v4, npm install -> npm ci
- advanced/package.json: pin @percy/cli 1.30.11, @percy/testcafe 1.0.4, testcafe 3.7.5
- add advanced/package-lock.json so npm ci is reproducible (no more silent drift)

Refs PER-9755 / PER-8195.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@Shivanshu-07 Shivanshu-07 merged commit ae12a7e into master Jul 1, 2026
9 checks passed
@Shivanshu-07 Shivanshu-07 deleted the fix/PER-9755-testcafe-chrome149 branch July 1, 2026 05:11
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.

2 participants