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); }); }