85 lines
2.3 KiB
Dart
85 lines
2.3 KiB
Dart
import 'package:flutter/material.dart';
|
|
import 'package:flutter_test/flutter_test.dart';
|
|
import 'package:garden_planner/entities/plant.dart';
|
|
import 'package:garden_planner/entities/plant_in_row.dart';
|
|
import 'package:garden_planner/widgets/content_widgets/dashboard_widgets/plant_element.dart';
|
|
|
|
import '../../../helpers/beet_repository_generator.dart';
|
|
import '../../../helpers/plant_generator.dart';
|
|
|
|
void main() {
|
|
testWidgets('PlantElement image onRemovePlant fires',
|
|
(WidgetTester tester) async {
|
|
bool isRemoved = false;
|
|
Plant? plantToRemove;
|
|
|
|
// Arrange
|
|
onRemovePlant(Plant plant) {
|
|
isRemoved = true;
|
|
plantToRemove = plant;
|
|
}
|
|
|
|
final plant = PlantInRow(position: 1, plant: PlantGenerator.getPlant());
|
|
|
|
await tester.pumpWidget(
|
|
MaterialApp(
|
|
home: Scaffold(
|
|
body: PlantElement(
|
|
showImages: true,
|
|
onRemovePlant: onRemovePlant,
|
|
plant: plant,
|
|
beetRepository: BeetRepositoryGenerator.getBeetRepository(),
|
|
date: DateTime.now(),
|
|
),
|
|
),
|
|
),
|
|
);
|
|
|
|
// Act
|
|
final deleteButtonFinder = find.byIcon(Icons.delete);
|
|
await tester.tap(deleteButtonFinder);
|
|
await tester.pump();
|
|
|
|
//Assert
|
|
expect(isRemoved, true, reason: 'Plant is not removed');
|
|
expect(plantToRemove, plant, reason: 'Wrong Plant is returned');
|
|
});
|
|
|
|
testWidgets('PlantElement Text onRemovePlant fires',
|
|
(WidgetTester tester) async {
|
|
bool isRemoved = false;
|
|
Plant? plantToRemove;
|
|
|
|
// Arrange
|
|
onRemovePlant(Plant plant) {
|
|
isRemoved = true;
|
|
plantToRemove = plant;
|
|
}
|
|
|
|
final plant = PlantInRow(position: 1, plant: PlantGenerator.getPlant());
|
|
|
|
await tester.pumpWidget(
|
|
MaterialApp(
|
|
home: Scaffold(
|
|
body: PlantElement(
|
|
showImages: false,
|
|
onRemovePlant: onRemovePlant,
|
|
plant: plant,
|
|
beetRepository: BeetRepositoryGenerator.getBeetRepository(),
|
|
date: DateTime.now(),
|
|
),
|
|
),
|
|
),
|
|
);
|
|
|
|
// Act
|
|
final deleteButtonFinder = find.byIcon(Icons.delete);
|
|
await tester.tap(deleteButtonFinder);
|
|
await tester.pump();
|
|
|
|
//Assert
|
|
expect(isRemoved, true, reason: 'Plant is not removed');
|
|
expect(plantToRemove, plant, reason: 'Wrong Plant is returned');
|
|
});
|
|
}
|