From 14b12aba6f45df9fd1d8a46f68b42aee891c9f7c Mon Sep 17 00:00:00 2001
From: Dariusz Rybicki <dariusz@elixxir.io>
Date: Wed, 19 Oct 2022 11:23:51 +0200
Subject: [PATCH] Start file transfer when app starts

---
 .../Sources/HomeFeature/HomeFeature.swift             |  4 ++++
 .../Tests/HomeFeatureTests/HomeFeatureTests.swift     | 11 +++++++++++
 2 files changed, 15 insertions(+)

diff --git a/Examples/xx-messenger/Sources/HomeFeature/HomeFeature.swift b/Examples/xx-messenger/Sources/HomeFeature/HomeFeature.swift
index f2015ebc..6433dd33 100644
--- a/Examples/xx-messenger/Sources/HomeFeature/HomeFeature.swift
+++ b/Examples/xx-messenger/Sources/HomeFeature/HomeFeature.swift
@@ -151,6 +151,10 @@ public let homeReducer = Reducer<HomeState, HomeAction, HomeEnvironment>
             try env.messenger.listenForMessages()
           }
 
+          if env.messenger.isFileTransferRunning() == false {
+            try env.messenger.startFileTransfer()
+          }
+
           if env.messenger.isLoggedIn() == false {
             if try env.messenger.isRegistered() == false {
               return .success(.messenger(.didStartUnregistered))
diff --git a/Examples/xx-messenger/Tests/HomeFeatureTests/HomeFeatureTests.swift b/Examples/xx-messenger/Tests/HomeFeatureTests/HomeFeatureTests.swift
index 3a57414b..6c23ff8b 100644
--- a/Examples/xx-messenger/Tests/HomeFeatureTests/HomeFeatureTests.swift
+++ b/Examples/xx-messenger/Tests/HomeFeatureTests/HomeFeatureTests.swift
@@ -22,6 +22,7 @@ final class HomeFeatureTests: XCTestCase {
     var messengerDidStartWithTimeout: [Int] = []
     var messengerDidConnect = 0
     var messengerDidListenForMessages = 0
+    var messengerDidStartFileTransfer = 0
 
     store.environment.bgQueue = .immediate
     store.environment.mainQueue = .immediate
@@ -30,6 +31,8 @@ final class HomeFeatureTests: XCTestCase {
     store.environment.messenger.connect.run = { messengerDidConnect += 1 }
     store.environment.messenger.isListeningForMessages.run = { false }
     store.environment.messenger.listenForMessages.run = { messengerDidListenForMessages += 1 }
+    store.environment.messenger.isFileTransferRunning.run = { false }
+    store.environment.messenger.startFileTransfer.run = { messengerDidStartFileTransfer += 1 }
     store.environment.messenger.isLoggedIn.run = { false }
     store.environment.messenger.isRegistered.run = { false }
 
@@ -38,6 +41,7 @@ final class HomeFeatureTests: XCTestCase {
     XCTAssertNoDifference(messengerDidStartWithTimeout, [30_000])
     XCTAssertNoDifference(messengerDidConnect, 1)
     XCTAssertNoDifference(messengerDidListenForMessages, 1)
+    XCTAssertNoDifference(messengerDidStartFileTransfer, 1)
 
     store.receive(.networkMonitor(.stop))
     store.receive(.messenger(.didStartUnregistered)) {
@@ -55,6 +59,7 @@ final class HomeFeatureTests: XCTestCase {
     var messengerDidStartWithTimeout: [Int] = []
     var messengerDidConnect = 0
     var messengerDidListenForMessages = 0
+    var messengerDidStartFileTransfer = 0
     var messengerDidLogIn = 0
     var messengerDidResumeBackup = 0
 
@@ -65,6 +70,8 @@ final class HomeFeatureTests: XCTestCase {
     store.environment.messenger.connect.run = { messengerDidConnect += 1 }
     store.environment.messenger.isListeningForMessages.run = { false }
     store.environment.messenger.listenForMessages.run = { messengerDidListenForMessages += 1 }
+    store.environment.messenger.isFileTransferRunning.run = { false }
+    store.environment.messenger.startFileTransfer.run = { messengerDidStartFileTransfer += 1 }
     store.environment.messenger.isLoggedIn.run = { false }
     store.environment.messenger.isRegistered.run = { true }
     store.environment.messenger.logIn.run = { messengerDidLogIn += 1 }
@@ -85,6 +92,7 @@ final class HomeFeatureTests: XCTestCase {
     XCTAssertNoDifference(messengerDidStartWithTimeout, [30_000])
     XCTAssertNoDifference(messengerDidConnect, 1)
     XCTAssertNoDifference(messengerDidListenForMessages, 1)
+    XCTAssertNoDifference(messengerDidStartFileTransfer, 1)
     XCTAssertNoDifference(messengerDidLogIn, 1)
     XCTAssertNoDifference(messengerDidResumeBackup, 1)
 
@@ -112,6 +120,7 @@ final class HomeFeatureTests: XCTestCase {
     store.environment.messenger.start.run = { messengerDidStartWithTimeout.append($0) }
     store.environment.messenger.isConnected.run = { true }
     store.environment.messenger.isListeningForMessages.run = { true }
+    store.environment.messenger.isFileTransferRunning.run = { true }
     store.environment.messenger.isLoggedIn.run = { false }
     store.environment.messenger.isRegistered.run = { true }
     store.environment.messenger.logIn.run = { messengerDidLogIn += 1 }
@@ -203,6 +212,7 @@ final class HomeFeatureTests: XCTestCase {
     store.environment.messenger.start.run = { _ in }
     store.environment.messenger.isConnected.run = { true }
     store.environment.messenger.isListeningForMessages.run = { true }
+    store.environment.messenger.isFileTransferRunning.run = { true }
     store.environment.messenger.isLoggedIn.run = { false }
     store.environment.messenger.isRegistered.run = { throw error }
 
@@ -229,6 +239,7 @@ final class HomeFeatureTests: XCTestCase {
     store.environment.messenger.start.run = { _ in }
     store.environment.messenger.isConnected.run = { true }
     store.environment.messenger.isListeningForMessages.run = { true }
+    store.environment.messenger.isFileTransferRunning.run = { true }
     store.environment.messenger.isLoggedIn.run = { false }
     store.environment.messenger.isRegistered.run = { true }
     store.environment.messenger.logIn.run = { throw error }
-- 
GitLab