feat(abschluss): interne Notiz nach den Unterschriften abfragen
- Nach "Abschliessen" oeffnet sich ein Blatt "Interne Notiz" (optional, max. 2000 Zeichen). Ohne Eingabe genuegt ein Tipp auf "Ohne Notiz abschliessen"; "Zurueck zur Unterschrift" bricht nur das Abschliessen ab - Die Notiz reist im Abschluss-Aufruf mit (internalNote) und landet im Lieferbericht, nicht in den Kunden-Notizen - API-Client aus aktueller Backend-Spec neu generiert - Widget-Tests fuer das Blatt Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
59
test/internal_note_sheet_test.dart
Normal file
59
test/internal_note_sheet_test.dart
Normal file
@ -0,0 +1,59 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_test/flutter_test.dart';
|
||||
|
||||
import 'package:hl_lieferservice/feature/delivery/detail/presentation/widget/internal_note_sheet.dart';
|
||||
|
||||
void main() {
|
||||
late InternalNoteDecision? result;
|
||||
late bool closed;
|
||||
|
||||
Future<void> open(WidgetTester tester) async {
|
||||
result = null;
|
||||
closed = false;
|
||||
await tester.pumpWidget(
|
||||
MaterialApp(
|
||||
home: Builder(
|
||||
builder: (context) => Scaffold(
|
||||
body: TextButton(
|
||||
onPressed: () async {
|
||||
result = await showInternalNoteSheet(context);
|
||||
closed = true;
|
||||
},
|
||||
child: const Text('open'),
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
);
|
||||
await tester.tap(find.text('open'));
|
||||
await tester.pumpAndSettle();
|
||||
}
|
||||
|
||||
testWidgets('ohne Eingabe: ein Tipp schließt ohne Notiz ab', (tester) async {
|
||||
await open(tester);
|
||||
await tester.tap(find.text('Ohne Notiz abschließen'));
|
||||
await tester.pumpAndSettle();
|
||||
expect(closed, isTrue);
|
||||
expect(result, isNotNull);
|
||||
expect(result!.note, isNull);
|
||||
});
|
||||
|
||||
testWidgets('mit Eingabe: Button wechselt, Text wird getrimmt',
|
||||
(tester) async {
|
||||
await open(tester);
|
||||
await tester.enterText(find.byType(TextField), ' Rückruf wegen Montage ');
|
||||
await tester.pump();
|
||||
expect(find.text('Mit Notiz abschließen'), findsOneWidget);
|
||||
await tester.tap(find.text('Mit Notiz abschließen'));
|
||||
await tester.pumpAndSettle();
|
||||
expect(result!.note, 'Rückruf wegen Montage');
|
||||
});
|
||||
|
||||
testWidgets('Zurück bricht das Abschließen ab', (tester) async {
|
||||
await open(tester);
|
||||
await tester.tap(find.text('Zurück zur Unterschrift'));
|
||||
await tester.pumpAndSettle();
|
||||
expect(closed, isTrue);
|
||||
expect(result, isNull);
|
||||
});
|
||||
}
|
||||
Reference in New Issue
Block a user