mirror of
https://github.com/openclaw/openclaw.git
synced 2026-08-02 22:31:34 +00:00
* 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
28 lines
1.2 KiB
Swift
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")
|
|
}
|
|
}
|