Files
asciinevrdie/test/widget_test.dart
JiWoong Sul 549851f693 feat(front): 프론트 화면 개선 및 설정 저장소 추가
- front_screen_animation.dart: 프론트 화면 애니메이션 추가
- settings_repository.dart: 설정 저장소 구현
- front/widgets/: 프론트 화면 위젯 분리
- mobile_carousel_layout.dart: 모바일 레이아웃 개선
- app.dart: 앱 설정 개선
- game_text_l10n.dart: 텍스트 추가
2025-12-23 18:52:46 +09:00

43 lines
1.5 KiB
Dart

import 'package:askiineverdie/src/app.dart';
import 'package:flutter/services.dart';
import 'package:flutter_test/flutter_test.dart';
void main() {
// SharedPreferences 모킹
setUpAll(() {
TestWidgetsFlutterBinding.ensureInitialized();
const MethodChannel('plugins.flutter.io/shared_preferences')
.setMockMethodCallHandler((call) async {
if (call.method == 'getAll') return <String, Object>{};
return null;
});
});
testWidgets('Front screen renders and navigates to new character', (
tester,
) async {
await tester.pumpWidget(const AskiiNeverDieApp());
// 세이브 파일 확인이 완료될 때까지 대기 (스플래시 → 프론트)
// runAsync로 비동기 파일 작업 완료 대기
await tester.runAsync(
() => Future<void>.delayed(const Duration(milliseconds: 100)),
);
await tester.pump(); // 상태 업데이트 반영
// 프런트 화면이 렌더링되었는지 확인
expect(find.text('ASCII NEVER DIE'), findsOneWidget);
expect(find.text('New character'), findsOneWidget);
// "New character" 버튼 탭
await tester.tap(find.text('New character'));
await tester.pumpAndSettle();
// NewCharacterScreen으로 이동했는지 확인 (l10n 적용됨)
expect(find.text('ASCII NEVER DIE - New Character'), findsOneWidget);
expect(find.text('Race'), findsOneWidget);
expect(find.text('Class'), findsOneWidget);
expect(find.text('Sold!'), findsOneWidget);
});
}