Browse Source

Merge pull request #2457 from onevcat/fix/flaky-image-provider-tests

Fix flaky image provider retrieve tests
Wei Wang 1 month ago
parent
commit
eaefae03db
1 changed files with 6 additions and 16 deletions
  1. 6 16
      Tests/KingfisherTests/KingfisherManagerTests.swift

+ 6 - 16
Tests/KingfisherTests/KingfisherManagerTests.swift

@@ -950,26 +950,21 @@ class KingfisherManagerTests: XCTestCase {
 #endif
     
     func testRetrieveWithImageProvider() {
+        let exp = expectation(description: #function)
         let provider = SimpleImageDataProvider(cacheKey: "key") { .success(testImageData) }
-        let called = ActorBox(false)
         manager.defaultOptions = .empty
         _ = manager.retrieveImage(with: .provider(provider), options: [.processingQueue(.mainCurrentOrAsync)]) {
             result in
             XCTAssertNotNil(result.value)
             XCTAssertTrue(result.value!.image.renderEqual(to: testImage))
-            Task {
-                await called.setValue(true)
-            }
-        }
-        Task {
-            let result = await called.value
-            XCTAssertTrue(result)
+            exp.fulfill()
         }
+        waitForExpectations(timeout: 3, handler: nil)
     }
     
     func testRetrieveWithImageProviderFail() {
+        let exp = expectation(description: #function)
         let provider = SimpleImageDataProvider(cacheKey: "key") { .failure(SimpleImageDataProvider.E()) }
-        let called = ActorBox(false)
         _ = manager.retrieveImage(with: .provider(provider)) { result in
             XCTAssertNotNil(result.error)
             if case .imageSettingError(reason: .dataProviderError(_, let error)) = result.error! {
@@ -977,14 +972,9 @@ class KingfisherManagerTests: XCTestCase {
             } else {
                 XCTFail()
             }
-            Task {
-                await called.setValue(true)
-            }
-        }
-        Task {
-            let result = await called.value
-            XCTAssertTrue(result)
+            exp.fulfill()
         }
+        waitForExpectations(timeout: 3, handler: nil)
     }
 
     func testContextRemovingAlternativeSource() {