Figma 설명 프레임 반영 — 로그인·온보딩·스플래시 · HOME · GALAXY · 퀘스트·이클립스·알림
This commit is contained in:
@@ -110,6 +110,74 @@ void main() {
|
||||
);
|
||||
});
|
||||
|
||||
testWidgets('프로필 국가 — 사본 국가 리스트 모달(178:23489) 대로 국가명 · 단수 선택 · 「선택」 후 적용', (
|
||||
tester,
|
||||
) async {
|
||||
final (auth, repo) = await boot(tester, needs: true);
|
||||
await auth.signIn(SocialProvider.google);
|
||||
await tester.pumpAndSettle();
|
||||
for (final label in [
|
||||
'서비스 이용약관 (필수)',
|
||||
'개인정보 수집·이용 및 처리방침 동의 (필수)',
|
||||
'위치기반 서비스 이용약관 (필수)',
|
||||
'만 14세 이상입니다. (필수)',
|
||||
]) {
|
||||
await tester.tap(find.text(label));
|
||||
}
|
||||
await tester.pump();
|
||||
await tester.tap(find.text('완료'));
|
||||
await tester.pumpAndSettle();
|
||||
|
||||
await tester.tap(find.text('국가/지역').first);
|
||||
await tester.pumpAndSettle();
|
||||
await tester.scrollUntilVisible(
|
||||
find.text('대한민국'),
|
||||
300,
|
||||
scrollable: find.byType(Scrollable).last,
|
||||
);
|
||||
await tester.tap(find.text('대한민국'));
|
||||
await tester.pump();
|
||||
await tester.tap(find.widgetWithText(FilledButton, '선택'));
|
||||
await tester.pumpAndSettle();
|
||||
expect(find.textContaining('대한민국'), findsOneWidget);
|
||||
|
||||
await tester.enterText(find.byType(TextField).first, '우주팬');
|
||||
await tester.pump();
|
||||
await tester.tap(find.text('다음'));
|
||||
await tester.pumpAndSettle();
|
||||
expect(repo.profile?.country, 'KR');
|
||||
});
|
||||
|
||||
testWidgets('프로필 뒤로가기(511:86825) — 약관으로 돌아가 동의가 체크된 채 보이고 다시 기록하지 않는다', (
|
||||
tester,
|
||||
) async {
|
||||
final (auth, repo) = await boot(tester, needs: true);
|
||||
await auth.signIn(SocialProvider.google);
|
||||
await tester.pumpAndSettle();
|
||||
for (final label in [
|
||||
'서비스 이용약관 (필수)',
|
||||
'개인정보 수집·이용 및 처리방침 동의 (필수)',
|
||||
'위치기반 서비스 이용약관 (필수)',
|
||||
'만 14세 이상입니다. (필수)',
|
||||
]) {
|
||||
await tester.tap(find.text(label));
|
||||
}
|
||||
await tester.pump();
|
||||
await tester.tap(find.text('완료'));
|
||||
await tester.pumpAndSettle();
|
||||
final first = repo.agreed;
|
||||
|
||||
await tester.tap(find.byType(BackButton));
|
||||
await tester.pumpAndSettle();
|
||||
// 필수 4항이 이미 체크돼 있어 「완료」가 바로 켜져 있다.
|
||||
final done = find.widgetWithText(FilledButton, '완료');
|
||||
expect(tester.widget<FilledButton>(done).onPressed, isNotNull);
|
||||
await tester.tap(done);
|
||||
await tester.pumpAndSettle();
|
||||
expect(identical(repo.agreed, first), isTrue);
|
||||
expect(find.byType(BackButton), findsOneWidget); // ③ 프로필로 돌아왔다.
|
||||
});
|
||||
|
||||
testWidgets('가입 모드에서 받은 약관은 다시 묻지 않고 기록만 한다', (tester) async {
|
||||
final (auth, repo) = await boot(tester, needs: true);
|
||||
auth.pendingConsent = {
|
||||
|
||||
Reference in New Issue
Block a user