Files
clawdbot/apps/macos/Tests/ClawdisIPCTests/GatewayFrameDecodeTests.swift
2025-12-09 17:36:16 +00:00

32 lines
849 B
Swift

import Foundation
import Testing
import ClawdisProtocol
@Suite struct GatewayFrameDecodeTests {
@Test func decodesEventFrameWithAnyCodablePayload() throws {
let json = """
{
"type": "event",
"event": "presence",
"payload": { "foo": "bar", "count": 1 },
"seq": 7
}
"""
let frame = try JSONDecoder().decode(GatewayFrame.self, from: Data(json.utf8))
#expect({
if case .event = frame { true } else { false }
}(), "expected .event frame")
guard case let .event(evt) = frame else {
return
}
let payload = evt.payload?.value as? [String: AnyCodable]
#expect(payload?["foo"]?.value as? String == "bar")
#expect(payload?["count"]?.value as? Int == 1)
#expect(evt.seq == 7)
}
}