From c81bc16eb9cbdb273548585e42d4b3b96f916fef Mon Sep 17 00:00:00 2001 From: flemming-it Date: Fri, 17 Jul 2026 19:08:40 +0200 Subject: [PATCH] test(setup): guide-shot harness opens the wizard via Settings; changelog for the setup rework Signed-off-by: flemming-it --- CHANGELOG.md | 18 ++++++++++++++++++ integration_test/guide_shots_test.dart | 18 ++++++++++++++---- 2 files changed, 32 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7cb0911..2824f6e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,24 @@ version + `kStudioVersion` in `lib/main.dart` stay in lockstep. ## Unreleased +### Changed (setup lives before the app) + +- **First-run gate.** A fresh install starts inside the setup: a + dedicated screen hosts the wizard before the app appears (embedded + mode + explicit "Später einrichten" skip). The Welcome page loses + its setup button entirely; re-running the setup lives in Settings → + General ("Run setup again…"). Wording de-ad-ified: "Einrichtung + starten" instead of "In 3 Fragen loslegen". +- **Preview before permission.** The plan preview now calls the new + PlanSetup RPC over the live hub connection instead of spawning the + chain CLI — whose first run could pop the macOS file-access prompt + BEFORE the operator ever saw the plan. CLI remains the no-hub + fallback; applying stays the explicit separate step. +- **Native file dialog for flow file inputs** (with flow-editor + v0.23.0): the Run tab's file inputs open a real picker; typing an + absolute path is now only the no-host fallback. + + ### Fixed (startup + build time) - **Black window on launch.** A corrupt preference value (`hub.secure` diff --git a/integration_test/guide_shots_test.dart b/integration_test/guide_shots_test.dart index a53726e..400cf3b 100644 --- a/integration_test/guide_shots_test.dart +++ b/integration_test/guide_shots_test.dart @@ -241,17 +241,27 @@ void main() { // 11: the guided-setup wizard, step 1 (localized option cards). // 10 (inside a sealed area) still needs the manual procedure — // it requires switching to a second, isolated hub instance. + // The wizard no longer lives on Welcome (first-run gate owns a + // fresh install; re-running is a Settings action) — capture it + // via Settings → General like an operator would reach it. shell.navigateTo('welcome'); await _pumpFrames(tester); - final cta = find.textContaining( - _locale.languageCode == 'en' ? '3 questions' : '3 Fragen', + await tester.sendKeyEvent(LogicalKeyboardKey.escape); // close leftovers + await _pumpFrames(tester, 5); + ChainSettingsDialog.show(tester.element(find.byType(StudioShell))); + await _pumpFrames(tester); + final runSetup = find.textContaining( + _locale.languageCode == 'en' ? 'Run setup again' : 'Einrichtung erneut', ); - if (cta.evaluate().isNotEmpty) { - await tester.tap(cta.first); + if (runSetup.evaluate().isNotEmpty) { + await tester.ensureVisible(runSetup.first); + await tester.tap(runSetup.first); await _pumpFrames(tester); await _shot(tester, '11-einrichtung'); await tester.sendKeyEvent(LogicalKeyboardKey.escape); await _pumpFrames(tester, 5); + await tester.sendKeyEvent(LogicalKeyboardKey.escape); // settings too + await _pumpFrames(tester, 5); } }); }