summaryrefslogtreecommitdiffhomepage
path: root/ios/RoutingTests
diff options
context:
space:
mode:
authorBug Magnet <marco.nikic@mullvad.net>2025-01-14 11:49:21 +0100
committerBug Magnet <marco.nikic@mullvad.net>2025-01-14 11:49:21 +0100
commited0b9cd0283e26e216fbb7edf5cd6e5bcf042cde (patch)
tree6fc5be4a68ffde2337d1bc3bb516ff46144a07be /ios/RoutingTests
parentd2949b4a0b1d3d86a25de1569dc8308c9d7fe237 (diff)
parente71db0cfc12bd561532b73722983175edab2482c (diff)
downloadmullvadvpn-ed0b9cd0283e26e216fbb7edf5cd6e5bcf042cde.tar.xz
mullvadvpn-ed0b9cd0283e26e216fbb7edf5cd6e5bcf042cde.zip
Merge branch 'fix-warnings-introduced-by-xcode-16-ios-741'
Diffstat (limited to 'ios/RoutingTests')
-rw-r--r--ios/RoutingTests/RouterBlockDelegate.swift20
-rw-r--r--ios/RoutingTests/RoutingTests.swift9
2 files changed, 15 insertions, 14 deletions
diff --git a/ios/RoutingTests/RouterBlockDelegate.swift b/ios/RoutingTests/RouterBlockDelegate.swift
index 977454b7e4..07204d5fa9 100644
--- a/ios/RoutingTests/RouterBlockDelegate.swift
+++ b/ios/RoutingTests/RouterBlockDelegate.swift
@@ -9,26 +9,28 @@
import Foundation
import Routing
-class RouterBlockDelegate<RouteType: AppRouteProtocol>: ApplicationRouterDelegate {
+final class RouterBlockDelegate<RouteType: AppRouteProtocol>: ApplicationRouterDelegate, @unchecked Sendable {
var handleRoute: ((RoutePresentationContext<RouteType>, Bool, (Coordinator) -> Void) -> Void)?
var handleDismiss: ((RouteDismissalContext<RouteType>, () -> Void) -> Void)?
var shouldPresent: ((RouteType) -> Bool)?
var shouldDismiss: ((RouteDismissalContext<RouteType>) -> Bool)?
- var handleSubnavigation: ((RouteSubnavigationContext<RouteType>, () -> Void) -> Void)?
+ var handleSubnavigation: (@Sendable @MainActor (RouteSubnavigationContext<RouteType>, () -> Void) -> Void)?
- func applicationRouter(
+ nonisolated func applicationRouter(
_ router: ApplicationRouter<RouteType>,
presentWithContext context: RoutePresentationContext<RouteType>,
animated: Bool,
- completion: @escaping (Coordinator) -> Void
+ completion: @escaping @Sendable (Coordinator) -> Void
) {
- handleRoute?(context, animated, completion) ?? completion(Coordinator())
+ MainActor.assumeIsolated {
+ handleRoute?(context, animated, completion) ?? completion(Coordinator())
+ }
}
func applicationRouter(
_ router: ApplicationRouter<RouteType>,
dismissWithContext context: RouteDismissalContext<RouteType>,
- completion: @escaping () -> Void
+ completion: @escaping @Sendable () -> Void
) {
handleDismiss?(context, completion) ?? completion()
}
@@ -47,8 +49,10 @@ class RouterBlockDelegate<RouteType: AppRouteProtocol>: ApplicationRouterDelegat
func applicationRouter(
_ router: ApplicationRouter<RouteType>,
handleSubNavigationWithContext context: RouteSubnavigationContext<RouteType>,
- completion: @escaping () -> Void
+ completion: @escaping @Sendable @MainActor () -> Void
) {
- handleSubnavigation?(context, completion) ?? completion()
+ MainActor.assumeIsolated {
+ handleSubnavigation?(context, completion) ?? completion()
+ }
}
}
diff --git a/ios/RoutingTests/RoutingTests.swift b/ios/RoutingTests/RoutingTests.swift
index c271a98970..bd52c3cb07 100644
--- a/ios/RoutingTests/RoutingTests.swift
+++ b/ios/RoutingTests/RoutingTests.swift
@@ -9,6 +9,7 @@
@testable import Routing
import XCTest
+@MainActor
final class RoutingTests: XCTestCase {
private func createDelegate<T: AppRouteProtocol>(shouldPresent: Bool = true) -> RouterBlockDelegate<T> {
let delegate = RouterBlockDelegate<T>()
@@ -18,11 +19,9 @@ final class RoutingTests: XCTestCase {
return delegate
}
-}
-// MARK: Horizontal flow tests
+ // MARK: Horizontal flow tests
-extension RoutingTests {
func testPresentHorizontalRoute() throws {
enum TestRoute: AppRouteProtocol {
case one
@@ -71,11 +70,9 @@ extension RoutingTests {
XCTAssertEqual(router.presentedRoutes[.horizontal]?.count, 1)
}
-}
-// MARK: Modal flow tests
+ // MARK: Modal flow tests
-extension RoutingTests {
func testPresentModalRoutesOfDifferentLevels() throws {
enum TestRoute: AppRouteProtocol {
case one, two