Skip to content

Trim panel-title whitespace expectations for PMM-15308 - #1174

Draft
claude[bot] wants to merge 1 commit into
mainfrom
claude/kind-meitner-dnyfal
Draft

Trim panel-title whitespace expectations for PMM-15308#1174
claude[bot] wants to merge 1 commit into
mainfrom
claude/kind-meitner-dnyfal

Conversation

@claude

@claude claude Bot commented Aug 12, 2026

Copy link
Copy Markdown
Contributor

Failures fixed (investigator)

  • source: Percona-Lab/pmm-submodules#4525 — run 31633396444, check E2E / Percona Server for MySQL UI integration tests / e2e tests: @pmm-ps-integration
  • blocked-on: percona/pmm#5767 (PMM-15308) — DO NOT MERGE until that PR lands; these tests now expect panel titles that still carry stray whitespace on main.
  • tests:
    • e2e_tests/tests/dashboards/mysql/mysqlDashboards.test.ts:77 / @pmm-ps-integration — PMM-T324 Verify MySQL - MySQL User Details dashboard
    • e2e_tests/tests/dashboards/mysql/mysqlDashboards.test.ts:130 / @pmm-ps-integration — PMM-T430 Verify metrics on MySQL Group Replication Summary Dashboard

What failed

Both tests failed on verifyMetricsPresent, deterministically — same two tests, same assertion, in both FB runs on this PR (31632930410 and 31633396444), all three retries each:

PMM-T324: Expected: ArrayContaining [" ", "Active Users", …]
          Received: ["Active Users", "Lost Connections", …]

PMM-T430: TimeoutError: locator.waitFor: Timeout 60000ms exceeded.
  waiting for … '//section[@data-testid="data-testid Panel header Applied Transactions "]…'

Note the trailing space inside the test id.

Root cause — the test expectations, not the product

percona/pmm#5767 (PMM-15308) trims leading/trailing whitespace from 39 dashboard titles and adds a trim_titles guard to cleanup-dash.py. Two of the dashboards it touches are exactly the two under test:

Dashboard Title before Title after
MySQL_Group_Replication_Summary.json "Applied Transactions ", "Sent Transactions ", "Rolled Back Transactions " same, trimmed
MySQL_User_Details.json " " (spacer panel) ""

The QA page objects still hardcode the untrimmed names, so they stop matching against a server built from that PR.

Changes

Scanned every untrimmed title in percona/pmm#5767 against the whole pmm-qa tree; four files reference one:

  • e2e_tests/pages/dashboards/mysql/mysqlGroupReplicationSummary.ts — trim Applied Transactions, Sent Transactions, Rolled Back Transactions (the failing test)
  • e2e_tests/pages/dashboards/mysql/mysqlUserDetails.ts — drop the { name: ' ', type: 'empty' } entry (the failing test). Its title is now "", so the panel no longer has a name to match on; type: 'empty' is a no-op in verifyPanelValues, so nothing about the panel's data was being asserted.
  • e2e_tests/pages/dashboards/mysql/haproxyInstanceSummary.ts — trim Aborted Data Transfers (@pmm-ps-pxc-haproxy-integration, not run in this FB)
  • codeceptjs-e2e/tests/pages/dashboardPage.js — trim eight leading-space Nodes Overview panel names

The remaining 24 trimmed titles in that PR have no pmm-qa reference.

Verification

Reproduced and fixed on a throwaway Linode VM running the exact FB server image (perconalab/pmm-server-fb:PR-4525-3420f91, digest sha256:6f7d28d2…, same digest Launchable recorded for the CI run), FB client tarball, and the job's own WIZARD_ARGS (--database ps,SETUP_TYPE=replication,MY_ROCKS=true --database ps,SETUP_TYPE=gr,QUERY_SOURCE=slowlog):

Branch mysqlDashboards.test.ts --grep @pmm-ps-integration
main 2 failed (PMM-T324, PMM-T430), 2 passed — same failures as CI
this branch 4 passed

The two files this FB run does not exercise were checked against the same image's Grafana API instead: node-instance-overview, haproxy-instance-summary, mysql-group-replicaset-summary and mysql-user report zero untrimmed titles, and every trimmed name this PR now asserts exists on those dashboards. Their tests themselves (HAProxy e2e, codeceptjs Nodes Overview) still need a real run — the next nightly after percona/pmm#5767 lands is what confirms them.

Expected to stay red on main until percona/pmm#5767 merges — main still ships the untrimmed titles.

Other failures in that run (not fixed here)

  • CLI / Integration tests / CLI / Integration / PSMDB Shard 8.xcurl: (22) 503 while downloading mgodatagen, swallowed by the image build, surfacing later as exec: "mgodatagen": executable file not found in $PATH. Already tracked by Fail the psmdb-pbm image build when a download fails #1171 / Fail the PSMDB image build when mgodatagen install fails #1172.
  • E2E / PSMDB Arbiter Replica UI tests / e2e tests: @pmm-psmdb-arbiter-integrationpmm-admin add mongodb failed with pmm-agent is not connected to PMM Server two seconds after pmm-agent setup reported Registered on the same node (configure-agents.sh runs the two back to back with no wait). One-off symptom — the same job in the immediately preceding run failed from the mgodatagen issue above instead. Not reproduced, so not fixed here.

Generated by Claude Code

percona/pmm#5767 strips leading/trailing whitespace from 39 dashboard
titles. The panel names asserted by the QA suites still carry the stray
spaces, so they stop matching once that change lands.

- MySQL Group Replication Summary: Applied/Sent/Rolled Back Transactions
- HAProxy Instance Summary: Aborted Data Transfers
- Nodes Overview (codeceptjs): eight leading-space panel names
- MySQL User Details: drop the spacer panel whose title was a single
  space and is now empty, so it no longer has a name to match

Signed-off-by: Claude <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

blocked PR is Blocked to be merged

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants