diff --git a/Examples/xx-messenger/Sources/GroupsFeature/GroupsComponent.swift b/Examples/xx-messenger/Sources/GroupsFeature/GroupsComponent.swift
index e5b01a9e8316dfe5ef8fd4367634eb3bc34909a2..3594c3398691fbf8d0be7e0741a37baa12ac2dd5 100644
--- a/Examples/xx-messenger/Sources/GroupsFeature/GroupsComponent.swift
+++ b/Examples/xx-messenger/Sources/GroupsFeature/GroupsComponent.swift
@@ -62,6 +62,10 @@ public struct GroupsComponent: ReducerProtocol {
         state.newGroup = nil
         return .none
 
+      case .newGroup(.didFinish):
+        state.newGroup = nil
+        return .none
+
       case .newGroup(_):
         return .none
       }
diff --git a/Examples/xx-messenger/Sources/NewGroupFeature/NewGroupComponent.swift b/Examples/xx-messenger/Sources/NewGroupFeature/NewGroupComponent.swift
index 5182577975d8173e04adb8682bb900877f40256e..db9193d0aec29f430910f853c54b1535c867bd77 100644
--- a/Examples/xx-messenger/Sources/NewGroupFeature/NewGroupComponent.swift
+++ b/Examples/xx-messenger/Sources/NewGroupFeature/NewGroupComponent.swift
@@ -7,6 +7,7 @@ public struct NewGroupComponent: ReducerProtocol {
 
   public enum Action: Equatable {
     case start
+    case didFinish
   }
 
   public init() {}
@@ -15,6 +16,9 @@ public struct NewGroupComponent: ReducerProtocol {
     switch action {
     case .start:
       return .none
+
+    case .didFinish:
+      return .none
     }
   }
 }
diff --git a/Examples/xx-messenger/Tests/GroupsFeatureTests/GroupsComponentTests.swift b/Examples/xx-messenger/Tests/GroupsFeatureTests/GroupsComponentTests.swift
index 7a7f93016ddd8875e08162832788f0735755d3a0..f8b06a183149a674542e9d600433084e496002d2 100644
--- a/Examples/xx-messenger/Tests/GroupsFeatureTests/GroupsComponentTests.swift
+++ b/Examples/xx-messenger/Tests/GroupsFeatureTests/GroupsComponentTests.swift
@@ -75,7 +75,7 @@ final class GroupsComponentTests: XCTestCase {
     store.send(.didSelectGroup(.stub(2)))
   }
 
-  func testNewGroup() {
+  func testPresentNewGroup() {
     let store = TestStore(
       initialState: GroupsComponent.State(),
       reducer: GroupsComponent()
@@ -89,6 +89,32 @@ final class GroupsComponentTests: XCTestCase {
       $0.newGroup = nil
     }
   }
+
+  func testDismissNewGroup() {
+    let store = TestStore(
+      initialState: GroupsComponent.State(
+        newGroup: NewGroupComponent.State()
+      ),
+      reducer: GroupsComponent()
+    )
+
+    store.send(.newGroupDismissed) {
+      $0.newGroup = nil
+    }
+  }
+
+  func testNewGroupDidFinish() {
+    let store = TestStore(
+      initialState: GroupsComponent.State(
+        newGroup: NewGroupComponent.State()
+      ),
+      reducer: GroupsComponent()
+    )
+
+    store.send(.newGroup(.didFinish)) {
+      $0.newGroup = nil
+    }
+  }
 }
 
 private extension XXModels.Group {
diff --git a/Examples/xx-messenger/Tests/NewGroupFeatureTests/NewGroupComponentTests.swift b/Examples/xx-messenger/Tests/NewGroupFeatureTests/NewGroupComponentTests.swift
index 7054cec91d158f696b306159898bfb6c7c0a7678..2db124d74bc4a2de867a21974f8f0ee034f519da 100644
--- a/Examples/xx-messenger/Tests/NewGroupFeatureTests/NewGroupComponentTests.swift
+++ b/Examples/xx-messenger/Tests/NewGroupFeatureTests/NewGroupComponentTests.swift
@@ -10,5 +10,15 @@ final class NewGroupComponentTests: XCTestCase {
     )
 
     store.send(.start)
+    store.send(.didFinish)
+  }
+
+  func testFinish() {
+    let store = TestStore(
+      initialState: NewGroupComponent.State(),
+      reducer: NewGroupComponent()
+    )
+
+    store.send(.didFinish)
   }
 }