Skip to content

GUI: transient tests, per-fixture results, passed panels that go - #6

Merged
jp-pino merged 3 commits into
masterfrom
blueye/transient-tests
Oct 15, 2026
Merged

jp-pino merged 3 commits into
masterfrom
blueye/transient-tests

Conversation

@jp-pino

@jp-pino jp-pino commented Oct 15, 2026 •

Copy link
Copy Markdown

For the battery station's new start flow (BluEye-Robotics/P2-functional-tests#244). Its first column is a test that asks which slot to start next. When all four slots are running, that column should go, so the station shows at most four columns.

Changes

  • Transient tests. A test started with htf.Test(..., transient=True) (it ends up in the record's metadata) has its panel removed as soon as it completes. TestState.transient comes from test_record.metadata.transient.

  • Each fixture keeps its result. A new test now replaces only the completed tests of its own name. Before, any new test cleared every completed panel. The battery station restarts its first column whenever a slot frees up, and under the old rule a slot's PASS/FAIL would have vanished at that moment. Now a slot's result stays until that slot starts again. A station with a single test name (every other station) behaves exactly as before.

  • Passed panels can go after a delay. StationServer(..., hide_passed_after_s=120) passes the delay to the GUI in its config (ConfigService.hidePassedAfterMs). With it set, a passed test's panel is removed that long after it completes. A test that failed, errored or was aborted keeps its panel until a test of its name starts again. When it isn't set, nothing changes.

  • Transient tests stay out of History. A transient test's final record isn't added there; otherwise every one showed up as an UNKNOWN_DUT pass.

Testing

  • Two new cases in station.service.spec.ts:
    • a transient test is dropped when it completes while a slot keeps running;
    • a completed "Slot 1" survives "Slot 2" starting and is replaced when "Slot 1" starts again.
  • More cases in station.service.spec.ts:
    • a pass goes at 120 s while a FAIL next to it stays;
    • without the setting, a pass stays;
    • a transient test's final record doesn't reach History.
  • ng test in headless Chrome: 43 of 43 pass.
  • test/output/servers/station_server_test.py: the server renders hide_passed_after_s into its page, as null when it's not set. 6 of 6 pass.
  • Checked live with the battery station on the bms_tools simulator (BluEye-Robotics/P2-functional-tests#244).
  • dist/ rebuilt with Node 24; only the main bundle changes.

🤖 Generated with Claude Code

A test started with `htf.Test(..., transient=True)` (record metadata)
only serves the station while it runs, such as one that asks which
fixture to start next: its panel goes as soon as it completes.

A new test now replaces only the completed tests of its own name, so
with several fixtures on one station each keeps its result in view
until it starts again. A station with one test name behaves as before.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@coveralls

coveralls commented Oct 15, 2026 •

Copy link
Copy Markdown

Coverage Report for CI Build 38723482313

Coverage increased (+1.3%) to 67.593%

Details

  • Coverage increased (+1.3%) from the base build.
  • Patch coverage: 1 of 1 lines across 1 file are fully covered (100%).
  • No coverage regressions found.

Uncovered Changes

No uncovered changes found.

Coverage Regressions

No coverage regressions found.


Coverage Stats

Coverage Status
Relevant Lines: 7739
Covered Lines: 5231
Line Coverage: 67.59%
Coverage Strength: 3.38 hits per line

💛 - Coveralls

jp-pino and others added 2 commits October 15, 2026 11:26
A transient test tested nothing; its final record was listed in the
history as an UNKNOWN_DUT pass each time it ended.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
`StationServer(..., hide_passed_after_s=120)` passes the delay to the
frontend in its config. With several fixtures on one station, a passed
test's panel then goes that long after it completes, while one that
failed, errored or was aborted stays until a test of its name starts
again: fixtures that run for hours mostly finish with nobody watching,
and a failure must still be on screen when someone comes back. Unset,
nothing changes.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@jp-pino jp-pino changed the title GUI: transient tests, and each fixture keeps its result GUI: transient tests, per-fixture results, passed panels that go Oct 15, 2026
@jp-pino
jp-pino merged commit 17d97d9 into master Oct 15, 2026
14 checks passed
@jp-pino jp-pino mentioned this pull request Oct 15, 2026
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