From c38a50a475f791e0c62b6c2d0b62547e4a11e0d5 Mon Sep 17 00:00:00 2001
From: Dariusz Rybicki <dariusz@elixxir.io>
Date: Mon, 19 Sep 2022 07:56:11 +0200
Subject: [PATCH] Make ReceivedFile.preview optional

---
 Sources/XXClient/Models/ReceivedFile.swift    |  4 +--
 .../Models/ReceivedFileTests.swift            | 28 +++++++++++++++++++
 2 files changed, 30 insertions(+), 2 deletions(-)

diff --git a/Sources/XXClient/Models/ReceivedFile.swift b/Sources/XXClient/Models/ReceivedFile.swift
index d5c12370..8aad9201 100644
--- a/Sources/XXClient/Models/ReceivedFile.swift
+++ b/Sources/XXClient/Models/ReceivedFile.swift
@@ -4,7 +4,7 @@ public struct ReceivedFile: Equatable {
   public init(
     transferId: Data,
     senderId: Data,
-    preview: Data,
+    preview: Data?,
     name: String,
     type: String,
     size: Int
@@ -19,7 +19,7 @@ public struct ReceivedFile: Equatable {
 
   public var transferId: Data
   public var senderId: Data
-  public var preview: Data
+  public var preview: Data?
   public var name: String
   public var type: String
   public var size: Int
diff --git a/Tests/XXClientTests/Models/ReceivedFileTests.swift b/Tests/XXClientTests/Models/ReceivedFileTests.swift
index 2a967cb9..636f7a5f 100644
--- a/Tests/XXClientTests/Models/ReceivedFileTests.swift
+++ b/Tests/XXClientTests/Models/ReceivedFileTests.swift
@@ -37,4 +37,32 @@ final class ReceivedFileTests: XCTestCase {
 
     XCTAssertNoDifference(decodedModel, model)
   }
+
+  func testDecodingWithoutPreview() throws {
+    let transferIdB64 = "B4Z9cwU18beRoGbk5xBjbcd5Ryi9ZUFA2UBvi8FOHWo="
+    let senderIdB64 = "emV6aW1hAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD"
+    let name = "testfile.txt"
+    let type = "text file"
+    let size: Int = 2048
+    let jsonString = """
+    {
+      "TransferID": "\(transferIdB64)",
+      "SenderID": "\(senderIdB64)",
+      "Name": "\(name)",
+      "Type": "\(type)",
+      "Size": \(size)
+    }
+    """
+    let jsonData = jsonString.data(using: .utf8)!
+    let model = try ReceivedFile.decode(jsonData)
+
+    XCTAssertNoDifference(model, ReceivedFile(
+      transferId: Data(base64Encoded: transferIdB64)!,
+      senderId: Data(base64Encoded: senderIdB64)!,
+      preview: nil,
+      name: name,
+      type: type,
+      size: size
+    ))
+  }
 }
-- 
GitLab