63 lines
2.9 KiB
Swift
63 lines
2.9 KiB
Swift
import CodexBarCore
|
|
import Testing
|
|
@testable import CodexBar
|
|
|
|
struct QoderProviderTests {
|
|
@Test
|
|
func `descriptor metadata is correct`() {
|
|
let descriptor = ProviderDescriptorRegistry.descriptor(for: .qoder)
|
|
|
|
#expect(descriptor.metadata.displayName == "Qoder")
|
|
#expect(descriptor.metadata.dashboardURL == QoderWebSite.international.dashboardURL.absoluteString)
|
|
#expect(QoderWebSite.international.dashboardURL.absoluteString == "https://qoder.com/account/usage")
|
|
#expect(QoderWebSite.china.dashboardURL.absoluteString == "https://qoder.com.cn/account/usage")
|
|
#expect(descriptor.metadata.cliName == "qoder")
|
|
#expect(descriptor.branding.iconResourceName == "ProviderIcon-qoder")
|
|
#expect(descriptor.branding.iconStyle == .qoder)
|
|
#expect(!descriptor.metadata.supportsCredits)
|
|
#if os(macOS)
|
|
#expect(descriptor.metadata.browserCookieOrder == [.chrome])
|
|
#else
|
|
#expect(descriptor.metadata.browserCookieOrder == nil)
|
|
#endif
|
|
}
|
|
|
|
@MainActor
|
|
@Test
|
|
func `implementation is registered`() {
|
|
#expect(ProviderCatalog.implementation(for: .qoder) != nil)
|
|
}
|
|
|
|
@Test
|
|
func `dashboard URL follows manual header classifier`() {
|
|
let global = ProviderSettingsSnapshot.QoderProviderSettings(
|
|
cookieSource: .manual,
|
|
manualCookieHeader: "sid=abc")
|
|
let china = ProviderSettingsSnapshot.QoderProviderSettings(
|
|
cookieSource: .manual,
|
|
manualCookieHeader: "curl https://qoder.com.cn -H 'Cookie: sid=abc'")
|
|
let malformed = ProviderSettingsSnapshot.QoderProviderSettings(
|
|
cookieSource: .manual,
|
|
manualCookieHeader: "curl https://qoder.com -H 'Host: qoder.com.cn' -H 'Cookie: sid=abc'")
|
|
|
|
#expect(QoderProviderDescriptor.dashboardURL(settings: global, sourceLabel: "manual / qoder.com.cn") ==
|
|
QoderWebSite.international.dashboardURL)
|
|
#expect(QoderProviderDescriptor.dashboardURL(settings: china, sourceLabel: "manual / qoder.com") ==
|
|
QoderWebSite.china.dashboardURL)
|
|
#expect(QoderProviderDescriptor.dashboardURL(settings: malformed, sourceLabel: "manual / qoder.com.cn") ==
|
|
QoderWebSite.international.dashboardURL)
|
|
}
|
|
|
|
@Test
|
|
func `dashboard URL follows resolved source labels outside manual mode`() {
|
|
let automatic = ProviderSettingsSnapshot.QoderProviderSettings(cookieSource: .auto, manualCookieHeader: nil)
|
|
|
|
#expect(QoderProviderDescriptor.dashboardURL(settings: automatic, sourceLabel: "Chrome / qoder.com.cn") ==
|
|
QoderWebSite.china.dashboardURL)
|
|
#expect(QoderProviderDescriptor.dashboardURL(settings: automatic, sourceLabel: "Chrome / qoder.com") ==
|
|
QoderWebSite.international.dashboardURL)
|
|
#expect(QoderProviderDescriptor.dashboardURL(settings: automatic, sourceLabel: nil) ==
|
|
QoderWebSite.international.dashboardURL)
|
|
}
|
|
}
|