Files
asciinevrdie/test/widget_test.dart
JiWoong Sul a990eb0038 chore(data): 데이터 및 테스트 업데이트
- 게임 텍스트 번역 데이터 업데이트
- 클래스/종족/스킬/포션 데이터 정리
- 테스트 코드 업데이트
2025-12-31 17:47:09 +09:00

43 lines
1.5 KiB
Dart

import 'package:asciineverdie/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);
});
}