macos-ai-menubar-usage/AIMenubarUsageTests/ClaudeCLIParserTests.swift
Felipe M. 00c4e33171
Initial commit: AI Menubar Usage — macOS menu bar app for Cursor and Claude.
Includes provider integrations, settings, NSStatusItem UI, tests, Makefile, and README with screenshot.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-27 20:41:40 +02:00

34 lines
1.3 KiB
Swift

import XCTest
@testable import AIMenubarUsage
final class ClaudeCLIParserTests: XCTestCase {
func testParseUsageTextFromCLIOutput() {
let text = """
You are currently using your subscription to power your Claude Code usage
Current session: 0% used
Current week (all models): 6% used · resets Jul 31 at 11am (Europe/Madrid)
Current week (Fable): 0% used
"""
let parsed = ClaudeCLIUsageService.parseUsageText(text)
XCTAssertEqual(parsed.sessionPercent, 0)
XCTAssertEqual(parsed.weeklyPercent, 6)
XCTAssertEqual(parsed.weeklyResetText, "Jul 31 at 11am (Europe/Madrid)")
XCTAssertEqual(parsed.modelWeekly["Fable"], 0)
}
func testSnapshotFromParsedUsage() {
let parsed = ClaudeCLIParsedUsage(
sessionPercent: 42,
weeklyPercent: 15,
weeklyResetText: "Jul 31 at 11am",
modelWeekly: ["Opus": 10, "Sonnet": 5]
)
let snapshot = ClaudeCLIUsageService.snapshot(from: parsed, fetchedAt: Date(), isStale: false)
XCTAssertEqual(snapshot.formatted(.claudeFiveHourUtilization), "42%")
XCTAssertEqual(snapshot.formatted(.claudeSevenDayUtilization), "15%")
XCTAssertEqual(snapshot.formatted(.claudeSevenDayOpusUtilization), "10%")
}
}