mirror of
https://github.com/openclaw/openclaw.git
synced 2026-03-13 11:00:50 +00:00
39 lines
1.5 KiB
Swift
39 lines
1.5 KiB
Swift
import Foundation
|
|
import OpenClawKit
|
|
import Testing
|
|
@testable import OpenClaw
|
|
|
|
@Suite(.serialized)
|
|
@MainActor
|
|
struct GatewayProcessManagerTests {
|
|
@Test func `clears last failure when health succeeds`() async throws {
|
|
let session = GatewayTestWebSocketSession(
|
|
taskFactory: {
|
|
GatewayTestWebSocketTask(
|
|
sendHook: { task, message, sendIndex in
|
|
guard sendIndex > 0 else { return }
|
|
guard let id = GatewayWebSocketTestSupport.requestID(from: message) else { return }
|
|
task.emitReceiveSuccess(.data(GatewayWebSocketTestSupport.okResponseData(id: id)))
|
|
})
|
|
})
|
|
let url = try #require(URL(string: "ws://example.invalid"))
|
|
let connection = GatewayConnection(
|
|
configProvider: { (url: url, token: nil, password: nil) },
|
|
sessionBox: WebSocketSessionBox(session: session))
|
|
|
|
let manager = GatewayProcessManager.shared
|
|
manager.setTestingConnection(connection)
|
|
manager.setTestingDesiredActive(true)
|
|
manager.setTestingLastFailureReason("health failed")
|
|
defer {
|
|
manager.setTestingConnection(nil)
|
|
manager.setTestingDesiredActive(false)
|
|
manager.setTestingLastFailureReason(nil)
|
|
}
|
|
|
|
let ready = await manager.waitForGatewayReady(timeout: 0.5)
|
|
#expect(ready)
|
|
#expect(manager.lastFailureReason == nil)
|
|
}
|
|
}
|