56 lines
1.7 KiB
Dart
56 lines
1.7 KiB
Dart
// F0 공통 2화면 캡처. 방법은 `capture_common.dart` 참고.
|
|
//
|
|
// 하단 탭은 부분이 아니라 **앱 전체**를 띄워서 찍는다 — 탭 목록은 원격 플래그가
|
|
// 정하므로 셸을 손으로 흉내내면 실제 빌드와 달라질 수 있다.
|
|
|
|
import 'package:flutter_test/flutter_test.dart';
|
|
|
|
import 'package:fancake/app.dart';
|
|
import 'package:fancake/features/auth/auth.dart';
|
|
import 'package:fancake/features/auth/auth_repository.dart';
|
|
import 'package:fancake/features/notification/notification_screen.dart';
|
|
|
|
import 'capture_common.dart';
|
|
|
|
void main() {
|
|
final cap = Capture();
|
|
|
|
setUpAll(cap.prepare);
|
|
|
|
testWidgets('F0 공통', (tester) async {
|
|
// 실기기에서는 소셜 로그인을 통과해야 셸에 닿는데, 확정 4종 가운데
|
|
// Google 만 열려 있고 그 계정은 이 에뮬레이터에 없다. 복원된 세션으로 연다 —
|
|
// 로그인 이후의 화면이라는 사실은 같다.
|
|
final auth = AuthRepository(
|
|
session: const _RestoredSession(
|
|
AuthAccount(uid: 'capture-user', provider: AuthProviderKind.google),
|
|
),
|
|
releaseMode: true,
|
|
);
|
|
addTearDown(auth.dispose);
|
|
|
|
await tester.pumpWidget(FancakeApp(auth: auth));
|
|
await cap.settle(tester);
|
|
await cap.shot('F0_01_하단탭');
|
|
|
|
await cap.capture(
|
|
tester,
|
|
'F0_02_알림',
|
|
const NotificationScreen(repository: SampleNotificationRepository()),
|
|
);
|
|
});
|
|
}
|
|
|
|
final class _RestoredSession implements AuthSession {
|
|
const _RestoredSession(this.currentAccount);
|
|
|
|
@override
|
|
final AuthAccount? currentAccount;
|
|
|
|
@override
|
|
Stream<AuthAccount?> get accountChanges => const Stream.empty();
|
|
|
|
@override
|
|
Future<void> signOut() async {}
|
|
}
|