2026-01-30 03:15:10 +01:00
|
|
|
import OpenClawProtocol
|
2025-12-14 04:30:45 +00:00
|
|
|
import Foundation
|
|
|
|
|
import Testing
|
2026-01-30 03:15:10 +01:00
|
|
|
@testable import OpenClaw
|
2025-12-14 04:30:45 +00:00
|
|
|
|
|
|
|
|
@Suite
|
|
|
|
|
@MainActor
|
|
|
|
|
struct AgentEventStoreTests {
|
|
|
|
|
@Test
|
|
|
|
|
func appendAndClear() {
|
|
|
|
|
let store = AgentEventStore()
|
|
|
|
|
#expect(store.events.isEmpty)
|
|
|
|
|
|
|
|
|
|
store.append(ControlAgentEvent(
|
|
|
|
|
runId: "run",
|
|
|
|
|
seq: 1,
|
|
|
|
|
stream: "test",
|
|
|
|
|
ts: 0,
|
2026-01-30 03:15:10 +01:00
|
|
|
data: [:] as [String: OpenClawProtocol.AnyCodable],
|
2025-12-14 04:30:45 +00:00
|
|
|
summary: nil))
|
|
|
|
|
#expect(store.events.count == 1)
|
|
|
|
|
|
|
|
|
|
store.clear()
|
|
|
|
|
#expect(store.events.isEmpty)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
func trimsToMaxEvents() {
|
|
|
|
|
let store = AgentEventStore()
|
|
|
|
|
for i in 1...401 {
|
|
|
|
|
store.append(ControlAgentEvent(
|
|
|
|
|
runId: "run",
|
|
|
|
|
seq: i,
|
|
|
|
|
stream: "test",
|
|
|
|
|
ts: Double(i),
|
2026-01-30 03:15:10 +01:00
|
|
|
data: [:] as [String: OpenClawProtocol.AnyCodable],
|
2025-12-14 04:30:45 +00:00
|
|
|
summary: nil))
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#expect(store.events.count == 400)
|
|
|
|
|
#expect(store.events.first?.seq == 2)
|
|
|
|
|
#expect(store.events.last?.seq == 401)
|
|
|
|
|
}
|
|
|
|
|
}
|