diff --git a/Sources/Dependencies/WithDependencies.swift b/Sources/Dependencies/WithDependencies.swift index 24c800d9..95c2b5f5 100644 --- a/Sources/Dependencies/WithDependencies.swift +++ b/Sources/Dependencies/WithDependencies.swift @@ -41,11 +41,11 @@ import Foundation /// /// - Parameter updateValues: A closure for updating the current dependency values for the /// lifetime of your application. -public func prepareDependencies( - _ updateValues: (inout DependencyValues) throws -> Void -) rethrows { +public func prepareDependencies( + _ updateValues: (inout DependencyValues) throws -> R +) rethrows -> R { var dependencies = DependencyValues._current - try DependencyValues.$preparationID.withValue(UUID()) { + return try DependencyValues.$preparationID.withValue(UUID()) { try updateValues(&dependencies) } } diff --git a/Tests/DependenciesTests/DependencyValuesTests.swift b/Tests/DependenciesTests/DependencyValuesTests.swift index f9513fe2..9a7c9a1e 100644 --- a/Tests/DependenciesTests/DependencyValuesTests.swift +++ b/Tests/DependenciesTests/DependencyValuesTests.swift @@ -736,6 +736,13 @@ final class DependencyValuesTests: XCTestCase { XCTAssertEqual(now, Date(timeIntervalSinceReferenceDate: 0)) } + func testPrepareDependencies_returnResult() { + let result = prepareDependencies { _ in + 42 + } + XCTAssertEqual(result, 42) + } + func testPrepareDependencies_setsLiveContext() { prepareDependencies { $0.context = .live