Skip to content

Commit d7c8684

Browse files
committed
refactor: MainFeature alert 액션 단순화
1 parent 3ad930c commit d7c8684

2 files changed

Lines changed: 16 additions & 25 deletions

File tree

Application/DevLogPresentation/Sources/Main/MainFeature.swift

Lines changed: 4 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ struct MainFeature {
3333

3434
enum StoreAction: Equatable {
3535
case setUnreadPushCount(Int)
36-
case setAlert(Bool)
36+
case setAlert
3737
}
3838
}
3939

@@ -60,8 +60,8 @@ struct MainFeature {
6060
case .store(.setUnreadPushCount(let count)):
6161
state.unreadPushCount = count
6262
return updateBadgeCountEffect(count)
63-
case .store(.setAlert(let isPresented)):
64-
Self.setAlert(&state, isPresented: isPresented)
63+
case .store(.setAlert):
64+
state.alert = Self.alertState()
6565
}
6666

6767
return .none
@@ -111,7 +111,7 @@ private extension MainFeature {
111111
await send(.store(.setUnreadPushCount(count)))
112112
}
113113
} catch {
114-
await send(.store(.setAlert(true)))
114+
await send(.store(.setAlert))
115115
}
116116
}
117117
.cancellable(id: CancelID.unreadPushCount, cancelInFlight: true)
@@ -133,13 +133,6 @@ private extension MainFeature {
133133
}
134134
}
135135

136-
static func setAlert(
137-
_ state: inout State,
138-
isPresented: Bool
139-
) {
140-
state.alert = isPresented ? alertState() : nil
141-
}
142-
143136
static func alertState() -> AlertState<Never> {
144137
AlertState {
145138
TextState(String(localized: "common_error_title"))

Application/DevLogPresentation/Tests/Main/MainFeatureTests.swift

Lines changed: 12 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -85,19 +85,17 @@ struct MainFeatureTests {
8585
let reference = MainStateManagementReference()
8686
let store = makeStore()
8787

88-
let presentEffects = reference.reduce(.setAlert(true))
89-
await store.send(.store(.setAlert(true))) {
88+
let presentEffects = reference.reduce(.setAlert)
89+
await store.send(.store(.setAlert)) {
9090
$0.alert = reference.state.alert
9191
}
9292

93-
let dismissEffects = reference.reduce(.setAlert(false))
94-
await store.send(.store(.setAlert(false))) {
95-
$0.alert = reference.state.alert
93+
await store.send(.alert(.dismiss)) {
94+
$0.alert = nil
9695
}
9796

9897
#expect(presentEffects.isEmpty)
99-
#expect(dismissEffects.isEmpty)
100-
#expect(reference.state.alert == nil)
98+
#expect(reference.state.alert == expectedMainErrorAlert())
10199
}
102100

103101
@Test("MainFeature는 기존 Main 상태관리처럼 unread count 관찰 시작 실패 시 alert를 표시한다")
@@ -107,11 +105,11 @@ struct MainFeatureTests {
107105
let store = makeStore(unreadPushCountUseCase: unreadPushCountUseCase)
108106

109107
_ = reference.reduce(.onAppear)
110-
_ = reference.reduce(.setAlert(true))
108+
_ = reference.reduce(.setAlert)
111109
await store.send(.view(.onAppear)) {
112110
$0.isObservingUnreadPushCount = true
113111
}
114-
await store.receive(.store(.setAlert(true))) {
112+
await store.receive(.store(.setAlert)) {
115113
$0.alert = reference.state.alert
116114
}
117115
}
@@ -178,7 +176,7 @@ private final class MainStateManagementReference {
178176
case onAppear
179177
case selectedTabChanged(MainTab)
180178
case setUnreadPushCount(Int)
181-
case setAlert(Bool)
179+
case setAlert
182180
}
183181

184182
enum Effect: Equatable {
@@ -204,15 +202,15 @@ private final class MainStateManagementReference {
204202
case .setUnreadPushCount(let count):
205203
state.unreadPushCount = count
206204
return [.updateBadgeCount(count)]
207-
case .setAlert(let isPresented):
208-
setAlert(isPresented)
205+
case .setAlert:
206+
setAlert()
209207
}
210208

211209
return []
212210
}
213211

214-
private func setAlert(_ isPresented: Bool) {
215-
state.alert = isPresented ? expectedMainErrorAlert() : nil
212+
private func setAlert() {
213+
state.alert = expectedMainErrorAlert()
216214
}
217215
}
218216

0 commit comments

Comments
 (0)