Files
steipete--codexbar/Tests/CodexBarTests/CopilotMenuCardModelTests.swift
2026-07-13 12:22:33 +08:00

45 lines
1.6 KiB
Swift

import CodexBarCore
import Foundation
import SwiftUI
import Testing
@testable import CodexBar
struct CopilotMenuCardModelTests {
@Test
func `hides copilot budget bars when budget extras are disabled`() throws {
let now = Date()
let snapshot = UsageSnapshot(
primary: RateWindow(usedPercent: 20, windowMinutes: nil, resetsAt: nil, resetDescription: nil),
secondary: RateWindow(usedPercent: 30, windowMinutes: nil, resetsAt: nil, resetDescription: nil),
extraRateWindows: [
NamedRateWindow(
id: "copilot-budget-agent",
title: "Budget - Copilot Agent Premium Requests",
window: RateWindow(usedPercent: 65, windowMinutes: nil, resetsAt: nil, resetDescription: nil)),
],
updatedAt: now)
let metadata = try #require(ProviderDefaults.metadata[.copilot])
let model = UsageMenuCardView.Model.make(.init(
provider: .copilot,
metadata: metadata,
snapshot: snapshot,
credits: nil,
creditsError: nil,
dashboard: nil,
dashboardError: nil,
tokenSnapshot: nil,
tokenError: nil,
account: AccountInfo(email: nil, plan: nil),
isRefreshing: false,
lastError: nil,
usageBarsShowUsed: false,
resetTimeDisplayStyle: .countdown,
tokenCostUsageEnabled: false,
showOptionalCreditsAndExtraUsage: true,
hidePersonalInfo: false,
now: now))
#expect(model.metrics.map(\.title) == ["Premium", "Chat"])
}
}