From 1891f1280d10cbc83c9beae0954213823ce0e370 Mon Sep 17 00:00:00 2001 From: benk10 Date: Sat, 24 Oct 2026 08:30:56 +0200 Subject: [PATCH] test: isolate hosted camera permission Restore shared camera state after hosted navigation fixtures so unit tests do not leave a system permission alert for subsequent UI launches. Refs #1110 --- BitkitTests/SendQuickpayLnurlRemountTests.swift | 7 ++++++- BitkitTests/SendSheetLifecycleTests.swift | 7 ++++++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/BitkitTests/SendQuickpayLnurlRemountTests.swift b/BitkitTests/SendQuickpayLnurlRemountTests.swift index 672a26ebf..d87f9abc7 100644 --- a/BitkitTests/SendQuickpayLnurlRemountTests.swift +++ b/BitkitTests/SendQuickpayLnurlRemountTests.swift @@ -207,6 +207,11 @@ final class SendQuickpayLnurlRemountTests: XCTestCase { sheets: SheetViewModel? = nil) -> (AppViewModel, SheetViewModel, MountState, UIWindow) { snapshotAppDefaultsDomain() + let camera = CameraManager.shared + let hadCameraPermission = camera.hasPermission + addTeardownBlock { @MainActor in camera.hasPermission = hadCameraPermission } + // Keep hosted navigation tests from requesting system camera permission. + camera.hasPermission = true let app = app ?? AppViewModel() let sheets = sheets ?? SheetViewModel() let wallet = WalletViewModel() @@ -218,7 +223,7 @@ final class SendQuickpayLnurlRemountTests: XCTestCase { .environment(PaykitPaymentRequestManager()) .environment(HwWalletManager()) .environment(TrezorManager()) - .environment(CameraManager.shared) + .environment(camera) .environmentObject(app) .environmentObject(wallet) .environmentObject(NetworkMonitor()) diff --git a/BitkitTests/SendSheetLifecycleTests.swift b/BitkitTests/SendSheetLifecycleTests.swift index 6b5b27370..b75ef1be0 100644 --- a/BitkitTests/SendSheetLifecycleTests.swift +++ b/BitkitTests/SendSheetLifecycleTests.swift @@ -354,6 +354,11 @@ final class SendSheetLifecycleTests: XCTestCase { { snapshotAppDefaultsDomain() snapshotAppGroupDefaults("home_screen_display_currency_code_v1", "home_screen_display_currency_symbol_v1") + let camera = CameraManager.shared + let hadCameraPermission = camera.hasPermission + addTeardownBlock { @MainActor in camera.hasPermission = hadCameraPermission } + // Keep hosted navigation tests from requesting system camera permission. + camera.hasPermission = true let app = AppViewModel() if let lnurlPayData { app.lnurlPayData = lnurlPayData @@ -372,7 +377,7 @@ final class SendSheetLifecycleTests: XCTestCase { .environment(PaykitPaymentRequestManager()) .environment(HwWalletManager()) .environment(TrezorManager()) - .environment(CameraManager.shared) + .environment(camera) .environmentObject(app) .environmentObject(wallet) .environmentObject(NetworkMonitor())