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) } }