From 60b939d8dc57fa45f310b0ec8de292e4a0a339e0 Mon Sep 17 00:00:00 2001
From: Dariusz Rybicki <dariusz@elixxir.io>
Date: Tue, 29 Nov 2022 10:57:26 +0100
Subject: [PATCH] Start group chat in HomeComponent

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

diff --git a/Examples/xx-messenger/Sources/HomeFeature/HomeComponent.swift b/Examples/xx-messenger/Sources/HomeFeature/HomeComponent.swift
index 18212bf0..1f209ba3 100644
--- a/Examples/xx-messenger/Sources/HomeFeature/HomeComponent.swift
+++ b/Examples/xx-messenger/Sources/HomeFeature/HomeComponent.swift
@@ -119,6 +119,10 @@ public struct HomeComponent: ReducerProtocol {
                 try messenger.startFileTransfer()
               }
 
+              if messenger.isGroupChatRunning() == false {
+                try messenger.startGroupChat()
+              }
+
               if messenger.isLoggedIn() == false {
                 if try messenger.isRegistered() == false {
                   return .success(.messenger(.didStartUnregistered))
diff --git a/Examples/xx-messenger/Tests/HomeFeatureTests/HomeComponentTests.swift b/Examples/xx-messenger/Tests/HomeFeatureTests/HomeComponentTests.swift
index 3bd49a42..f381d204 100644
--- a/Examples/xx-messenger/Tests/HomeFeatureTests/HomeComponentTests.swift
+++ b/Examples/xx-messenger/Tests/HomeFeatureTests/HomeComponentTests.swift
@@ -22,6 +22,7 @@ final class HomeComponentTests: XCTestCase {
     var messengerDidConnect = 0
     var messengerDidListenForMessages = 0
     var messengerDidStartFileTransfer = 0
+    var messengerDidStartGroupChat = 0
 
     store.dependencies.app.bgQueue = .immediate
     store.dependencies.app.mainQueue = .immediate
@@ -34,6 +35,8 @@ final class HomeComponentTests: XCTestCase {
     store.dependencies.app.messenger.startFileTransfer.run = { messengerDidStartFileTransfer += 1 }
     store.dependencies.app.messenger.isLoggedIn.run = { false }
     store.dependencies.app.messenger.isRegistered.run = { false }
+    store.dependencies.app.messenger.isGroupChatRunning.run = { false }
+    store.dependencies.app.messenger.startGroupChat.run = { messengerDidStartGroupChat += 1 }
 
     store.send(.messenger(.start))
 
@@ -41,6 +44,7 @@ final class HomeComponentTests: XCTestCase {
     XCTAssertNoDifference(messengerDidConnect, 1)
     XCTAssertNoDifference(messengerDidListenForMessages, 1)
     XCTAssertNoDifference(messengerDidStartFileTransfer, 1)
+    XCTAssertNoDifference(messengerDidStartGroupChat, 1)
 
     store.receive(.networkMonitor(.stop))
     store.receive(.messenger(.didStartUnregistered)) {
@@ -60,6 +64,7 @@ final class HomeComponentTests: XCTestCase {
     var messengerDidStartFileTransfer = 0
     var messengerDidLogIn = 0
     var messengerDidResumeBackup = 0
+    var messengerDidStartGroupChat = 0
 
     store.dependencies.app.bgQueue = .immediate
     store.dependencies.app.mainQueue = .immediate
@@ -84,6 +89,8 @@ final class HomeComponentTests: XCTestCase {
       }
       return cMix
     }
+    store.dependencies.app.messenger.isGroupChatRunning.run = { false }
+    store.dependencies.app.messenger.startGroupChat.run = { messengerDidStartGroupChat += 1 }
 
     store.send(.messenger(.start))
 
@@ -93,6 +100,7 @@ final class HomeComponentTests: XCTestCase {
     XCTAssertNoDifference(messengerDidStartFileTransfer, 1)
     XCTAssertNoDifference(messengerDidLogIn, 1)
     XCTAssertNoDifference(messengerDidResumeBackup, 1)
+    XCTAssertNoDifference(messengerDidStartGroupChat, 1)
 
     store.receive(.networkMonitor(.stop))
     store.receive(.messenger(.didStartRegistered))
@@ -131,6 +139,7 @@ final class HomeComponentTests: XCTestCase {
       }
       return cMix
     }
+    store.dependencies.app.messenger.isGroupChatRunning.run = { true }
 
     store.send(.register(.finished)) {
       $0.register = nil
@@ -209,6 +218,7 @@ final class HomeComponentTests: XCTestCase {
     store.dependencies.app.messenger.isFileTransferRunning.run = { true }
     store.dependencies.app.messenger.isLoggedIn.run = { false }
     store.dependencies.app.messenger.isRegistered.run = { throw error }
+    store.dependencies.app.messenger.isGroupChatRunning.run = { true }
 
     store.send(.messenger(.start))
 
@@ -236,6 +246,7 @@ final class HomeComponentTests: XCTestCase {
     store.dependencies.app.messenger.isLoggedIn.run = { false }
     store.dependencies.app.messenger.isRegistered.run = { true }
     store.dependencies.app.messenger.logIn.run = { throw error }
+    store.dependencies.app.messenger.isGroupChatRunning.run = { true }
 
     store.send(.messenger(.start))
 
-- 
GitLab