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%") } }