File size: 847 Bytes
b8370f5
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
import Foundation
import Testing
@testable import OpenClawKit

struct BridgeInvokeMetadataTests {
    @Test func `outer invoke metadata survives the native bridge`() throws {
        let raw = #"{"id":"invoke","command":"system.worker.start","nodeId":"node","paramsJSON":"{\"sessionKey\":\"untrusted\"}","sessionKey":"agent:main:owner","timeoutMs":42000,"idempotencyKey":"attempt","type":"invoke"}"#
        let request = try JSONDecoder().decode(BridgeInvokeRequest.self, from: Data(raw.utf8))
        let encoded = try JSONEncoder().encode(request)
        let actual = try #require(JSONSerialization.jsonObject(with: encoded) as? [String: Any])
        #expect(actual["sessionKey"] as? String == "agent:main:owner")
        #expect(actual["timeoutMs"] as? Int == 42000)
        #expect(actual["idempotencyKey"] as? String == "attempt")
    }
}