로그아웃 SDK 대기 제거 · 온보딩 국가 시트 · 프로필 머리줄
This commit is contained in:
@@ -3,12 +3,15 @@ import 'dart:async';
|
||||
import 'package:fancake/app.dart';
|
||||
import 'package:fancake/core/data/repositories.dart';
|
||||
import 'package:fancake/core/firebase/firebase_boot.dart';
|
||||
import 'package:fancake/core/i18n/app_locale.dart';
|
||||
import 'package:fancake/features/planet/planet_data.dart' show countryName;
|
||||
import 'package:fancake/features/auth/auth.dart';
|
||||
import 'package:fancake/features/auth/auth_repository.dart';
|
||||
import 'package:fancake/features/auth/login_screen.dart';
|
||||
import 'package:fancake/features/auth/onboarding_data.dart';
|
||||
import 'package:fancake/features/auth/onboarding_screens.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
import 'package:flutter_test/flutter_test.dart';
|
||||
import 'package:shared_preferences/shared_preferences.dart';
|
||||
|
||||
@@ -57,7 +60,9 @@ void main() {
|
||||
expect(find.byType(NavigationBar), findsOneWidget);
|
||||
});
|
||||
|
||||
testWidgets('동의한 계정은 셸로 가는 동안 약관 화면이 한 프레임도 그려지지 않는다 — 10/6 콜드 스타트 깜빡임', (tester) async {
|
||||
testWidgets('동의한 계정은 셸로 가는 동안 약관 화면이 한 프레임도 그려지지 않는다 — 10/6 콜드 스타트 깜빡임', (
|
||||
tester,
|
||||
) async {
|
||||
// 서버 판정이 몇 프레임 걸리는 실기기처럼 늦춘다.
|
||||
final (auth, _) = await boot(
|
||||
tester,
|
||||
@@ -148,8 +153,11 @@ void main() {
|
||||
await tester.tap(find.text('완료'));
|
||||
await tester.pumpAndSettle();
|
||||
|
||||
await tester.tap(find.text('국가/지역').first);
|
||||
await tester.tap(
|
||||
find.ancestor(of: find.text('거주 국가/지역'), matching: find.byType(InkWell)),
|
||||
);
|
||||
await tester.pumpAndSettle();
|
||||
expect(find.text('거주 국가/지역 선택'), findsOneWidget);
|
||||
await tester.scrollUntilVisible(
|
||||
find.text('대한민국'),
|
||||
300,
|
||||
@@ -210,7 +218,34 @@ void main() {
|
||||
await auth.signIn(SocialProvider.google, signUp: true);
|
||||
await tester.pumpAndSettle();
|
||||
expect(repo.agreed, contains('marketing'));
|
||||
expect(find.text('프로필을 설정해 주세요'), findsOneWidget);
|
||||
expect(find.text('거주 국가/지역'), findsOneWidget); // ③ 프로필
|
||||
expect(find.text('회원가입'), findsOneWidget); // 511:86825 머리줄 가운데 타이틀
|
||||
});
|
||||
|
||||
test('국가명은 OS 이름 · OS 정렬 순서 — 이름 없는 나라도 코드로 보이지 않는다', () async {
|
||||
TestWidgetsFlutterBinding.ensureInitialized();
|
||||
const channel = MethodChannel('kr.co.fanuzu.app/locale');
|
||||
final messenger =
|
||||
TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger;
|
||||
String? asked;
|
||||
messenger.setMockMethodCallHandler(channel, (call) async {
|
||||
asked = (call.arguments as Map)['locale'] as String;
|
||||
return [
|
||||
['GH', '가나'],
|
||||
['AD', '안도라'],
|
||||
['KR', '대한민국'],
|
||||
];
|
||||
});
|
||||
addTearDown(() {
|
||||
messenger.setMockMethodCallHandler(channel, null);
|
||||
platformCountryNames = const {};
|
||||
});
|
||||
|
||||
await loadCountryNames(const Locale('ko'));
|
||||
expect(asked, 'ko');
|
||||
expect(countryName('AD'), '안도라');
|
||||
expect(sortedCountries().take(3), ['GH', 'AD', 'KR']);
|
||||
expect(sortedCountries().length, isoCountries.length);
|
||||
});
|
||||
|
||||
testWidgets('첫 실행은 소개 3장 — 건너뛰기를 눌러도 로그인 화면', (tester) async {
|
||||
|
||||
Reference in New Issue
Block a user