Skip to content

feat: multi-value, combinable Name/Tag/Status filters for test runs#377

Merged
nGervasyuk merged 3 commits into
Visual-Regression-Tracker:masterfrom
nGervasyuk:feat/multi-value-test-run-filters
Jul 17, 2026
Merged

feat: multi-value, combinable Name/Tag/Status filters for test runs#377
nGervasyuk merged 3 commits into
Visual-Regression-Tracker:masterfrom
nGervasyuk:feat/multi-value-test-run-filters

Conversation

@nGervasyuk

@nGervasyuk nGervasyuk commented Jul 16, 2026

Copy link
Copy Markdown
Collaborator

What & why

The test run list only allowed one filter at a time (Name or Tag or Status), each with a single value — the MUI DataGrid community edition caps the built-in filter panel at one filter item. That's not enough to narrow large runs (e.g. "English iPhone screenshots that are Failed or New").

This replaces the DataGrid filter panel with a dedicated filter bar above the list.

Changes

  • Multiple values per filter and combine Name + Tag + Status simultaneously (AND across filters).
  • Faceted Tag matching: OR within a dimension (iPhone + iPad → either device), AND across dimensions (en_EN + iPhone → English and iPhone). Dimensions = os/device/browser/viewport/customTags.
  • Dynamic options: each filter only offers values present in rows matching the other active filters (e.g. pick a locale → Status shows only statuses that locale actually has).
  • Ordered Tag options by dimension (os → device → browser → viewport), with custom tags last.
  • Self-healing selection: selected values that no longer exist (e.g. after deleting their runs) are pruned from the active filters.
  • Removed the now-unused StatusFilterOperators / TagFilterOperators.

All filtering stays client-side (unchanged data flow); bulk operations and prev/next navigation keep working via gridFilteredSortedRowIdsSelector over the pre-filtered rows.

Screenshots

Screenshot 2026-07-16 at 12 57 40 Screenshot 2026-07-16 at 12 57 55

Testing

  • tsc --noEmit, eslint, prettier — clean on changed files.
  • Verified locally: multi-value Tag/Status, combined filters, dynamic option narrowing, tag ordering, and pruning after deletion.

@nGervasyuk nGervasyuk self-assigned this Jul 16, 2026
Replace the single-value MUI DataGrid filter panel (the community edition
allows only one filter at a time) with a dedicated filter bar above the
test run list.

- Select multiple values per filter and combine Name + Tag + Status at once
- Faceted Tag matching: OR within a dimension (e.g. iPhone + iPad),
  AND across dimensions (e.g. locale + device)
- Options narrow dynamically to values present in rows matching the other
  active filters
- Tag options ordered by dimension (os, device, browser, viewport) with
  custom tags last
- Prune selected values that no longer exist after their runs are deleted

Remove the now-unused Status/Tag DataGrid filter operators.
@nGervasyuk
nGervasyuk force-pushed the feat/multi-value-test-run-filters branch from d942c45 to 936de5e Compare July 16, 2026 10:03
@nGervasyuk
nGervasyuk requested a review from pashidlos July 16, 2026 10:18
@nGervasyuk
nGervasyuk force-pushed the feat/multi-value-test-run-filters branch from 6a9a040 to b83e566 Compare July 16, 2026 11:58

@pashidlos pashidlos left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Image double check case when filer goes over stats summary

LGTM

Make the project page's right column a flex column so the build summary
takes its natural height and the test run list fills the remaining space,
instead of a fixed 11% / 89% split that could let the stats summary
overflow onto the filter bar on short viewports.

Update the project page snapshot for the new layout.
@nGervasyuk

Copy link
Copy Markdown
Collaborator Author

Thanks for the review! 🙏 Addressed the overlap note in d3cce17: the project page's right column is now a flex column, so the build summary takes its natural height and the test run list fills the rest — the stats summary no longer overflows onto the filter bar on short viewports. Snapshot updated.

@sonarqubecloud

Copy link
Copy Markdown

@nGervasyuk
nGervasyuk merged commit 4819a51 into Visual-Regression-Tracker:master Jul 17, 2026
3 checks passed
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