From ab4f5b1ddaffaf9a2c90ba94776a8e4797d8adda Mon Sep 17 00:00:00 2001
From: Dariusz Rybicki <dariusz@elixxir.io>
Date: Wed, 7 Sep 2022 16:09:36 +0200
Subject: [PATCH] Dismiss SendRequest on success

---
 .../Sources/ContactFeature/ContactFeature.swift |  4 ++++
 .../ContactFeatureTests.swift                   | 17 +++++++++++++++++
 2 files changed, 21 insertions(+)

diff --git a/Examples/xx-messenger/Sources/ContactFeature/ContactFeature.swift b/Examples/xx-messenger/Sources/ContactFeature/ContactFeature.swift
index 0bf0e29b..c75faa7b 100644
--- a/Examples/xx-messenger/Sources/ContactFeature/ContactFeature.swift
+++ b/Examples/xx-messenger/Sources/ContactFeature/ContactFeature.swift
@@ -115,6 +115,10 @@ public let contactReducer = Reducer<ContactState, ContactAction, ContactEnvironm
     state.sendRequest = nil
     return .none
 
+  case .sendRequest(.sendSucceeded):
+    state.sendRequest = nil
+    return .none
+
   case .sendRequest(_):
     return .none
   }
diff --git a/Examples/xx-messenger/Tests/ContactFeatureTests/ContactFeatureTests.swift b/Examples/xx-messenger/Tests/ContactFeatureTests/ContactFeatureTests.swift
index e629b3f0..4d637ecf 100644
--- a/Examples/xx-messenger/Tests/ContactFeatureTests/ContactFeatureTests.swift
+++ b/Examples/xx-messenger/Tests/ContactFeatureTests/ContactFeatureTests.swift
@@ -146,4 +146,21 @@ final class ContactFeatureTests: XCTestCase {
       $0.sendRequest = nil
     }
   }
+
+  func testSendRequestSucceeded() {
+    let store = TestStore(
+      initialState: ContactState(
+        id: "contact-id".data(using: .utf8)!,
+        sendRequest: SendRequestState(
+          contact: .unimplemented("contact-id".data(using: .utf8)!)
+        )
+      ),
+      reducer: contactReducer,
+      environment: .unimplemented
+    )
+
+    store.send(.sendRequest(.sendSucceeded)) {
+      $0.sendRequest = nil
+    }
+  }
 }
-- 
GitLab