import 'package:asciineverdie/src/app.dart';
import 'package:flutter_test/flutter_test.dart';

import 'helpers/test_setup.dart';

void main() {
  // SharedPreferences 모킹
  setUpAll(() {
    TestSetup.mockSharedPreferences();
  });

  // 각 테스트 후 싱글톤 서비스 정리 (타이머 누수 방지)
  tearDown(() {
    TestSetup.resetAllServices();
  });

  testWidgets('App launches and shows splash screen', (tester) async {
    await tester.pumpWidget(const AskiiNeverDieApp());

    // AudioService 초기화 타이머들이 완료될 시간 제공
    // - init() 내 Future.delayed 200ms (line 130)
    // - _initSfxPools() 내 Future.delayed 200ms (line 201)
    // - 재시도 로직의 추가 지연 가능성
    await tester.pump(const Duration(seconds: 1));

    // 앱이 정상적으로 렌더링되는지 확인 (크래시 없음)
    expect(find.byType(AskiiNeverDieApp), findsOneWidget);
  });
}
