Skip to content

Commit e25bbab

Browse files
tgrapperonp4checo
authored andcommitted
Add a test that checks that nested dependencies are correctly overridden (#1647)
(cherry picked from commit 9aa6ee1ca3f9f7c3bd9c413f9470373c5e47a6d9)
1 parent 4426228 commit e25bbab

File tree

1 file changed

+18
-0
lines changed

1 file changed

+18
-0
lines changed

Tests/DependenciesTests/DependencyValuesTests.swift

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -179,6 +179,15 @@ final class DependencyValuesTests: XCTestCase {
179179
XCTAssertEqual(childDependencyLateBindingEscaped.fetch(), 1_000)
180180
}
181181
}
182+
183+
func testNestedDependencyIsOverridden() {
184+
DependencyValues.withValue(\.nestedValue.value, 10) {
185+
@Dependency(\.nestedValue) var nestedValue: NestedValue
186+
@Dependency(\.nestedValue.value) var value: Int
187+
XCTAssertEqual(nestedValue.value, 10)
188+
XCTAssertEqual(value, 10)
189+
}
190+
}
182191
}
183192

184193
struct SomeDependency: TestDependencyKey {
@@ -201,6 +210,11 @@ struct ChildDependencyLateBinding: TestDependencyKey {
201210
}
202211
}
203212
}
213+
struct NestedValue: TestDependencyKey {
214+
static var testValue: Self { .init() }
215+
var value: Int = 0
216+
}
217+
204218
extension DependencyValues {
205219
var someDependency: SomeDependency {
206220
get { self[SomeDependency.self] }
@@ -214,6 +228,10 @@ extension DependencyValues {
214228
get { self[ChildDependencyLateBinding.self] }
215229
set { self[ChildDependencyLateBinding.self] = newValue }
216230
}
231+
var nestedValue: NestedValue {
232+
get { self[NestedValue.self] }
233+
set { self[NestedValue.self] = newValue }
234+
}
217235
}
218236

219237
private let someDate = Date(timeIntervalSince1970: 1_234_567_890)

0 commit comments

Comments
 (0)