Integrationstests: kompletter Zyklus gegen echtes HomeShell + State-Persistenz-Nachweis
This commit is contained in:
@@ -142,4 +142,30 @@ void main() {
|
||||
await tester.tap(find.byType(GestureDetector), warnIfMissed: false);
|
||||
expect(getappt, isFalse);
|
||||
});
|
||||
|
||||
testWidgets(
|
||||
'Kompletter Zyklus: Ziehen öffnet, Blur erscheint, Zurück-Taste schließt',
|
||||
(tester) async {
|
||||
await tester.pumpWidget(const MaterialApp(home: _TestShell()));
|
||||
final ctx = tester.element(find.byType(_TestShell));
|
||||
final controller =
|
||||
tester.state<_TestShellState>(find.byType(_TestShell))._controller;
|
||||
|
||||
controller.dragBy(-250);
|
||||
await tester.pump();
|
||||
expect(controller.progress, closeTo(250 / oeffnenReferenzHoehe, 0.01));
|
||||
expect(find.byType(BackdropFilter), findsOneWidget);
|
||||
|
||||
controller.dragEnd(ctx, -250, 0);
|
||||
await tester.pumpAndSettle();
|
||||
expect(controller.progress, 1.0);
|
||||
|
||||
// pageBack() sucht einen sichtbaren Zurück-Button, den es hier ohne
|
||||
// zweite Route nicht gibt (siehe Plan-Hinweis für den Umsetzer) —
|
||||
// Navigator.maybePop() löst denselben PopScope-Callback aus.
|
||||
await Navigator.maybePop(ctx);
|
||||
await tester.pumpAndSettle();
|
||||
expect(controller.progress, 0.0);
|
||||
expect(find.byType(BackdropFilter), findsNothing);
|
||||
});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user