import CodexBarCore import Foundation import Testing @testable import CodexBar struct PlanUtilizationHistoryChartMenuViewTests { @Test func `merged entries preserve first occurrence order while removing duplicates`() { let first = PlanUtilizationHistoryEntry( capturedAt: Date(timeIntervalSince1970: 100), usedPercent: 10, resetsAt: Date(timeIntervalSince1970: 200)) let second = PlanUtilizationHistoryEntry( capturedAt: Date(timeIntervalSince1970: 300), usedPercent: 20, resetsAt: nil) let merged = PlanUtilizationHistoryChartMenuView.mergedEntries([ first, second, first, second, ]) #expect(merged == [first, second]) } @Test func `generic primary weekly window keeps weekly history visible`() { let history = PlanUtilizationSeriesHistory( name: .weekly, windowMinutes: 10080, entries: [ PlanUtilizationHistoryEntry( capturedAt: Date(timeIntervalSince1970: 1_700_000_000), usedPercent: 42, resetsAt: nil), ]) let snapshot = UsageSnapshot( primary: RateWindow(usedPercent: 42, windowMinutes: 10080, resetsAt: nil, resetDescription: nil), secondary: nil, updatedAt: Date(timeIntervalSince1970: 1_700_000_000)) let model = PlanUtilizationHistoryChartMenuView._modelSnapshotForTesting( histories: [history], provider: .zai, snapshot: snapshot) #expect(model.visibleSeries == ["weekly:10080"]) #expect(model.selectedSeries == "weekly:10080") } @Test func `generic unknown weekly extra window does not filter saved history`() { let history = PlanUtilizationSeriesHistory( name: .weekly, windowMinutes: 10080, entries: [ PlanUtilizationHistoryEntry( capturedAt: Date(timeIntervalSince1970: 1_700_000_000), usedPercent: 42, resetsAt: nil), ]) let snapshot = UsageSnapshot( primary: nil, secondary: nil, extraRateWindows: [ NamedRateWindow( id: "weekly-reset-only", title: "Weekly reset", window: RateWindow( usedPercent: 0, windowMinutes: 10080, resetsAt: Date(timeIntervalSince1970: 1_700_003_600), resetDescription: nil), usageKnown: false), ], updatedAt: Date(timeIntervalSince1970: 1_700_000_000)) let model = PlanUtilizationHistoryChartMenuView._modelSnapshotForTesting( histories: [history], provider: .zed, snapshot: snapshot) #expect(model.visibleSeries == ["weekly:10080"]) #expect(model.selectedSeries == "weekly:10080") } }