From aef5715ce78d9c194f022a629c0552a56f4e977e Mon Sep 17 00:00:00 2001 From: Dariusz Rybicki <dariusz@elixxir.io> Date: Wed, 30 Nov 2022 11:52:12 +0100 Subject: [PATCH] Dismiss new group when finished --- .../GroupsFeature/GroupsComponent.swift | 4 +++ .../NewGroupFeature/NewGroupComponent.swift | 4 +++ .../GroupsComponentTests.swift | 28 ++++++++++++++++++- .../NewGroupComponentTests.swift | 10 +++++++ 4 files changed, 45 insertions(+), 1 deletion(-) diff --git a/Examples/xx-messenger/Sources/GroupsFeature/GroupsComponent.swift b/Examples/xx-messenger/Sources/GroupsFeature/GroupsComponent.swift index e5b01a9e..3594c339 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 51825779..db9193d0 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 7a7f9301..f8b06a18 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 7054cec9..2db124d7 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) } } -- GitLab