aboutsummaryrefslogtreecommitdiff
path: root/frontend/test/task_list_tile_test.dart
diff options
context:
space:
mode:
Diffstat (limited to 'frontend/test/task_list_tile_test.dart')
-rw-r--r--frontend/test/task_list_tile_test.dart71
1 files changed, 71 insertions, 0 deletions
diff --git a/frontend/test/task_list_tile_test.dart b/frontend/test/task_list_tile_test.dart
new file mode 100644
index 000000000..e9b0c21de
--- /dev/null
+++ b/frontend/test/task_list_tile_test.dart
@@ -0,0 +1,71 @@
+import 'package:flutter_test/flutter_test.dart';
+import 'package:flutter/material.dart';
+import 'package:auto_gpt_flutter_client/views/task/task_list_tile.dart';
+import 'package:auto_gpt_flutter_client/models/task.dart';
+
+void main() {
+ final Task testTask = Task(id: 1, title: "Sample Task");
+
+ testWidgets('TaskListTile displays the task title',
+ (WidgetTester tester) async {
+ await tester.pumpWidget(MaterialApp(
+ home: TaskListTile(task: testTask, onTap: () {}, onDelete: () {})));
+ expect(find.text('Sample Task'), findsOneWidget);
+ });
+
+ testWidgets('TaskListTile toggles isSelected state on tap',
+ (WidgetTester tester) async {
+ await tester.pumpWidget(MaterialApp(
+ home: TaskListTile(task: testTask, onTap: () {}, onDelete: () {})));
+
+ // Initially, the delete icon should not be present
+ expect(find.byIcon(Icons.close), findsNothing);
+
+ // Tap the tile
+ await tester.tap(find.text('Sample Task'));
+ await tester.pump();
+
+ // The delete icon should appear
+ expect(find.byIcon(Icons.close), findsOneWidget);
+ });
+
+ testWidgets('TaskListTile triggers onDelete when delete icon is tapped',
+ (WidgetTester tester) async {
+ bool wasDeleteCalled = false;
+ await tester.pumpWidget(MaterialApp(
+ home: TaskListTile(
+ task: testTask,
+ onTap: () {},
+ onDelete: () {
+ wasDeleteCalled = true;
+ })));
+
+ // Tap the tile to make the delete icon appear
+ await tester.tap(find.text('Sample Task'));
+ await tester.pump();
+
+ // Tap the delete icon
+ await tester.tap(find.byIcon(Icons.close));
+ await tester.pump();
+
+ expect(wasDeleteCalled, true);
+ });
+
+ testWidgets('TaskListTile triggers onTap when tapped',
+ (WidgetTester tester) async {
+ bool wasTapped = false;
+ await tester.pumpWidget(MaterialApp(
+ home: TaskListTile(
+ task: testTask,
+ onTap: () {
+ wasTapped = true;
+ },
+ onDelete: () {})));
+
+ // Tap the tile
+ await tester.tap(find.text('Sample Task'));
+ await tester.pump();
+
+ expect(wasTapped, true);
+ });
+}