Skip to content

Update expected UI screenshots for the new headless Chrome (Node 24 / Puppeteer 24) - #269

Merged
sgiehl merged 4 commits into
prepare6xfrom
dev-20341
Jul 24, 2026
Merged

Update expected UI screenshots for the new headless Chrome (Node 24 / Puppeteer 24)#269
sgiehl merged 4 commits into
prepare6xfrom
dev-20341

Conversation

@sgiehl

@sgiehl sgiehl commented Jul 21, 2026

Copy link
Copy Markdown
Member

Updates the expected UI test screenshots for the new headless Chrome used by the modernized screenshot-testing harness (Node 24 / Puppeteer 24).

This is the submodule counterpart of the core migration PR and must be merged together with it:
matomo-org/matomo#24677

The screenshot changes are rendering drift from the new headless Chrome (identical content, minor line-height/anti-aliasing shifts); each was reviewed against the previous expected before syncing.

Checklist

  • [✔] I have understood, reviewed, and tested all AI outputs before use
  • [✔] All AI instructions respect security, IP, and privacy rules

sgiehl added 3 commits July 21, 2026 14:24
The reloaded-alert-condition tests open and expand the condition dropdown via jQuery
(page.evaluate), so the real mouse cursor is left resting over the dropdown from an
earlier click. Under Chrome 149 that gives whichever option is under the cursor a stray
:hover highlight in the screenshot. Move the mouse to a neutral position before capturing
so no option is highlighted.
Match the Node 24 / Puppeteer 24 screenshot-testing stack; the UI job was still pinned to Node 16.
@sgiehl
sgiehl marked this pull request as ready for review July 24, 2026 08:53
@sgiehl
sgiehl merged commit b333d5d into prepare6x Jul 24, 2026
13 checks passed
@sgiehl
sgiehl deleted the dev-20341 branch July 24, 2026 08:55
@sgiehl sgiehl mentioned this pull request Aug 9, 2026
sgiehl added a commit that referenced this pull request Aug 10, 2026
* Prepare for Matomo 6

Bump plugin version to 6.0.0 and require Matomo >=6.0.0-b1,<7.0.0-b1.

* Run tests on same PHP versions as core (8.1, 8.5)

* Rebuild Vue dist files with the Vite build for Matomo 6 & fix ESLint violations (#266)

* Adapt Vue sources to the Vite build and rebuild dist for Matomo 6

Replaces a value re-export/import of a type-only entity so the esbuild-based Vite build can bundle it, and rebuilds the Vue dist files with the new toolchain.

* Rebuild Vue dist files for Vue 3.5

* Fix CustomAlerts Vue declaration type errors

Export the Alert interface and type the alerts list, replace duplicate v-model
model-value bindings with update handlers, drop a stray updateAlert arg, and
coerce optional alert fields.

* Run plugin tests against MySQL 8.0 and MariaDB 10.6 (#267)

* Run plugin tests against MySQL 8.0 and MariaDB 10.6

The workflow inherited the shared action's MySQL 5.7 default, which is below
Matomo's new minimum. Pin the database-backed jobs to the supported floor:
PluginTests now runs a MySQL 8.0 + MariaDB 10.6 matrix, and the UI/JS jobs run
on MySQL 8.0.

* Only upload plugin test artifacts for the MySQL matrix leg

PluginTests runs a MySQL + MariaDB matrix; the upload-artifacts condition
matched both legs and uploaded twice. Restrict the upload to the MySQL leg.

* Update expected UI screenshots for the new headless Chrome (Node 24 / Puppeteer 24) (#269)

* Update expected UI screenshots for the new headless Chrome (Node 24 / Puppeteer 24)

* Move mouse off the alert-condition dropdown before capturing

The reloaded-alert-condition tests open and expand the condition dropdown via jQuery
(page.evaluate), so the real mouse cursor is left resting over the dropdown from an
earlier click. Under Chrome 149 that gives whichever option is under the cursor a stray
:hover highlight in the screenshot. Move the mouse to a neutral position before capturing
so no option is highlighted.

* Sync corrected alert-condition screenshots (no stray dropdown hover)

* Run the plugin UI tests on Node 24

Match the Node 24 / Puppeteer 24 screenshot-testing stack; the UI job was still pinned to Node 16.

* Update UI screenshots (#270)

Teal brand screenshots on 6.x-dev plugin base; synced from matomo-org/matomo run 30405694397.

* Remove the unminified Vue UMD bundle (#273)

Matomo's Vue build no longer emits <Plugin>.umd.js. Only the minified
CustomAlerts.umd.min.js is ever served: PluginUmdAssetFetcher looks exclusively for
.umd.min.js, and development mode uses the .development.umd.js produced by
vue:build --watch.

The unminified bundle was a leftover from Vue CLI, whose lib build emitted it
alongside the minified one for free. See matomo-org/matomo#25027.

* Add changelog entry for Matomo 6 compatibility [ignore_release]

* Use the matomo6 PHP version aliases in the tests workflow [ignore_release]

The workflow pinned 8.1 and 8.5 as literals, so it would keep testing those
versions after core moves its supported range. matomo6_min_php and
matomo6_max_php resolve to core's current bounds in the shared action, which
keeps the matrix, the UI job and the artifact-upload condition in step with
core. The generate:test-action comment in the header carries the aliases too,
so regenerating the file reproduces it.

* Analyse against PHP 8.1 and tolerate the CI-only exclude path [ignore_release]

phpVersion was still 70200, well below Matomo 6's PHP 8.1 floor, so PHPStan
reasoned about the code as if the 7.2 runtime rules applied. PHPStan 2 also
fails hard on excludePaths entries that are absent from the checkout, and
github-action-tests is only ever checked out by the workflow, so mark it
optional with (?).

* Import type-only symbols with import type [ignore_release]

CoreHome now exports SiteRef as a type, and Alert is an interface exported from
ListAlerts.vue. Both were pulled in through value imports, which the Vite
toolchain rejects under isolatedModules because esbuild compiles each module in
isolation and cannot tell a type re-export from a value one. The emitted bundle
is unchanged.

---------

Co-authored-by: Thomas ZILLIOX <thomas.zilliox@innocraft.com>
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.

1 participant