2026-02-28 14:47:33 +08:00
|
|
|
import 'package:flutter/material.dart';
|
|
|
|
|
import 'package:flutter_test/flutter_test.dart';
|
|
|
|
|
import 'package:lucide_icons/lucide_icons.dart';
|
|
|
|
|
import 'package:social_app/features/home/ui/screens/home_screen.dart';
|
|
|
|
|
|
|
|
|
|
void main() {
|
|
|
|
|
group('HomeScreen Widget Tests', () {
|
2026-03-02 15:05:10 +08:00
|
|
|
testWidgets('displays input field', (WidgetTester tester) async {
|
2026-02-28 14:47:33 +08:00
|
|
|
await tester.pumpWidget(const MaterialApp(home: HomeScreen()));
|
2026-03-02 15:05:10 +08:00
|
|
|
await tester.pumpAndSettle();
|
2026-02-28 14:47:33 +08:00
|
|
|
|
2026-03-02 15:05:10 +08:00
|
|
|
expect(find.byType(TextField), findsOneWidget);
|
|
|
|
|
expect(find.text('输入消息...'), findsOneWidget);
|
2026-02-28 14:47:33 +08:00
|
|
|
});
|
|
|
|
|
|
2026-03-02 15:05:10 +08:00
|
|
|
testWidgets('displays header icons', (WidgetTester tester) async {
|
2026-02-28 14:47:33 +08:00
|
|
|
await tester.pumpWidget(const MaterialApp(home: HomeScreen()));
|
2026-03-02 15:05:10 +08:00
|
|
|
await tester.pumpAndSettle();
|
2026-02-28 14:47:33 +08:00
|
|
|
|
2026-03-02 15:05:10 +08:00
|
|
|
expect(find.byIcon(LucideIcons.settings), findsOneWidget);
|
|
|
|
|
expect(find.byIcon(LucideIcons.calendar), findsOneWidget);
|
|
|
|
|
expect(find.byIcon(LucideIcons.messageSquare), findsOneWidget);
|
2026-02-28 14:47:33 +08:00
|
|
|
});
|
|
|
|
|
|
2026-03-02 15:05:10 +08:00
|
|
|
testWidgets('displays send or mic icon based on input', (
|
2026-02-28 14:47:33 +08:00
|
|
|
WidgetTester tester,
|
|
|
|
|
) async {
|
|
|
|
|
await tester.pumpWidget(const MaterialApp(home: HomeScreen()));
|
2026-03-02 15:05:10 +08:00
|
|
|
await tester.pumpAndSettle();
|
2026-02-28 14:47:33 +08:00
|
|
|
|
2026-03-02 15:05:10 +08:00
|
|
|
expect(find.byIcon(LucideIcons.mic), findsOneWidget);
|
2026-02-28 14:47:33 +08:00
|
|
|
});
|
|
|
|
|
});
|
|
|
|
|
}
|