Files
2026-07-13 12:22:33 +08:00

42 lines
1.2 KiB
Swift

import CodexBarCore
import Foundation
import Testing
struct GroqUsageFetcherTests {
@Test
func `parses prometheus scalar response`() throws {
let json = """
{
"status": "success",
"data": {
"result": [
{ "value": [1710000000, "2.5"] },
{ "value": [1710000000, "1.5"] }
]
}
}
"""
let value = try GroqUsageFetcher._parseScalarForTesting(Data(json.utf8))
#expect(value == 4)
}
@Test
func `snapshot maps prometheus rates to menu windows`() {
let snapshot = GroqUsageSnapshot(
requestRatePerSecond: 2,
inputTokenRatePerSecond: 100,
outputTokenRatePerSecond: 50,
promptCacheHitRatePerSecond: 3,
updatedAt: Date(timeIntervalSince1970: 1))
.toUsageSnapshot()
#expect(snapshot.identity?.providerID == .groq)
#expect(snapshot.identity?.loginMethod == "Prometheus metrics")
#expect(snapshot.primary?.resetDescription == "120 req/min")
#expect(snapshot.secondary?.resetDescription == "9000 tok/min")
#expect(snapshot.tertiary?.resetDescription == "180 cache/min")
}
}