로그아웃 SDK 대기 제거 · 온보딩 국가 시트 · 프로필 머리줄

This commit is contained in:
Sn-Kinos
2026-10-06 04:47:37 +09:00
parent 976e569a56
commit 40756d5c86
21 changed files with 277 additions and 43 deletions
+29 -1
View File
@@ -228,7 +228,32 @@ void main() {
releaseMode: true,
);
await expectLater(auth.signOut(), throwsA(isA<StateError>()));
// SDK 로그아웃 실패는 로그만 남기고 호출자에게 던지지 않는다(처리되지 않은 예외 방지).
await auth.signOut();
expect(auth.isSignedIn, isFalse);
expect(provider.signOutCalls, 1);
expect(session.signOutCalls, 1);
auth.dispose();
await session.close();
});
test('SDK 로그아웃이 응답 없이 멈춰도 기다리지 않는다', () async {
final provider = _FakeProvider(
SocialProvider.google,
result: const AuthCancelled(),
signOutHangs: true,
);
final session = _FakeSession(
const AuthAccount(uid: 'google-user', provider: SocialProvider.google),
);
final auth = AuthRepository(
providers: [provider],
session: session,
releaseMode: true,
);
await auth.signOut().timeout(const Duration(milliseconds: 100));
expect(auth.isSignedIn, isFalse);
expect(provider.signOutCalls, 1);
@@ -245,6 +270,7 @@ final class _FakeProvider implements SocialAuthProvider {
this.result,
this.signInError,
this.signOutError,
this.signOutHangs = false,
});
@override
@@ -252,6 +278,7 @@ final class _FakeProvider implements SocialAuthProvider {
final AuthOutcome? result;
final Object? signInError;
final Object? signOutError;
final bool signOutHangs;
int signOutCalls = 0;
@override
@@ -269,6 +296,7 @@ final class _FakeProvider implements SocialAuthProvider {
@override
Future<void> signOut() async {
signOutCalls += 1;
if (signOutHangs) return Completer<void>().future;
if (signOutError case final error?) throw error;
}
}