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

71 lines
2.3 KiB
Swift

import Foundation
import Testing
@testable import CodexBar
struct SubscriptionDetectionTests {
// MARK: - Subscription plans should be detected
@Test
func `detects max plan`() {
#expect(UsageStore.isSubscriptionPlan("Claude Max") == true)
#expect(UsageStore.isSubscriptionPlan("Max") == true)
#expect(UsageStore.isSubscriptionPlan("claude max") == true)
#expect(UsageStore.isSubscriptionPlan("MAX") == true)
}
@Test
func `detects pro plan`() {
#expect(UsageStore.isSubscriptionPlan("Claude Pro") == true)
#expect(UsageStore.isSubscriptionPlan("Pro") == true)
#expect(UsageStore.isSubscriptionPlan("pro") == true)
}
@Test
func `detects ultra plan`() {
#expect(UsageStore.isSubscriptionPlan("Claude Ultra") == true)
#expect(UsageStore.isSubscriptionPlan("Ultra") == true)
#expect(UsageStore.isSubscriptionPlan("ultra") == true)
}
@Test
func `detects team plan`() {
#expect(UsageStore.isSubscriptionPlan("Claude Team") == true)
#expect(UsageStore.isSubscriptionPlan("Team") == true)
#expect(UsageStore.isSubscriptionPlan("team") == true)
}
@Test
func `enterprise plan does not count as subscription`() {
#expect(UsageStore.isSubscriptionPlan("Claude Enterprise") == false)
#expect(UsageStore.isSubscriptionPlan("Enterprise") == false)
}
// MARK: - Non-subscription plans should return false
@Test
func `nil login method returns false`() {
#expect(UsageStore.isSubscriptionPlan(nil) == false)
}
@Test
func `empty login method returns false`() {
#expect(UsageStore.isSubscriptionPlan("") == false)
#expect(UsageStore.isSubscriptionPlan(" ") == false)
}
@Test
func `unknown plan returns false`() {
#expect(UsageStore.isSubscriptionPlan("API") == false)
#expect(UsageStore.isSubscriptionPlan("Free") == false)
#expect(UsageStore.isSubscriptionPlan("Unknown") == false)
#expect(UsageStore.isSubscriptionPlan("Claude") == false)
}
@Test
func `api key users return false`() {
// API users typically don't have a login method or have non-subscription identifiers
#expect(UsageStore.isSubscriptionPlan("api_key") == false)
#expect(UsageStore.isSubscriptionPlan("console") == false)
}
}