Files
fanuzu/app/test/my_logout_test.dart

30 lines
1.2 KiB
Dart

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);
});
}