91 lines
3.8 KiB
Swift
91 lines
3.8 KiB
Swift
import SweetCookieKit
|
|
import Testing
|
|
@testable import CodexBarCore
|
|
|
|
struct BrowserCookieOrderStatusStringTests {
|
|
#if os(macOS)
|
|
@Test
|
|
func `codex cookie import order keeps firefox ahead of extra chromium browsers`() {
|
|
let order = ProviderDefaults.metadata[.codex]?.browserCookieOrder ?? Browser.defaultImportOrder
|
|
#expect(Array(order.prefix(3)) == [.safari, .chrome, .firefox])
|
|
}
|
|
|
|
@Test
|
|
func `automatic cookie import includes newly supported chromium browsers`() {
|
|
#expect(Browser.defaultImportOrder.contains(.comet))
|
|
#expect(Browser.defaultImportOrder.contains(.yandex))
|
|
}
|
|
|
|
@Test
|
|
func `cursor no session includes browser login hint`() {
|
|
let order = ProviderDefaults.metadata[.cursor]?.browserCookieOrder ?? Browser.defaultImportOrder
|
|
let message = CursorStatusProbeError.noSessionCookie.errorDescription ?? ""
|
|
#expect(message.contains(order.loginHint))
|
|
}
|
|
|
|
@Test
|
|
func `cursor no session shows full disk access hint before browser list`() throws {
|
|
let order = ProviderDefaults.metadata[.cursor]?.browserCookieOrder ?? Browser.defaultImportOrder
|
|
let message = try #require(CursorStatusProbeError.noSessionCookie.errorDescription)
|
|
let fullDiskAccessRange = try #require(message.range(of: CursorStatusProbeError.safariFullDiskAccessHint))
|
|
let browserListRange = try #require(message.range(of: order.loginHint))
|
|
|
|
#expect(fullDiskAccessRange.lowerBound < browserListRange.lowerBound)
|
|
}
|
|
|
|
@Test
|
|
func `factory no session includes browser login hint`() {
|
|
let order = ProviderDefaults.metadata[.factory]?.browserCookieOrder ?? Browser.defaultImportOrder
|
|
let message = FactoryStatusProbeError.noSessionCookie.errorDescription ?? ""
|
|
#expect(message.contains(order.loginHint))
|
|
}
|
|
|
|
@Test
|
|
func `opencode go automatic cookies use full provider browser order`() {
|
|
let order = OpenCodeWebCookieSupport.automaticImportOrder(provider: .opencodego)
|
|
#expect(order == ProviderDefaults.metadata[.opencodego]?.browserCookieOrder)
|
|
#expect(order.contains(.edge))
|
|
#expect(order.contains(.firefox))
|
|
}
|
|
|
|
@Test
|
|
func `opencode automatic cookies only use chrome and dia`() {
|
|
let order = OpenCodeWebCookieSupport.automaticImportOrder(provider: .opencode)
|
|
#expect(order == ProviderDefaults.metadata[.opencode]?.browserCookieOrder)
|
|
#expect(order == ProviderBrowserCookieDefaults.opencodeCookieImportOrder)
|
|
#expect(order == [.chrome, .dia])
|
|
}
|
|
|
|
@Test
|
|
func `opencode automatic cookies bound keychain prompt labels to chrome and dia`() {
|
|
let order = OpenCodeWebCookieSupport.automaticImportOrder(provider: .opencode)
|
|
let labels = order.flatMap(\.safeStorageLabels).map(\.service)
|
|
|
|
#expect(labels == ["Chrome Safe Storage", "Dia Safe Storage"])
|
|
#expect(!order.contains(.safari))
|
|
#expect(!order.contains(.firefox))
|
|
#expect(!order.contains(.edge))
|
|
#expect(!order.contains(.brave))
|
|
#expect(!order.contains(.arc))
|
|
#expect(!order.contains(.chromium))
|
|
}
|
|
|
|
@Test
|
|
func `mimo cookie import order supports safari firefox and edge`() {
|
|
let order = ProviderDefaults.metadata[.mimo]?.browserCookieOrder ?? Browser.defaultImportOrder
|
|
#expect(order == ProviderBrowserCookieDefaults.mimoCookieImportOrder)
|
|
#expect(order == [.safari, .chrome, .chromeBeta, .chromeCanary, .firefox, .edge])
|
|
#expect(order.first == .safari)
|
|
#expect(order.contains(.firefox))
|
|
#expect(order.contains(.edge))
|
|
#expect(!order.contains(.arc))
|
|
}
|
|
|
|
@Test
|
|
func `copilot cookie imports default to chrome only`() {
|
|
#expect(ProviderDefaults.metadata[.copilot]?.browserCookieOrder == [.chrome])
|
|
#expect(ProviderBrowserCookieDefaults.copilotCookieImportOrder == [.chrome])
|
|
}
|
|
#endif
|
|
}
|