Files
openclaw/apps/ios/Tests/TalkRealtimeServerEventDecodingTests.swift
Peter Steinberger 26bfa88bb2 fix: restore native Talk transcripts, fallback, and microphone access (#115577)
* fix(ios): decode frameless Talk events

* fix(android): keep browser-only Talk models native

* fix(macos): gate dashboard media capture

* docs(talk): clarify native platform fallbacks

* chore(i18n): refresh native source inventory

* fix(android): gate relay entry on provider-level browser-only models too
2026-07-29 01:55:47 -04:00

28 lines
1.2 KiB
Swift

import Foundation
import Testing
@testable import OpenClaw
struct TalkRealtimeServerEventDecodingTests {
@Test func `decodes frameless realtime transcript and turn events`() throws {
let userDelta = try JSONDecoder().decode(
TalkRealtimeServerEvent.self,
from: Data(#"{"type":"input_transcript.added","item":{"id":"user-1","text":"Hello"}}"#.utf8))
#expect(userDelta.item?.id == "user-1")
#expect(userDelta.item?.text == "Hello")
let assistantDelta = try JSONDecoder().decode(
TalkRealtimeServerEvent.self,
from: Data(#"{"type":"output_transcript.added","item":{"id":"assistant-1","text":"Hi"}}"#.utf8))
#expect(assistantDelta.item?.id == "assistant-1")
#expect(assistantDelta.item?.text == "Hi")
let turnDone = try JSONDecoder().decode(
TalkRealtimeServerEvent.self,
from: Data(
#"{"type":"turn.done","turn":{"id":"turn-1","role":"assistant","transcript":"Hi there"}}"#.utf8))
#expect(turnDone.turn?.id == "turn-1")
#expect(turnDone.turn?.role == "assistant")
#expect(turnDone.turn?.transcript == "Hi there")
}
}