68 lines
1.9 KiB
Swift
68 lines
1.9 KiB
Swift
import Foundation
|
|
import Testing
|
|
@testable import Clawdbot
|
|
|
|
@Suite struct WebChatMainSessionKeyTests {
|
|
@Test func configGetSnapshotMainKeyFallsBackToMainWhenMissing() throws {
|
|
let json = """
|
|
{
|
|
"path": "/Users/pete/.clawdbot/clawdbot.json",
|
|
"exists": true,
|
|
"raw": null,
|
|
"parsed": {},
|
|
"valid": true,
|
|
"config": {},
|
|
"issues": []
|
|
}
|
|
"""
|
|
let key = try GatewayConnection.mainSessionKey(fromConfigGetData: Data(json.utf8))
|
|
#expect(key == "main")
|
|
}
|
|
|
|
@Test func configGetSnapshotMainKeyTrimsAndUsesValue() throws {
|
|
let json = """
|
|
{
|
|
"path": "/Users/pete/.clawdbot/clawdbot.json",
|
|
"exists": true,
|
|
"raw": null,
|
|
"parsed": {},
|
|
"valid": true,
|
|
"config": { "session": { "mainKey": " primary " } },
|
|
"issues": []
|
|
}
|
|
"""
|
|
let key = try GatewayConnection.mainSessionKey(fromConfigGetData: Data(json.utf8))
|
|
#expect(key == "main")
|
|
}
|
|
|
|
@Test func configGetSnapshotMainKeyFallsBackWhenEmptyOrWhitespace() throws {
|
|
let json = """
|
|
{
|
|
"config": { "session": { "mainKey": " " } }
|
|
}
|
|
"""
|
|
let key = try GatewayConnection.mainSessionKey(fromConfigGetData: Data(json.utf8))
|
|
#expect(key == "main")
|
|
}
|
|
|
|
@Test func configGetSnapshotMainKeyFallsBackWhenConfigNull() throws {
|
|
let json = """
|
|
{
|
|
"config": null
|
|
}
|
|
"""
|
|
let key = try GatewayConnection.mainSessionKey(fromConfigGetData: Data(json.utf8))
|
|
#expect(key == "main")
|
|
}
|
|
|
|
@Test func configGetSnapshotUsesGlobalScope() throws {
|
|
let json = """
|
|
{
|
|
"config": { "session": { "scope": "global" } }
|
|
}
|
|
"""
|
|
let key = try GatewayConnection.mainSessionKey(fromConfigGetData: Data(json.utf8))
|
|
#expect(key == "global")
|
|
}
|
|
}
|