30 lines
1.2 KiB
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);
|
|
});
|
|
}
|