feat(keyboard): improve typing, voice flow, and polish reliability
Reduce extension memory pressure and delivery races while adding richer candidates, tactile feedback, and safer two-level creative polishing.
This commit is contained in:
@@ -66,6 +66,32 @@ final class MicVoiceAvailabilityTests: XCTestCase {
|
||||
XCTAssertEqual(availability, .recording)
|
||||
}
|
||||
|
||||
func testUnavailableWhenOnboardingIncomplete() {
|
||||
let availability = MicVoiceAvailabilityResolver.resolve(
|
||||
phase: .idle,
|
||||
micDisabled: false,
|
||||
hasFullAccess: true,
|
||||
appGroupAvailable: true,
|
||||
hostReady: true,
|
||||
isPreparingSession: false,
|
||||
hasCompletedOnboarding: false
|
||||
)
|
||||
XCTAssertEqual(availability, .unavailable(.onboardingIncomplete))
|
||||
}
|
||||
|
||||
func testOnboardingIncompleteTakesPrecedenceOverMissingAPIKey() {
|
||||
let availability = MicVoiceAvailabilityResolver.resolve(
|
||||
phase: .idle,
|
||||
micDisabled: true,
|
||||
hasFullAccess: true,
|
||||
appGroupAvailable: true,
|
||||
hostReady: true,
|
||||
isPreparingSession: false,
|
||||
hasCompletedOnboarding: false
|
||||
)
|
||||
XCTAssertEqual(availability, .unavailable(.onboardingIncomplete))
|
||||
}
|
||||
|
||||
func testProcessingOverridesUnavailable() {
|
||||
let availability = MicVoiceAvailabilityResolver.resolve(
|
||||
phase: .processing,
|
||||
|
||||
Reference in New Issue
Block a user