129 lines
3.0 KiB
Dart
129 lines
3.0 KiB
Dart
import 'package:flutter/material.dart';
|
|
import 'package:flutter_test/flutter_test.dart';
|
|
import 'package:garden_planner/constance.dart';
|
|
import 'package:garden_planner/widgets/header.dart';
|
|
|
|
void main() {
|
|
testWidgets('Header widget displays correctly', (WidgetTester tester) async {
|
|
//Arrange
|
|
await tester.pumpWidget(
|
|
MaterialApp(
|
|
home: Scaffold(
|
|
appBar: Header(
|
|
onSidebarToggle: () {},
|
|
onSave: () {},
|
|
),
|
|
),
|
|
),
|
|
);
|
|
|
|
final sidebarToggleButton = find.byIcon(Icons.menu_open);
|
|
final saveButton = find.byIcon(Icons.save);
|
|
|
|
//Act
|
|
expect(find.text(Constance.apptitle), findsOneWidget,
|
|
reason: 'Title is missing');
|
|
expect(sidebarToggleButton, findsOneWidget,
|
|
reason: 'SidbarToggel is missing');
|
|
expect(saveButton, findsOneWidget, reason: 'Savebutton is missing');
|
|
});
|
|
|
|
testWidgets('Header widget save abort should work',
|
|
(WidgetTester tester) async {
|
|
bool savePressed = false;
|
|
|
|
//Arrange
|
|
await tester.pumpWidget(
|
|
MaterialApp(
|
|
home: Scaffold(
|
|
appBar: Header(
|
|
onSidebarToggle: () {},
|
|
onSave: () {
|
|
savePressed = true;
|
|
},
|
|
),
|
|
),
|
|
),
|
|
);
|
|
|
|
final saveButton = find.byIcon(Icons.save);
|
|
|
|
//Act
|
|
await tester.tap(saveButton);
|
|
await tester.pumpAndSettle();
|
|
|
|
final saveDialog = find.byType(AlertDialog);
|
|
expect(saveDialog, findsOneWidget);
|
|
|
|
// Test false
|
|
final cancelButton = find.text('Abbrechen');
|
|
await tester.tap(cancelButton);
|
|
await tester.pumpAndSettle();
|
|
|
|
//Assert
|
|
expect(savePressed, false, reason: 'save was not confirmed but saved');
|
|
});
|
|
|
|
testWidgets('Header widget save ok should work', (WidgetTester tester) async {
|
|
bool savePressed = false;
|
|
|
|
//Arrange
|
|
await tester.pumpWidget(
|
|
MaterialApp(
|
|
home: Scaffold(
|
|
appBar: Header(
|
|
onSidebarToggle: () {},
|
|
onSave: () {
|
|
savePressed = true;
|
|
},
|
|
),
|
|
),
|
|
),
|
|
);
|
|
|
|
final saveButton = find.byIcon(Icons.save);
|
|
|
|
//Act
|
|
await tester.tap(saveButton);
|
|
await tester.pumpAndSettle();
|
|
|
|
final saveDialog = find.byType(AlertDialog);
|
|
expect(saveDialog, findsOneWidget);
|
|
|
|
final saveOkButton = find.text('Ja');
|
|
await tester.tap(saveOkButton);
|
|
await tester.pumpAndSettle();
|
|
|
|
//Assert
|
|
expect(savePressed, true, reason: 'Save confirmed but not saved');
|
|
});
|
|
|
|
testWidgets('Header widget sidbar toggle should work',
|
|
(WidgetTester tester) async {
|
|
bool sidebarToggle = false;
|
|
|
|
//Arrange
|
|
await tester.pumpWidget(
|
|
MaterialApp(
|
|
home: Scaffold(
|
|
appBar: Header(
|
|
onSidebarToggle: () {
|
|
sidebarToggle = true;
|
|
},
|
|
onSave: () {},
|
|
),
|
|
),
|
|
),
|
|
);
|
|
|
|
final sidebarToggleButton = find.byIcon(Icons.menu_open);
|
|
|
|
//Act
|
|
await tester.tap(sidebarToggleButton);
|
|
await tester.pumpAndSettle();
|
|
|
|
//Assert
|
|
expect(sidebarToggle, true);
|
|
});
|
|
}
|