45 lines
1.1 KiB
Swift
45 lines
1.1 KiB
Swift
import ClawdbotProtocol
|
|
import Foundation
|
|
import Testing
|
|
@testable import Clawdbot
|
|
|
|
@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,
|
|
data: [:] as [String: ClawdbotProtocol.AnyCodable],
|
|
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),
|
|
data: [:] as [String: ClawdbotProtocol.AnyCodable],
|
|
summary: nil))
|
|
}
|
|
|
|
#expect(store.events.count == 400)
|
|
#expect(store.events.first?.seq == 2)
|
|
#expect(store.events.last?.seq == 401)
|
|
}
|
|
}
|