Skip to content

Commit 52b5e1a

Browse files
authored
Allow prepareDependencies to return result. (#332)
1 parent 565a7be commit 52b5e1a

File tree

2 files changed

+11
-4
lines changed

2 files changed

+11
-4
lines changed

Sources/Dependencies/WithDependencies.swift

+4-4
Original file line numberDiff line numberDiff line change
@@ -41,11 +41,11 @@ import Foundation
4141
///
4242
/// - Parameter updateValues: A closure for updating the current dependency values for the
4343
/// lifetime of your application.
44-
public func prepareDependencies(
45-
_ updateValues: (inout DependencyValues) throws -> Void
46-
) rethrows {
44+
public func prepareDependencies<R>(
45+
_ updateValues: (inout DependencyValues) throws -> R
46+
) rethrows -> R {
4747
var dependencies = DependencyValues._current
48-
try DependencyValues.$preparationID.withValue(UUID()) {
48+
return try DependencyValues.$preparationID.withValue(UUID()) {
4949
try updateValues(&dependencies)
5050
}
5151
}

Tests/DependenciesTests/DependencyValuesTests.swift

+7
Original file line numberDiff line numberDiff line change
@@ -736,6 +736,13 @@ final class DependencyValuesTests: XCTestCase {
736736
XCTAssertEqual(now, Date(timeIntervalSinceReferenceDate: 0))
737737
}
738738

739+
func testPrepareDependencies_returnResult() {
740+
let result = prepareDependencies { _ in
741+
42
742+
}
743+
XCTAssertEqual(result, 42)
744+
}
745+
739746
func testPrepareDependencies_setsLiveContext() {
740747
prepareDependencies {
741748
$0.context = .live

0 commit comments

Comments
 (0)