Files
bowlingManager/mobile/test/widgets/public_event_screen_test.dart
T
2025-10-29 00:25:03 +09:00

42 lines
1.4 KiB
Dart

import 'package:flutter/material.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:lanebow/screens/public_event/public_event_screen.dart';
import 'package:lanebow/services/public_event_service.dart';
class StubFetchService extends PublicEventService {
@override
Future<Map<String, dynamic>> fetchEvent(String publicHash) async {
return {
'event': {'id': 'E100', 'title': '오픈 리그'},
'participants': [
{'participantId': '1', 'name': 'Kim'},
{'participantId': '2', 'name': 'Lee'},
],
'teams': [
{'teamId': 'T1'},
],
};
}
}
void main() {
testWidgets('renders title and counts from fetchEvent', (tester) async {
await tester.pumpWidget(MaterialApp(
home: PublicEventScreen(publicHash: 'abc', service: StubFetchService()),
));
// initial loading
expect(find.byType(CircularProgressIndicator), findsOneWidget);
await tester.pumpAndSettle();
expect(find.byKey(const Key('event_title')), findsOneWidget);
expect(find.text('오픈 리그'), findsOneWidget);
expect(find.byKey(const Key('participants_count')), findsOneWidget);
final pc = tester.widget<Text>(find.byKey(const Key('participants_count')));
expect(pc.data, '총 2명');
expect(find.byKey(const Key('teams_count')), findsOneWidget);
expect(find.text('총 1팀'), findsOneWidget);
});
}