Files
OSGKeyboard/OSGKeyboardTests/FlowUtteranceEndCoordinatorTests.swift
Rocky 498f407585 feat(account): add managed credits and cloud gateway
Introduce optional Apple account-backed credits with scoped gateway access while preserving local and BYOK paths. Refresh assistant behavior, tests, privacy disclosures, docs, and the website for the 2.0 experience.
2026-08-20 11:43:21 +08:00

36 lines
1.2 KiB
Swift

// FlowUtteranceEndCoordinatorTests.swift
// OSGKeyboardTests
@testable import OSGKeyboardShared
import XCTest
final class FlowUtteranceEndCoordinatorTests: XCTestCase {
func testAwaitTailCaptureRunsPostRollAfterSilenceDrain() async {
let policy = FlowCaptureTailDrainPolicy(
silenceRMSThreshold: 0.02,
silenceDurationSeconds: 0.05,
maxDrainSeconds: 1.0,
postRollSeconds: 0.08
)
let tracker = FlowCaptureDrainTracker()
let start = Date().timeIntervalSince1970
tracker.beginDrain(now: start)
let timing = await FlowUtteranceEndCoordinator.awaitTailCapture(
tracker: tracker,
policy: policy,
pollIntervalNs: 5_000_000
)
XCTAssertTrue(timing.endedBySilence)
XCTAssertGreaterThanOrEqual(timing.postRollDurationSeconds, 0.07)
}
func testIOSFlowPresetUsesLongerSilenceAndPostRoll() {
XCTAssertEqual(FlowCaptureTailDrainPolicy.iosFlow.silenceDurationSeconds, 0.35)
XCTAssertEqual(FlowCaptureTailDrainPolicy.iosFlow.postRollSeconds, 0.15)
XCTAssertEqual(FlowCaptureTailDrainPolicy.flowDefault, FlowCaptureTailDrainPolicy.iosFlow)
}
}