Skip to content

Commit beb3a3b

Browse files
committed
refactor: DependencyKey 개선
1 parent a2ae719 commit beb3a3b

3 files changed

Lines changed: 12 additions & 24 deletions

File tree

Application/DevLogPresentation/Sources/Login/LoginFeature.swift

Lines changed: 10 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ struct LoginFeature {
2929
case error
3030
}
3131

32-
@Dependency(SignInUseCaseDependency.self) var signInUseCase
32+
@Dependency(\.signInUseCase) var signInUseCase
3333

3434
var body: some ReducerOf<Self> {
3535
Reduce { state, action in
@@ -61,32 +61,20 @@ struct LoginFeature {
6161
}
6262
}
6363

64-
struct SignInUseCaseDependency {
65-
var execute: (AuthProvider) async throws -> Void
66-
67-
init(execute: @escaping (AuthProvider) async throws -> Void) {
68-
self.execute = execute
64+
extension DependencyValues {
65+
var signInUseCase: SignInUseCase {
66+
get { self[SignInUseCaseKey.self] }
67+
set { self[SignInUseCaseKey.self] = newValue }
6968
}
7069
}
7170

72-
extension SignInUseCaseDependency: DependencyKey {
73-
static let liveValue = Self { _ in
74-
preconditionFailure("SignInUseCaseDependency must be provided.")
75-
}
76-
77-
static let testValue = liveValue
78-
79-
static func live(_ signInUseCase: SignInUseCase) -> SignInUseCaseDependency {
80-
Self {
81-
try await signInUseCase.execute($0)
82-
}
71+
private enum SignInUseCaseKey: DependencyKey {
72+
static var liveValue: SignInUseCase {
73+
preconditionFailure("SignInUseCase must be provided.")
8374
}
84-
}
8575

86-
extension DependencyValues {
87-
var signInUseCase: SignInUseCaseDependency {
88-
get { self[SignInUseCaseDependency.self] }
89-
set { self[SignInUseCaseDependency.self] = newValue }
76+
static var testValue: SignInUseCase {
77+
liveValue
9078
}
9179
}
9280

Application/DevLogPresentation/Sources/Login/LoginView.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ struct LoginView: View {
2020
) {
2121
LoginFeature()
2222
} withDependencies: {
23-
$0.signInUseCase = .live(signInUseCase)
23+
$0.signInUseCase = signInUseCase
2424
})
2525
}
2626

Application/DevLogPresentation/Tests/Login/LoginFeatureTests.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -171,7 +171,7 @@ private struct LoginTestDriver {
171171
) {
172172
LoginFeature()
173173
} withDependencies: {
174-
$0.signInUseCase = .live(useCase)
174+
$0.signInUseCase = useCase
175175
}
176176
}
177177

0 commit comments

Comments
 (0)