test: deterministic operator-guide screenshot harness
integration_test/guide_shots_test.dart boots a hermetic hub
(HubFixture), seeds demo projects (open Bürgeramt; sealed
Ratsinformation and a setup.applied audit event only when the
runner confirms an isolated $HOME), launches the app in German +
dark mode, walks every sidebar page in Cmd order with
content-aware waits, opens the workspace switcher and the setup
wizard, and writes the guide PNGs via a driverless RepaintBoundary
capture. Driven by the platform repo's scripts/regen-studio-guide.sh.
Also fixes the hub fixture's binary resolution, dead since the
rename (it looked for 'fai' and ../chain_platform/): now $CHAIN_BIN,
'chain' on PATH, then ../fai_chain/target/{release,debug}/chain —
the integration tests actually run again instead of silently
skipping.
Signed-off-by: flemming-it <stefan.a.flemming@googlemail.com>
This commit is contained in:
parent
ed2c5ace26
commit
cf4024a4e2
6 changed files with 346 additions and 16 deletions
37
CHANGELOG.md
37
CHANGELOG.md
|
|
@ -5,6 +5,43 @@ version + `kStudioVersion` in `lib/main.dart` stay in lockstep.
|
|||
|
||||
## Unreleased
|
||||
|
||||
### Added (guided setup on grade-1 — steps A4/A5/B1 + doc automation)
|
||||
|
||||
- **Clickable next steps.** After apply, the wizard renders real
|
||||
Studio actions instead of CLI text: start-hub button (polls until
|
||||
the daemon answers), per-module install buttons with progress/done
|
||||
states (capability-name install via the hub's store index), and an
|
||||
open-the-starter-flow button navigating to Flows.
|
||||
- **Signature dead end resolved.** Regulated plans explain in plain
|
||||
language that modules come from a signed source; the preview offers
|
||||
"allow installing from the public store" as one deliberate,
|
||||
reversible switch (`allow_unsigned_modules`) that re-assembles the
|
||||
plan. Air-gapped plans point to the offline-bundle path instead.
|
||||
- **Fresh-install auto-open + honest framing.** On a fresh hub (no
|
||||
config, no `setup-plan.yaml`) the wizard opens by itself, once per
|
||||
run; the welcome CTA is now "In 3 Fragen loslegen" / "Get started
|
||||
in 3 questions". After the wizard closes, the onboarding checklist
|
||||
re-probes and states what the assistant already covered (applied
|
||||
profile from `setup-plan.yaml`).
|
||||
- **Free-text AI path (phase 1.2).** "Or just describe what you want
|
||||
to do": the goal goes to the configured system AI, the reply is
|
||||
validated against strict enum whitelists and comes back as an
|
||||
editable "this is how I read your task" reflection feeding the same
|
||||
preview/apply. Privacy line states local vs. provider processing;
|
||||
without a system AI the menu path stands alone.
|
||||
- **Nav manifest guard.** `test/nav_manifest_test.dart` generates
|
||||
`docs/nav.generated.json` from the sidebar truth (ids, order = Cmd
|
||||
numbers, DE+EN labels); the platform repo checks the operator guide
|
||||
against the mirrored copy.
|
||||
- **Guide screenshot harness.** `integration_test/guide_shots_test.dart`
|
||||
boots a hermetic hub, seeds demo projects, walks every nav page,
|
||||
the workspace switcher and the setup wizard, and writes the guide
|
||||
PNGs — driven by the platform repo's `scripts/regen-studio-guide.sh`.
|
||||
- **Fixed:** the integration-test hub fixture still looked for the
|
||||
pre-rename `fai` binary and `chain_platform/` path, so its tests
|
||||
silently skipped since the rename; it now resolves `$CHAIN_BIN`,
|
||||
`chain` on PATH, and `../fai_chain/target/{release,debug}/chain`.
|
||||
|
||||
### Added (multi-project, stage ③ — sealed areas)
|
||||
|
||||
- **Sealed-area connection switch.** The workspace switcher now lists
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue