Skip to content

Add percent-of-total metric columns to system test expected files - #139

Draft
caddoo wants to merge 8 commits into
5.x-devfrom
dev-14950
Draft

Add percent-of-total metric columns to system test expected files#139
caddoo wants to merge 8 commits into
5.x-devfrom
dev-14950

Conversation

@caddoo

@caddoo caddoo commented Aug 4, 2026

Copy link
Copy Markdown

Companion to matomo-org/matomo#24983 (Matomo 6, DEV-14950), which adds always-on {metric}_percent_of_total columns to report rows in API responses.

These expected files only pass against a Matomo 6 core containing that change, so this PR stays draft until the core PR is merged. CI here may be red against older core branches.

Note the branch is based on the commit currently pinned by the matomo 6.x-dev submodule, not the tip of 5.x-dev, so the gitlink in the core PR advances cleanly.

Checklist

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

sgiehl and others added 8 commits July 9, 2026 14:43
Bump plugin version to 6.0.0 and require Matomo >=6.0.0-b1,<7.0.0-b1.
…violations (#134)

* 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 CustomVariables Vue declaration type errors

Export the usage-row interface, cast the readonly usage to the sort helper, and
coerce numeric translate args.
* Fix segmentMatchNONE test for MySQL 8.0

Comparing date/time segments against the placeholder string 'campaign'
(e.g. visitEndServerDate != 'campaign') is rejected by MySQL 8.0 as an
invalid DATE value; MySQL 5.7 tolerated it. Give each date/time segment a
valid, type-appropriate value instead - a date for DATE() segments and an
integer for the HOUR()/MINUTE()/YEAR()/... extractions - so they stay
covered and the query runs on MySQL 8.0. The matched result is unchanged
(the segment still matches no visits via the impossible deviceType condition).

* 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 job runs
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.
… Puppeteer 24) (#136)

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

* 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.
matomo-php-tracker 3.4.0 types setCustomVariable()'s $name as string, so
the deliberately-invalid array name now raises a TypeError. The id (6) is
already out of the valid range and not tracked, so the string variant on
the line above keeps the same coverage and the expected output is unchanged.
The invalid (array) custom-variable name can no longer be passed through the
type-safe setCustomVariable(); inject it directly into the public
visitorCustomVar payload so the fixture still verifies a malformed cvar is
not tracked. Cannot use a raw _cvar param (custom param / debug append)
because it would duplicate and override the valid cvars in the request.
Matomo core adds always-on {metric}_percent_of_total columns to report
rows in API responses (matomo-org/matomo#24983, Matomo 6). These expected
files include the new columns and only pass against a Matomo 6 core that
contains that change.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

2 participants