mirror of
https://github.com/openclaw/openclaw.git
synced 2026-05-06 13:30:42 +00:00
51 lines
1.5 KiB
Swift
51 lines
1.5 KiB
Swift
import OpenClawKit
|
|
import Testing
|
|
@testable import OpenClawChatUI
|
|
|
|
struct ChatEventTextTests {
|
|
@Test func `extracts assistant text from final chat event message`() {
|
|
let event = OpenClawChatEventPayload(
|
|
runId: "run-1",
|
|
sessionKey: "main",
|
|
state: "final",
|
|
message: AnyCodable([
|
|
"role": "assistant",
|
|
"content": [
|
|
["type": "text", "text": "hello"],
|
|
["type": "text", "text": "world"],
|
|
],
|
|
]),
|
|
errorMessage: nil)
|
|
|
|
#expect(OpenClawChatEventText.assistantText(from: event) == "hello\nworld")
|
|
}
|
|
|
|
@Test func `ignores user messages`() {
|
|
let event = OpenClawChatEventPayload(
|
|
runId: "run-1",
|
|
sessionKey: "main",
|
|
state: "delta",
|
|
message: AnyCodable([
|
|
"role": "user",
|
|
"content": [["type": "text", "text": "ignore me"]],
|
|
]),
|
|
errorMessage: nil)
|
|
|
|
#expect(OpenClawChatEventText.assistantText(from: event) == nil)
|
|
}
|
|
|
|
@Test func `extracts plain string content`() {
|
|
let event = OpenClawChatEventPayload(
|
|
runId: "run-1",
|
|
sessionKey: "main",
|
|
state: "final",
|
|
message: AnyCodable([
|
|
"role": "assistant",
|
|
"content": "plain reply",
|
|
]),
|
|
errorMessage: nil)
|
|
|
|
#expect(OpenClawChatEventText.assistantText(from: event) == "plain reply")
|
|
}
|
|
}
|