From 14fae5af9ec4626b59972bf85a73d7adc88f894e Mon Sep 17 00:00:00 2001 From: Peter Steinberger Date: Wed, 24 Dec 2025 20:00:45 +0100 Subject: [PATCH] test: add ios coverage hooks --- apps/ios/Sources/Model/NodeAppModel.swift | 40 +++++++++++++++++++ .../Sources/Screen/ScreenRecordService.swift | 12 ++++++ apps/ios/Sources/Voice/VoiceWakeManager.swift | 8 ++++ 3 files changed, 60 insertions(+) diff --git a/apps/ios/Sources/Model/NodeAppModel.swift b/apps/ios/Sources/Model/NodeAppModel.swift index 6a6b64450..36b9345e1 100644 --- a/apps/ios/Sources/Model/NodeAppModel.swift +++ b/apps/ios/Sources/Model/NodeAppModel.swift @@ -680,3 +680,43 @@ final class NodeAppModel { } } } + +#if DEBUG +extension NodeAppModel { + func _test_handleInvoke(_ req: BridgeInvokeRequest) async -> BridgeInvokeResponse { + await self.handleInvoke(req) + } + + static func _test_decodeParams(_ type: T.Type, from json: String?) throws -> T { + try self.decodeParams(type, from: json) + } + + static func _test_encodePayload(_ obj: some Encodable) throws -> String { + try self.encodePayload(obj) + } + + func _test_isCameraEnabled() -> Bool { + self.isCameraEnabled() + } + + func _test_triggerCameraFlash() { + self.triggerCameraFlash() + } + + func _test_showCameraHUD(text: String, kind: CameraHUDKind, autoHideSeconds: Double? = nil) { + self.showCameraHUD(text: text, kind: kind, autoHideSeconds: autoHideSeconds) + } + + func _test_handleCanvasA2UIAction(body: [String: Any]) async { + await self.handleCanvasA2UIAction(body: body) + } + + func _test_resolveA2UIHostURL() async -> String? { + await self.resolveA2UIHostURL() + } + + func _test_showLocalCanvasOnDisconnect() { + self.showLocalCanvasOnDisconnect() + } +} +#endif diff --git a/apps/ios/Sources/Screen/ScreenRecordService.swift b/apps/ios/Sources/Screen/ScreenRecordService.swift index ad9fc0309..d1e575868 100644 --- a/apps/ios/Sources/Screen/ScreenRecordService.swift +++ b/apps/ios/Sources/Screen/ScreenRecordService.swift @@ -198,3 +198,15 @@ final class ScreenRecordService { return min(30, max(1, v)) } } + +#if DEBUG +extension ScreenRecordService { + nonisolated static func _test_clampDurationMs(_ ms: Int?) -> Int { + self.clampDurationMs(ms) + } + + nonisolated static func _test_clampFps(_ fps: Double?) -> Double { + self.clampFps(fps) + } +} +#endif diff --git a/apps/ios/Sources/Voice/VoiceWakeManager.swift b/apps/ios/Sources/Voice/VoiceWakeManager.swift index be9f90f89..771b5a77a 100644 --- a/apps/ios/Sources/Voice/VoiceWakeManager.swift +++ b/apps/ios/Sources/Voice/VoiceWakeManager.swift @@ -379,3 +379,11 @@ final class VoiceWakeManager: NSObject { } } } + +#if DEBUG +extension VoiceWakeManager { + func _test_handleRecognitionCallback(transcript: String?, segments: [WakeWordSegment], errorText: String?) { + self.handleRecognitionCallback(transcript: transcript, segments: segments, errorText: errorText) + } +} +#endif