import 'package:flutter/material.dart'; import 'package:flutter_test/flutter_test.dart'; import 'package:userfront/features/auth/presentation/error_screen.dart'; Future _pumpErrorScreen( WidgetTester tester, { String? errorCode, String? description, bool? isProdOverride, }) async { await tester.pumpWidget( MaterialApp( home: ErrorScreen( errorCode: errorCode, description: description, isProdOverride: isProdOverride, ), ), ); await tester.pump(); } void main() { testWidgets('개발환경은 원문 메시지를 노출한다', (WidgetTester tester) async { await _pumpErrorScreen( tester, errorCode: 'custom_error', description: '원문 메시지', isProdOverride: false, ); expect(find.text('오류: custom_error'), findsOneWidget); expect(find.text('원문 메시지'), findsOneWidget); expect(find.text('오류 종류: custom_error'), findsOneWidget); }); testWidgets('프로덕션은 whitelist 메시지를 노출한다', (WidgetTester tester) async { await _pumpErrorScreen( tester, errorCode: 'settings_disabled', description: '원문 메시지', isProdOverride: true, ); expect(find.text('인증 과정에서 오류가 발생했습니다'), findsOneWidget); expect(find.text('현재 계정 설정 화면은 준비 중입니다.'), findsOneWidget); expect(find.text('원문 메시지'), findsNothing); expect(find.text('오류 종류: settings_disabled'), findsOneWidget); }); testWidgets('프로덕션은 비허용 에러를 unknown_error로 처리한다', (WidgetTester tester) async { await _pumpErrorScreen( tester, errorCode: 'weird_error', description: '원문 메시지', isProdOverride: true, ); expect(find.text('인증 과정에서 오류가 발생했습니다'), findsOneWidget); expect(find.text('에러가 계속되면 관리자에게 문의해주세요'), findsOneWidget); expect(find.text('원문 메시지'), findsNothing); expect(find.text('오류 종류: unknown_error'), findsOneWidget); }); }