약관 동의 화면에 개인정보처리방침 고지 · 보기 링크 추가

This commit is contained in:
Sn-Kinos
2026-10-12 00:03:46 +09:00
parent c42fd615a6
commit 6e0aa5d43c
2 changed files with 71 additions and 28 deletions
+37 -1
View File
@@ -65,7 +65,6 @@ void main() {
}
// 개인정보처리방침은 체크 칸 없는 고지 · 보기 링크.
final policy = find.byKey(const ValueKey('privacy-policy-link'));
await tester.scrollUntilVisible(policy, 200);
await tester.tap(policy);
await tester.pumpAndSettle();
expect(find.text('개인정보처리방침'), findsOneWidget);
@@ -81,6 +80,43 @@ void main() {
expect(find.byType(BlockingProgress), findsNothing);
});
testWidgets('개인정보처리방침 고지는 스크롤 없이 하단 버튼 위에 보이고 체크 칸이 없다', (tester) async {
// iPhone 11 — 414x896pt · 상단 48 · 하단 34.
tester.view.physicalSize = const Size(828, 1792);
tester.view.devicePixelRatio = 2;
tester.view.padding = const FakeViewPadding(top: 96, bottom: 68);
addTearDown(tester.view.reset);
await tester.pumpWidget(const MaterialApp(home: TermsScreen()));
await tester.pumpAndSettle();
final notice = find.byKey(const ValueKey('privacy-policy-notice'));
expect(
find.descendant(
of: notice,
matching: find.text('개인정보 처리 내용은 개인정보처리방침에서 확인할 수 있습니다.'),
),
findsOneWidget,
);
final link = find.descendant(of: notice, matching: find.text('보기'));
expect(link, findsOneWidget);
expect(
find.descendant(of: notice, matching: find.byType(ImageIcon)),
findsNothing,
);
// 화면 안 · 「이전」 버튼 위.
expect(tester.getRect(link).bottom, lessThanOrEqualTo(896 - 34));
expect(
tester.getRect(notice).bottom,
lessThanOrEqualTo(
tester.getRect(find.widgetWithText(FilledButton, '이전')).top,
),
);
await tester.tap(link);
await tester.pumpAndSettle();
expect(find.text('개인정보처리방침'), findsOneWidget);
});
testWidgets('이미 동의한 계정은 약관 없이 HOME', (tester) async {
final auth = AuthRepository(
providers: [