앱 단위·화면·통합 테스트

This commit is contained in:
Sn-Kinos
2026-10-04 01:43:10 +09:00
parent de44739e63
commit 4f6e1eac61
63 changed files with 14700 additions and 230 deletions
@@ -0,0 +1,89 @@
// F6 MY 21화면 캡처 — 앞 11화면. 방법은 `capture_common.dart` 참고.
import 'package:flutter_test/flutter_test.dart';
import 'package:fancake/features/auth/auth.dart';
import 'package:fancake/features/my/account_link_screen.dart';
import 'package:fancake/features/my/my_data.dart';
import 'package:fancake/features/my/my_lists_screen.dart';
import 'package:fancake/features/my/my_screen.dart';
import 'package:fancake/features/my/notice_screens.dart';
import 'package:fancake/features/my/pop_history_screen.dart';
import 'package:fancake/features/my/settings_screen.dart';
import 'capture_common.dart';
void main() {
final cap = Capture();
setUpAll(cap.prepare);
testWidgets('F6 MY 1-11', (tester) async {
final sample = SampleMyRepository();
await cap.capture(tester, 'F6_01_MY', MyScreen(repository: sample));
await cap.capture(
tester,
'F6_02_MY_내_인사이드',
const MyListsScreen(kind: MyListKind.inside),
);
await cap.capture(
tester,
'F6_03_MY_내_캠페인',
const MyListsScreen(kind: MyListKind.campaign),
);
await cap.capture(tester, 'F6_04_MY_설정', SettingsScreen(repository: sample));
// 연동 화면은 제공자만 다르다. 확정 4종(별첨 B v1.4)은 Google·Apple·Kakao·LINE
// 이며 X 는 목록에서 빠졌다 — 원장의 `MY/설정/X연결` 자리를 LINE 이 대신한다.
await cap.capture(
tester,
'F6_05_MY_설정_Apple연결',
AccountLinkScreen(
provider: AuthProviderKind.apple,
linker: SampleAccountLinker(),
),
);
await cap.capture(
tester,
'F6_06_MY_설정_Google연결',
AccountLinkScreen(
provider: AuthProviderKind.google,
linkedEmail: 'fan@gmail.com',
linker: SampleAccountLinker(
seed: const {AuthProviderKind.google: 'fan@gmail.com'},
),
),
);
await cap.capture(
tester,
'F6_07_MY_설정_Kakao연결',
AccountLinkScreen(
provider: AuthProviderKind.kakao,
linkedEmail: 'fan@kakao.com',
linker: SampleAccountLinker(
seed: const {AuthProviderKind.kakao: 'fan@kakao.com'},
),
),
);
await cap.capture(
tester,
'F6_08_MY_설정_LINE연결',
AccountLinkScreen(
provider: AuthProviderKind.line,
linker: SampleAccountLinker(),
),
);
await cap.capture(tester, 'F6_09_MY_설정_POP_상세', PopHistoryScreen(repository: sample));
await cap.capture(tester, 'F6_10_MY_설정_공지사항', NoticeListScreen(repository: sample));
final notices = await sample.notices();
await cap.capture(
tester,
'F6_11_MY_설정_공지사항_상세',
NoticeDetailScreen(notice: notices.first),
);
});
}