71 lines
2.3 KiB
Swift
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)
|
|
}
|
|
}
|