43 lines
1.5 KiB
Dart
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);
|
|
});
|
|
}
|