test(skew): version-skew smoke — dev Studio against the released hub
Some checks failed
Security / Security check (push) Failing after 2s
Some checks failed
Security / Security check (push) Failing after 2s
Walks every sidebar page against an older, released chain binary (hermetic fixture hub) and fails when any page claims 'unreachable' although the hub answers, or renders raw error text. Run via the platform repo's scripts/skew-smoke.sh as a Studio release gate. Verified against the real pair hub 0.21.0 vs workspace 0.22.0: all invariants hold. Two timing notes are handled explicitly: real-async settles between navigations and an app teardown before the fixture teardown keep grpc-dart's data-after-cancel race (unguarded _responses.add, call.dart:395) from failing the walk spuriously; the final fake-time pump drains the channel's 5-minute idle timer. Signed-off-by: flemming-it <stefan.a.flemming@googlemail.com>
This commit is contained in:
parent
66b26304fd
commit
bfd58baa75
2 changed files with 162 additions and 0 deletions
25
CHANGELOG.md
25
CHANGELOG.md
|
|
@ -6,6 +6,31 @@ lockstep.
|
|||
|
||||
## Unreleased
|
||||
|
||||
### Hardening round (test strategy, 2026-07-19)
|
||||
|
||||
- **Hermetic widget suites.** `HubService.instance` is injectable;
|
||||
a scriptable fake (`test/support/fake_hub.dart`) answers every
|
||||
member the pages touch and scripts per-RPC failures. The a11y and
|
||||
responsive sweeps run against it — results no longer depend on
|
||||
whether a hub happens to listen on the operator's machine (which
|
||||
was the root of the historic a11y flake).
|
||||
- **State-matrix sweep** (`state_matrix_test.dart`): every sidebar
|
||||
page × hub condition (healthy / gone / too old / feature off) with
|
||||
app-wide invariants — no "unreachable" claims while the hub
|
||||
answers, no raw error text in the UI, classified states only.
|
||||
- **Shared load-error view.** Store, Doctor, Audit, Approvals and
|
||||
Federation no longer fold every load failure into "hub not
|
||||
reachable"; `HubLoadErrorView` classifies into unreachable /
|
||||
needs-newer-hub / load-failed-with-copyable-detail (new DE+EN
|
||||
strings). Also fixed: the approvals page's hidden tab surfaced
|
||||
load failures as uncaught async errors; the audit status bar
|
||||
rendered the raw gRPC error wall instead of the friendly headline.
|
||||
- **Version-skew gate.** `integration_test/skew_smoke_test.dart`
|
||||
(run via the platform repo's `scripts/skew-smoke.sh`) boots the
|
||||
released hub binary and walks every page with the same
|
||||
invariants — the dev-Studio-against-old-hub combination is now a
|
||||
release gate instead of a live-bug generator.
|
||||
|
||||
### Added (0.74.0)
|
||||
|
||||
- **Doctor findings deep-link to their page.** Summary tiles and
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue