Skip to content

Commit fecfa51

Browse files
committed
fix: 위젯 세션 동기화 메인 스레드 처리
1 parent e9b9894 commit fecfa51

2 files changed

Lines changed: 15 additions & 2 deletions

File tree

Application/DevLogApp/Sources/App/Handler/WidgetSessionSyncHandler.swift

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
//
77

88
import Combine
9+
import Foundation
910
import DevLogData
1011

1112
final class WidgetSessionSyncHandler {
@@ -23,6 +24,7 @@ final class WidgetSessionSyncHandler {
2324

2425
authService.observeSignedIn()
2526
.removeDuplicates()
27+
.receive(on: DispatchQueue.main)
2628
.sink { [weak self] isSignedIn in
2729
self?.handleSessionUpdate(isSignedIn: isSignedIn)
2830
}

Application/DevLogApp/Tests/App/WidgetSessionSyncHandlerTests.swift

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,14 @@
66
//
77

88
import Combine
9+
import Foundation
910
import Testing
1011
import DevLogData
1112
@testable import DevLog
1213

1314
struct WidgetSessionSyncHandlerTests {
1415
@Test("로그인 세션 true 첫 진입에서만 위젯 초기 동기화를 요청한다")
15-
func 로그인_세션_true_첫_진입에서만_위젯_초기_동기화를_요청한다() {
16+
func 로그인_세션_true_첫_진입에서만_위젯_초기_동기화를_요청한다() async {
1617
let authServiceSpy = AuthServiceSpy()
1718
let widgetSyncEventBusSpy = WidgetSyncEventBusSpy()
1819
let widgetSessionSyncHandler = WidgetSessionSyncHandler(
@@ -23,12 +24,17 @@ struct WidgetSessionSyncHandlerTests {
2324
authServiceSpy.send(true)
2425
authServiceSpy.send(true)
2526

27+
await withCheckedContinuation { continuation in
28+
DispatchQueue.main.async {
29+
continuation.resume()
30+
}
31+
}
2632
#expect(widgetSyncEventBusSpy.events == [.syncRequested])
2733
_ = widgetSessionSyncHandler
2834
}
2935

3036
@Test("로그아웃 이후 재로그인 시 위젯 초기 동기화를 다시 요청한다")
31-
func 로그아웃_이후_재로그인_시_위젯_초기_동기화를_다시_요청한다() {
37+
func 로그아웃_이후_재로그인_시_위젯_초기_동기화를_다시_요청한다() async {
3238
let authServiceSpy = AuthServiceSpy()
3339
let widgetSyncEventBusSpy = WidgetSyncEventBusSpy()
3440
let widgetSessionSyncHandler = WidgetSessionSyncHandler(
@@ -40,6 +46,11 @@ struct WidgetSessionSyncHandlerTests {
4046
authServiceSpy.send(false)
4147
authServiceSpy.send(true)
4248

49+
await withCheckedContinuation { continuation in
50+
DispatchQueue.main.async {
51+
continuation.resume()
52+
}
53+
}
4354
#expect(widgetSyncEventBusSpy.events == [.syncRequested, .syncRequested])
4455
_ = widgetSessionSyncHandler
4556
}

0 commit comments

Comments
 (0)