diff --git a/Sources/Resolver.swift b/Sources/Resolver.swift index 953ece2eb..297de0325 100644 --- a/Sources/Resolver.swift +++ b/Sources/Resolver.swift @@ -8,7 +8,7 @@ public final class Resolver { deinit { if case .pending = box.inspect() { - conf.logHandler(.waitOnMainThread) + conf.logHandler(.pendingPromiseDeallocated) } } } diff --git a/Tests/CorePromise/LoggingTests.swift b/Tests/CorePromise/LoggingTests.swift index 742e4a75c..e0b3b06a3 100644 --- a/Tests/CorePromise/LoggingTests.swift +++ b/Tests/CorePromise/LoggingTests.swift @@ -153,5 +153,27 @@ class LoggingTests: XCTestCase { XCTAssertEqual(logOutput!, "waitOnMainThread") } + // Verify pendingPromiseDeallocated is logged + func testPendingPromiseDeallocatedIsLogged() { + + var logOutput: String? = nil + conf.logHandler = { event in + switch event { + case .waitOnMainThread: + logOutput = "\(event)" + case .pendingPromiseDeallocated: + logOutput = "\(event)" + case .cauterized: + // Using an enum with associated value does not convert to a string properly in + // earlier versions of swift + logOutput = "cauterized" + } + } + do { + let _ = Promise.pending() + } + XCTAssertEqual ("pendingPromiseDeallocated", logOutput!) + } + //TODO Verify pending promise deallocation is logged }