mirror of
https://github.com/Novaloop-AG/element-x-ios.git
synced 2026-11-03 16:10:20 +00:00
Move call presentation from the chats flow into the user session flow. (#4459)
This commit is contained in:
@@ -83,6 +83,30 @@ class NavigationTabCoordinatorTests: XCTestCase {
|
||||
XCTAssertNil(navigationTabCoordinator.fullScreenCoverCoordinator)
|
||||
}
|
||||
|
||||
func testOverlay() {
|
||||
let tabCoordinator = SomeTestCoordinator()
|
||||
navigationTabCoordinator.setTabs([.init(coordinator: tabCoordinator, details: .init(tag: .tab, title: "Tab", icon: \.help, selectedIcon: \.helpSolid))])
|
||||
|
||||
let overlayCoordinator = SomeTestCoordinator()
|
||||
navigationTabCoordinator.setOverlayCoordinator(overlayCoordinator)
|
||||
|
||||
assertCoordinatorsEqual(navigationTabCoordinator.tabCoordinators, [tabCoordinator])
|
||||
assertCoordinatorsEqual(overlayCoordinator, navigationTabCoordinator.overlayCoordinator)
|
||||
|
||||
// The coordinator should still be retained when changing the presentation mode.
|
||||
navigationTabCoordinator.setOverlayPresentationMode(.minimized)
|
||||
assertCoordinatorsEqual(overlayCoordinator, navigationTabCoordinator.overlayCoordinator)
|
||||
navigationTabCoordinator.setOverlayPresentationMode(.fullScreen)
|
||||
assertCoordinatorsEqual(overlayCoordinator, navigationTabCoordinator.overlayCoordinator)
|
||||
|
||||
navigationTabCoordinator.setOverlayCoordinator(nil)
|
||||
|
||||
assertCoordinatorsEqual(navigationTabCoordinator.tabCoordinators, [tabCoordinator])
|
||||
XCTAssertNil(navigationTabCoordinator.overlayCoordinator)
|
||||
}
|
||||
|
||||
// MARK: - Dismissal Callbacks
|
||||
|
||||
func testTabDismissalCallbacks() {
|
||||
let chatsCoordinator = SomeTestCoordinator()
|
||||
let spacesCoordinator = SomeTestCoordinator()
|
||||
@@ -122,6 +146,31 @@ class NavigationTabCoordinatorTests: XCTestCase {
|
||||
waitForExpectations(timeout: 1.0)
|
||||
}
|
||||
|
||||
func testOverlayDismissalCallback() {
|
||||
let overlayCoordinator = SomeTestCoordinator()
|
||||
|
||||
let expectation = expectation(description: "Wait for callback")
|
||||
navigationTabCoordinator.setOverlayCoordinator(overlayCoordinator) {
|
||||
expectation.fulfill()
|
||||
}
|
||||
|
||||
navigationTabCoordinator.setOverlayCoordinator(nil)
|
||||
waitForExpectations(timeout: 1.0)
|
||||
}
|
||||
|
||||
func testOverlayDismissalCallbackWhenChangingMode() {
|
||||
let overlayCoordinator = SomeTestCoordinator()
|
||||
|
||||
let expectation = expectation(description: "Wait for callback")
|
||||
expectation.isInverted = true
|
||||
navigationTabCoordinator.setOverlayCoordinator(overlayCoordinator) {
|
||||
expectation.fulfill()
|
||||
}
|
||||
|
||||
navigationTabCoordinator.setOverlayPresentationMode(.minimized)
|
||||
waitForExpectations(timeout: 1.0)
|
||||
}
|
||||
|
||||
// MARK: - Private
|
||||
|
||||
private func assertCoordinatorsEqual(_ lhs: CoordinatorProtocol?, _ rhs: CoordinatorProtocol?) {
|
||||
|
||||
Reference in New Issue
Block a user