aboutsummaryrefslogtreecommitdiff
path: root/frontend/test/chat_input_field_test.dart
diff options
context:
space:
mode:
Diffstat (limited to 'frontend/test/chat_input_field_test.dart')
-rw-r--r--frontend/test/chat_input_field_test.dart71
1 files changed, 71 insertions, 0 deletions
diff --git a/frontend/test/chat_input_field_test.dart b/frontend/test/chat_input_field_test.dart
new file mode 100644
index 000000000..2aa8eade8
--- /dev/null
+++ b/frontend/test/chat_input_field_test.dart
@@ -0,0 +1,71 @@
+import 'package:flutter/material.dart';
+import 'package:flutter_test/flutter_test.dart';
+import 'package:auto_gpt_flutter_client/views/chat/chat_input_field.dart';
+
+void main() {
+ // Test if the ChatInputField widget renders correctly
+ testWidgets('ChatInputField renders correctly', (WidgetTester tester) async {
+ await tester.pumpWidget(
+ MaterialApp(
+ home: Scaffold(
+ body: ChatInputField(
+ onSendPressed: () {},
+ ),
+ ),
+ ),
+ );
+
+ // Find the TextField widget
+ expect(find.byType(TextField), findsOneWidget);
+ // Find the send IconButton
+ expect(find.byIcon(Icons.send), findsOneWidget);
+ });
+
+ // Test if the TextField inside ChatInputField can accept and display input
+ testWidgets('ChatInputField text field accepts input',
+ (WidgetTester tester) async {
+ await tester.pumpWidget(
+ MaterialApp(
+ home: Scaffold(
+ body: ChatInputField(
+ onSendPressed: () {},
+ ),
+ ),
+ ),
+ );
+
+ // Type 'Hello' into the TextField
+ await tester.enterText(find.byType(TextField), 'Hello');
+ // Rebuild the widget with the new text
+ await tester.pump();
+
+ // Expect to find 'Hello' in the TextField
+ expect(find.text('Hello'), findsOneWidget);
+ });
+
+ // Test if the send button triggers the provided onSendPressed callback
+ testWidgets('ChatInputField send button triggers callback',
+ (WidgetTester tester) async {
+ bool onPressedCalled = false;
+
+ await tester.pumpWidget(
+ MaterialApp(
+ home: Scaffold(
+ body: ChatInputField(
+ onSendPressed: () {
+ onPressedCalled = true;
+ },
+ ),
+ ),
+ ),
+ );
+
+ // Tap the send IconButton
+ await tester.tap(find.byIcon(Icons.send));
+ // Rebuild the widget after the tap
+ await tester.pump();
+
+ // Check if the callback was called
+ expect(onPressedCalled, isTrue);
+ });
+}