From a6a0ef7b4e91bf1e23c27cf4fd27b4682d4f9890 Mon Sep 17 00:00:00 2001
From: Dariusz Rybicki <dariusz@elixxir.io>
Date: Tue, 1 Nov 2022 11:32:08 +0100
Subject: [PATCH] Remove error property from Progress model

---
 .../ReceiveFileHandler.swift                  | 11 ----
 .../Sources/AppCore/SendImage/SendImage.swift | 11 ----
 .../ReceiveFileHandlerTests.swift             |  8 ---
 .../SendImage/SendImageTests.swift            |  8 ---
 Sources/XXClient/Models/Progress.swift        |  6 +--
 .../Functions/MessengerReceiveFile.swift      |  5 +-
 .../Functions/MessengerSendFile.swift         |  6 +--
 .../XXClientTests/Models/ProgressTests.swift  | 30 +----------
 .../Functions/MessengerReceiveFileTests.swift | 49 ++---------------
 .../Functions/MessengerSendFileTests.swift    | 52 ++-----------------
 10 files changed, 13 insertions(+), 173 deletions(-)

diff --git a/Examples/xx-messenger/Sources/AppCore/ReceiveFileHandler/ReceiveFileHandler.swift b/Examples/xx-messenger/Sources/AppCore/ReceiveFileHandler/ReceiveFileHandler.swift
index 84abe3c5..733a0522 100644
--- a/Examples/xx-messenger/Sources/AppCore/ReceiveFileHandler/ReceiveFileHandler.swift
+++ b/Examples/xx-messenger/Sources/AppCore/ReceiveFileHandler/ReceiveFileHandler.swift
@@ -5,14 +5,6 @@ import XXMessengerClient
 import XXModels
 
 public struct ReceiveFileHandler {
-  public struct ProgressError: Error {
-    public init(message: String) {
-      self.message = message
-    }
-
-    public var message: String
-  }
-
   public typealias OnError = (Error) -> Void
 
   public var run: (@escaping OnError) -> Cancellable
@@ -75,9 +67,6 @@ extension ReceiveFileHandler {
 
             case .failed(.callbackError(let error)):
               onError(error)
-
-            case .failed(.progressError(let message)):
-              onError(ProgressError(message: message))
             }
           }
         } catch {
diff --git a/Examples/xx-messenger/Sources/AppCore/SendImage/SendImage.swift b/Examples/xx-messenger/Sources/AppCore/SendImage/SendImage.swift
index a457dcd4..00720b56 100644
--- a/Examples/xx-messenger/Sources/AppCore/SendImage/SendImage.swift
+++ b/Examples/xx-messenger/Sources/AppCore/SendImage/SendImage.swift
@@ -5,14 +5,6 @@ import XXMessengerClient
 import XXModels
 
 public struct SendImage {
-  public struct ProgressError: Error, Equatable {
-    public init(message: String) {
-      self.message = message
-    }
-
-    public var message: String
-  }
-
   public typealias OnError = (Error) -> Void
   public typealias Completion = () -> Void
 
@@ -78,9 +70,6 @@ extension SendImage {
           case .failed(_, .error(let error)):
             onError(error)
 
-          case .failed(_, .progressError(let message)):
-            onError(ProgressError(message: message))
-
           case .failed(_, .close(let error)):
             onError(error)
           }
diff --git a/Examples/xx-messenger/Tests/AppCoreTests/ReceiveFileHandler/ReceiveFileHandlerTests.swift b/Examples/xx-messenger/Tests/AppCoreTests/ReceiveFileHandler/ReceiveFileHandlerTests.swift
index 6d54a9cf..ce6a2e22 100644
--- a/Examples/xx-messenger/Tests/AppCoreTests/ReceiveFileHandler/ReceiveFileHandlerTests.swift
+++ b/Examples/xx-messenger/Tests/AppCoreTests/ReceiveFileHandler/ReceiveFileHandlerTests.swift
@@ -138,14 +138,6 @@ final class ReceiveFileHandlerTests: XCTestCase {
       .didCatchError(receivingFileCallbackError)
     ])
 
-    actions = []
-    let receivingFileProgressError = "receiving-file-progress"
-    receivingFileCallback?(.failed(.progressError(receivingFileProgressError)))
-
-    XCTAssertNoDifference(actions, [
-      .didCatchError(ReceiveFileHandler.ProgressError(message: receivingFileProgressError) as NSError)
-    ])
-
     actions = []
     receivingFileCallback?(.progress(transmitted: 1, total: 2))
 
diff --git a/Examples/xx-messenger/Tests/AppCoreTests/SendImage/SendImageTests.swift b/Examples/xx-messenger/Tests/AppCoreTests/SendImage/SendImageTests.swift
index d1cb1741..1afbc1c8 100644
--- a/Examples/xx-messenger/Tests/AppCoreTests/SendImage/SendImageTests.swift
+++ b/Examples/xx-messenger/Tests/AppCoreTests/SendImage/SendImageTests.swift
@@ -112,14 +112,6 @@ final class SendImageTests: XCTestCase {
       .didFail(closeError),
     ])
 
-    actions = []
-    let progressError = "progress-error"
-    sendFileCallback?(.failed(id: transferId, .progressError(progressError)))
-
-    XCTAssertNoDifference(actions, [
-      .didFail(SendImage.ProgressError(message: progressError) as NSError),
-    ])
-
     actions = []
     sendFileCallback?(.progress(id: transferId, transmitted: 1, total: 2))
 
diff --git a/Sources/XXClient/Models/Progress.swift b/Sources/XXClient/Models/Progress.swift
index ba2e199d..5d4e1364 100644
--- a/Sources/XXClient/Models/Progress.swift
+++ b/Sources/XXClient/Models/Progress.swift
@@ -4,19 +4,16 @@ public struct Progress: Equatable {
   public init(
     completed: Bool,
     transmitted: Int,
-    total: Int,
-    error: String?
+    total: Int
   ) {
     self.completed = completed
     self.transmitted = transmitted
     self.total = total
-    self.error = error
   }
 
   public var completed: Bool
   public var transmitted: Int
   public var total: Int
-  public var error: String?
 }
 
 extension Progress: Codable {
@@ -24,7 +21,6 @@ extension Progress: Codable {
     case completed = "Completed"
     case transmitted = "Transmitted"
     case total = "Total"
-    case error = "Err"
   }
 
   public static func decode(_ data: Data) throws -> Self {
diff --git a/Sources/XXMessengerClient/Messenger/Functions/MessengerReceiveFile.swift b/Sources/XXMessengerClient/Messenger/Functions/MessengerReceiveFile.swift
index ef4290f8..399de8c0 100644
--- a/Sources/XXMessengerClient/Messenger/Functions/MessengerReceiveFile.swift
+++ b/Sources/XXMessengerClient/Messenger/Functions/MessengerReceiveFile.swift
@@ -19,7 +19,6 @@ public struct MessengerReceiveFile {
   public enum CallbackInfo: Equatable {
     public enum Failure: Equatable {
       case callbackError(NSError)
-      case progressError(String)
       case receiveError(NSError)
     }
 
@@ -56,9 +55,7 @@ extension MessengerReceiveFile {
         callback: FileTransferProgressCallback { result in
           switch result {
           case .success(let info):
-            if let error = info.progress.error {
-              callback(.failed(.progressError(error)))
-            } else if info.progress.completed {
+            if info.progress.completed {
               do {
                 callback(.finished(try fileTransfer.receive(transferId: params.transferId)))
               } catch {
diff --git a/Sources/XXMessengerClient/Messenger/Functions/MessengerSendFile.swift b/Sources/XXMessengerClient/Messenger/Functions/MessengerSendFile.swift
index fde8607c..8a0b1776 100644
--- a/Sources/XXMessengerClient/Messenger/Functions/MessengerSendFile.swift
+++ b/Sources/XXMessengerClient/Messenger/Functions/MessengerSendFile.swift
@@ -25,7 +25,6 @@ public struct MessengerSendFile {
   public enum CallbackInfo: Equatable {
     public enum Failure: Equatable {
       case error(NSError)
-      case progressError(String)
       case close(NSError)
     }
 
@@ -81,10 +80,7 @@ extension MessengerSendFile {
             close(id: transferId)
 
           case .success(let cb):
-            if let error = cb.progress.error {
-              callback(.failed(id: transferId, .progressError(error)))
-              close(id: transferId)
-            } else if cb.progress.completed {
+            if cb.progress.completed {
               callback(.finished(id: transferId))
               close(id: transferId)
             } else {
diff --git a/Tests/XXClientTests/Models/ProgressTests.swift b/Tests/XXClientTests/Models/ProgressTests.swift
index 35a083c2..6b834269 100644
--- a/Tests/XXClientTests/Models/ProgressTests.swift
+++ b/Tests/XXClientTests/Models/ProgressTests.swift
@@ -11,8 +11,7 @@ final class ProgressTests: XCTestCase {
     {
       "Completed": \(completed),
       "Transmitted": \(transmitted),
-      "Total": \(total),
-      "Err": null
+      "Total": \(total)
     }
     """
     let jsonData = jsonString.data(using: .utf8)!
@@ -21,8 +20,7 @@ final class ProgressTests: XCTestCase {
     XCTAssertNoDifference(model, Progress(
       completed: completed,
       transmitted: transmitted,
-      total: total,
-      error: nil
+      total: total
     ))
 
     let encodedModel = try model.encode()
@@ -30,28 +28,4 @@ final class ProgressTests: XCTestCase {
 
     XCTAssertNoDifference(decodedModel, model)
   }
-
-  func testDecodingProgressWithError() throws {
-    let completed = false
-    let transmitted: Int = 128
-    let total: Int = 2048
-    let error = "something went wrong"
-    let jsonString = """
-    {
-      "Completed": \(completed),
-      "Transmitted": \(transmitted),
-      "Total": \(total),
-      "Err": "\(error)"
-    }
-    """
-    let jsonData = jsonString.data(using: .utf8)!
-    let model = try Progress.decode(jsonData)
-
-    XCTAssertNoDifference(model, Progress(
-      completed: completed,
-      transmitted: transmitted,
-      total: total,
-      error: error
-    ))
-  }
 }
diff --git a/Tests/XXMessengerClientTests/Messenger/Functions/MessengerReceiveFileTests.swift b/Tests/XXMessengerClientTests/Messenger/Functions/MessengerReceiveFileTests.swift
index 554b7f30..b2fcefd8 100644
--- a/Tests/XXMessengerClientTests/Messenger/Functions/MessengerReceiveFileTests.swift
+++ b/Tests/XXMessengerClientTests/Messenger/Functions/MessengerReceiveFileTests.swift
@@ -48,8 +48,7 @@ final class MessengerReceiveFileTests: XCTestCase {
         progress: Progress(
           completed: false,
           transmitted: 1,
-          total: 3,
-          error: nil
+          total: 3
         ),
         partTracker: .unimplemented
       )
@@ -65,8 +64,7 @@ final class MessengerReceiveFileTests: XCTestCase {
         progress: Progress(
           completed: false,
           transmitted: 2,
-          total: 3,
-          error: nil
+          total: 3
         ),
         partTracker: .unimplemented
       )
@@ -82,8 +80,7 @@ final class MessengerReceiveFileTests: XCTestCase {
         progress: Progress(
           completed: true,
           transmitted: 3,
-          total: 3,
-          error: nil
+          total: 3
         ),
         partTracker: .unimplemented
       )
@@ -110,43 +107,6 @@ final class MessengerReceiveFileTests: XCTestCase {
     }
   }
 
-  func testReceiveFileProgressError() throws {
-    let error = "Something went wrong..."
-
-    var receivedProgressCallback: FileTransferProgressCallback?
-    var didReceiveCallback: [MessengerReceiveFile.CallbackInfo] = []
-
-    var env: MessengerEnvironment = .unimplemented
-    env.fileTransfer.get = {
-      var fileTransfer: FileTransfer = .unimplemented
-      fileTransfer.registerReceivedProgressCallback.run = { _, _, callback in
-        receivedProgressCallback = callback
-      }
-      return fileTransfer
-    }
-    let receiveFile: MessengerReceiveFile = .live(env)
-
-    try receiveFile(.stub) { info in
-      didReceiveCallback.append(info)
-    }
-
-    receivedProgressCallback?.handle(.success(
-      FileTransferProgressCallback.Callback(
-        progress: Progress(
-          completed: false,
-          transmitted: 1,
-          total: 3,
-          error: error
-        ),
-        partTracker: .unimplemented
-      )
-    ))
-
-    XCTAssertNoDifference(didReceiveCallback, [
-      .failed(.progressError(error))
-    ])
-  }
-
   func testReceiveFileCallbackError() throws {
     let error = NSError(domain: "test", code: 123)
 
@@ -202,8 +162,7 @@ final class MessengerReceiveFileTests: XCTestCase {
         progress: Progress(
           completed: true,
           transmitted: 3,
-          total: 3,
-          error: nil
+          total: 3
         ),
         partTracker: .unimplemented
       )
diff --git a/Tests/XXMessengerClientTests/Messenger/Functions/MessengerSendFileTests.swift b/Tests/XXMessengerClientTests/Messenger/Functions/MessengerSendFileTests.swift
index 4e1c1763..54823eb8 100644
--- a/Tests/XXMessengerClientTests/Messenger/Functions/MessengerSendFileTests.swift
+++ b/Tests/XXMessengerClientTests/Messenger/Functions/MessengerSendFileTests.swift
@@ -47,8 +47,7 @@ final class MessengerSendFileTests: XCTestCase {
       progress: Progress(
         completed: false,
         transmitted: 1,
-        total: 10,
-        error: nil
+        total: 10
       ),
       partTracker: .unimplemented
     )))
@@ -56,8 +55,7 @@ final class MessengerSendFileTests: XCTestCase {
       progress: Progress(
         completed: false,
         transmitted: 6,
-        total: 10,
-        error: nil
+        total: 10
       ),
       partTracker: .unimplemented
     )))
@@ -65,8 +63,7 @@ final class MessengerSendFileTests: XCTestCase {
       progress: Progress(
         completed: true,
         transmitted: 10,
-        total: 10,
-        error: nil
+        total: 10
       ),
       partTracker: .unimplemented
     )))
@@ -124,46 +121,6 @@ final class MessengerSendFileTests: XCTestCase {
     XCTAssertNoDifference(didCloseSend, [transferId])
   }
 
-  func testSendFileProgressError() throws {
-    var didCloseSend: [Data] = []
-    var didReceiveCallback: [MessengerSendFile.CallbackInfo] = []
-    var fileTransferProgressCallback: FileTransferProgressCallback!
-
-    var env: MessengerEnvironment = .unimplemented
-    env.fileTransfer.get = {
-      var fileTransfer: FileTransfer = .unimplemented
-      fileTransfer.send.run = { _, callback in
-        fileTransferProgressCallback = callback
-        return "transferId".data(using: .utf8)!
-      }
-      fileTransfer.closeSend.run = { id in
-        didCloseSend.append(id)
-      }
-      return fileTransfer
-    }
-    let sendFile: MessengerSendFile = .live(env)
-
-    let transferId = try sendFile(.stub) { info in
-      didReceiveCallback.append(info)
-    }
-
-    let error = "something went wrong"
-    fileTransferProgressCallback.handle(.success(.init(
-      progress: .init(
-        completed: false,
-        transmitted: 0,
-        total: 0,
-        error: error
-      ),
-      partTracker: .unimplemented
-    )))
-
-    XCTAssertNoDifference(didReceiveCallback, [
-      .failed(id: transferId, .progressError(error)),
-    ])
-    XCTAssertNoDifference(didCloseSend, [transferId])
-  }
-
   func testSendFileCloseError() throws {
     let closeError = NSError(domain: "test", code: 1234)
 
@@ -192,8 +149,7 @@ final class MessengerSendFileTests: XCTestCase {
       progress: .init(
         completed: true,
         transmitted: 1,
-        total: 1,
-        error: nil
+        total: 1
       ),
       partTracker: .unimplemented
     )))
-- 
GitLab