Skip to content

Commit e61dc12

Browse files
committed
Fixes #32 Check for non-nil when finding similar dependencies
1 parent a00bb91 commit e61dc12

2 files changed

Lines changed: 18 additions & 2 deletions

File tree

Sources/WhoopDIKit/DependencyError.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ enum DependencyError: Error, CustomStringConvertible, Equatable {
3232
serviceDict: ServiceDictionary<DependencyDefinition>
3333
) -> DependencyError {
3434
let similarDependencies = serviceDict.allKeys().filter { key in
35-
key.name == missingDependency.name || key.type == missingDependency.type
35+
(key.name != nil && key.name == missingDependency.name) || key.type == missingDependency.type
3636
}
3737

3838
return .missingDependency(missingDependency: missingDependency,

Tests/WhoopDIKitTests/DependencyErrorTests.swift

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,23 @@ class DependencyErrorTests: XCTestCase {
2626
"""
2727
XCTAssertEqual(expected, error.description)
2828
}
29-
29+
30+
func test_description_missingDependency_noServiceKeyName_similarDependencies() {
31+
let factory = FactoryDefinition(name: nil, factory: { _ in "" })
32+
let serviceDict: ServiceDictionary<DependencyDefinition> = ServiceDictionary<DependencyDefinition>()
33+
serviceDict[ServiceKey(String.self, name: "other_name")] = factory
34+
serviceDict[ServiceKey(Int.self)] = factory
35+
let error = DependencyError.createMissingDependencyError(missingDependency: serviceKey,
36+
serviceDict: serviceDict)
37+
let expected = """
38+
Missing dependency for String with name: <no name>
39+
Container has a total of 2 dependencies.
40+
Similar dependencies:
41+
- String with name: other_name
42+
"""
43+
XCTAssertEqual(expected, error.description)
44+
}
45+
3046
func test_description_missingDependency_withServiceKeyName() {
3147
let error = DependencyError.createMissingDependencyError(missingDependency: serviceKeyWithName,
3248
serviceDict: emptyDict)

0 commit comments

Comments
 (0)