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

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
}