Files
steipete--codexbar/Tests/CodexBarTests/ProviderCookieSettingsResolverTests.swift
2026-07-13 12:22:33 +08:00

92 lines
3.0 KiB
Swift

import CodexBarCore
import Foundation
import Testing
struct ProviderCookieSettingsResolverTests {
@Test
func `shared cookie settings preserve Alibaba token plan defaults`() {
let settings = ProviderSettingsSnapshot.AlibabaTokenPlanProviderSettings()
#expect(settings.cookieSource == .auto)
#expect(settings.manualCookieHeader == nil)
}
@Test
func `provider cookie settings remain distinct nominal types`() {
let cursor = ProviderSettingsSnapshot.CursorProviderSettings(
cookieSource: .auto,
manualCookieHeader: nil)
let factory = ProviderSettingsSnapshot.FactoryProviderSettings(
cookieSource: .auto,
manualCookieHeader: nil)
#expect(Self.providerName(cursor) == "cursor")
#expect(Self.providerName(factory) == "factory")
}
@Test
func `selected cookie account overrides configured credentials`() {
let settings = ProviderCookieSettingsResolver.resolve(
provider: .manus,
configuredSource: .auto,
configuredHeader: "session_id=config",
selectedAccount: Self.account(token: "account"))
#expect(settings.cookieSource == .manual)
#expect(settings.manualCookieHeader == "session_id=account")
}
@Test
func `configured credentials remain when no account is selected`() {
let settings = ProviderCookieSettingsResolver.resolve(
provider: .cursor,
configuredSource: .manual,
configuredHeader: "Cookie: session=config",
selectedAccount: nil)
#expect(settings.cookieSource == .manual)
#expect(settings.manualCookieHeader == "Cookie: session=config")
}
@Test
func `environment token accounts do not become cookie credentials`() {
let settings = ProviderCookieSettingsResolver.resolve(
provider: .zai,
configuredSource: .off,
configuredHeader: nil,
selectedAccount: Self.account(token: "api-token"))
#expect(settings.cookieSource == .off)
#expect(settings.manualCookieHeader == nil)
}
@Test
func `providers without token account support ignore selected account`() {
let settings = ProviderCookieSettingsResolver.resolve(
provider: .mimo,
configuredSource: .auto,
configuredHeader: "configured=true",
selectedAccount: Self.account(token: "account=true"))
#expect(settings.cookieSource == .auto)
#expect(settings.manualCookieHeader == "configured=true")
}
private static func account(token: String) -> ProviderTokenAccount {
ProviderTokenAccount(
id: UUID(),
label: "Test",
token: token,
addedAt: 0,
lastUsed: nil)
}
private static func providerName(_: ProviderSettingsSnapshot.CursorProviderSettings) -> String {
"cursor"
}
private static func providerName(_: ProviderSettingsSnapshot.FactoryProviderSettings) -> String {
"factory"
}
}