Repository navigation
feat(ui): sort the test history runs and diff their configs - #362
Conversation
There was a problem hiding this comment.
Adds URL-backed sorting to the test history runs table, row expansion showing the config diff to the previous run (shared with the regressions tab as PreviousRunDiff), multi-select config diff/compare, and fixes the client card click. The refactor faithfully preserves the old RegressionDetail behavior, the sort/tie/missing-value semantics match the tests (verified with a scratch run), and all prop plumbing against ConfigDiff, the hooks, and the route (which has no validateSearch, so sort/dir persist) checks out. No real problems found.
Reviewed 7 changed file(s) @ 9b3b06c9 — no blocking issues found.
"Slow is smooth, smooth is fast." — Navy SEALs
CI failed @
|
The runs table of a test history had no sort and no way to see what changed between two runs. - The columns Time, Client, MGas/s, Duration, Reject time and Gas used sort on a click. The sort is in the URL (sort, dir). A run with no value comes last in both directions. - A row expands to the config diff to the previous run of its client, with the "previous run on the same host" option. This is the view of the regressions tab, now a shared PreviousRunDiff component. - A checkbox selects 2-5 runs. The selected runs show their config diff inline, or open on the compare page. - A "new tag" marker shows where the image tag of a client changed. The history has the tag, not the digest, so the row diff shows a new image under a floating tag such as :master. - With all clients shown, a click on a client card shows only that client. Before, the click hid it.
9b3b06c to
3ad1013
Compare
Summary
The runs table on the test history page had no sort, and no way to see what changed between two runs. This PR adds both, and it fixes the client card click.
Changes
Sortable columns. Time, Client, MGas/s, Duration, Reject time and Gas used sort on a click. The sort lives in the URL (
sort,dir). The default is the newest run first, with no params. A run with no value for the column comes last in both directions.Config diff to the previous run. A row expands to the config diff to the previous run of its client. It has the same controls as the regressions tab: "Previous run" / "Previous run on {host}", "Only differences" and "Compare runs". The regressions tab and the history table now share this view as
PreviousRunDiff(it wasRegressionDetail).Config diff of selected runs. A checkbox selects 2–5 runs, which is the limit of the compare page. A bar then shows:
/compare?runs=…with the selected runs."New tag" marker. A row shows "new tag" where the image tag of a client changed from its previous run. The history API has the image tag, not the digest. Under a floating tag such as
:master, a new image does not change the tag, so the marker cannot show it. The expanded row diff shows the digest. A marker on a digest change needs a new index column, so it is a possible follow-up.Client card click. With all clients shown, a click on a card now shows only that client. Before, the click hid it. With a filter on, a click adds or removes a client, as before. Removing the last client clears the filter.
Tests
sortHistoryRuns(sort per column, a missing value last, the newest run first in a tie) andpreviousRuns.