import 'package:flutter/material.dart'; import 'package:flutter_test/flutter_test.dart'; import 'package:fancake/app.dart'; import 'package:fancake/features/auth/auth_repository.dart'; /// MY 에서 로그아웃하면 로그인 화면으로 돌아간다 — 한 기기에서 로그인 방법을 바꿔 확인할 수 있어야 한다. void main() { testWidgets('MY → 로그아웃 → 확인 → 로그인 화면, 취소면 그대로', (tester) async { final auth = AuthRepository(releaseMode: false)..signInWithMockSession(); await tester.pumpWidget(FancakeApp(auth: auth)); await tester.pumpAndSettle(); await tester.tap(find.text('MY')); await tester.pumpAndSettle(); await tester.tap(find.widgetWithText(OutlinedButton, '로그아웃')); await tester.pumpAndSettle(); await tester.tap(find.text('취소')); await tester.pumpAndSettle(); expect(auth.isSignedIn, isTrue); await tester.tap(find.widgetWithText(OutlinedButton, '로그아웃')); await tester.pumpAndSettle(); await tester.tap(find.widgetWithText(FilledButton, '로그아웃')); await tester.pumpAndSettle(); expect(auth.isSignedIn, isFalse); expect(find.byType(NavigationBar), findsNothing); }); }