import Foundation import Testing @testable import CodexBarCore struct AntigravityCompactFallbackTests { @Test func `model quota reset proximity does not imply window duration`() throws { let resetTime = Date().addingTimeInterval(2 * 60 * 60) let snapshot = AntigravityStatusSnapshot( modelQuotas: [ AntigravityModelQuota( label: "Gemini 3.1 Pro (Low)", modelId: "MODEL_PLACEHOLDER_M36", remainingFraction: 0.5, resetTime: resetTime, resetDescription: nil), ], accountEmail: nil, accountPlan: nil) let usage = try snapshot.toUsageSnapshot() #expect(usage.primary?.windowMinutes == nil) #expect(usage.primary?.resetsAt == resetTime) } @Test func `local unclassified model remains available as compact fallback`() throws { let snapshot = AntigravityStatusSnapshot( modelQuotas: [ AntigravityModelQuota( label: "Experimental Model", modelId: "MODEL_PLACEHOLDER_NEW", remainingFraction: 0.36, resetTime: nil, resetDescription: nil), ], accountEmail: nil, accountPlan: nil, source: .local) let usage = try snapshot.toUsageSnapshot() #expect(usage.primary == nil) #expect(usage.secondary == nil) #expect(usage.tertiary == nil) #expect(usage.extraRateWindows?.map(\.id) == ["antigravity-compact-fallback-MODEL_PLACEHOLDER_NEW"]) #expect(usage.extraRateWindows?.map(\.title) == ["Experimental Model"]) #expect(usage.extraRateWindows?.map(\.window.usedPercent) == [64]) } @Test func `remote unclassified model remains detail only`() throws { let snapshot = AntigravityStatusSnapshot( modelQuotas: [ AntigravityModelQuota( label: "Experimental Model", modelId: "MODEL_PLACEHOLDER_NEW", remainingFraction: 0.36, resetTime: nil, resetDescription: nil), ], accountEmail: nil, accountPlan: nil, source: .remote) let usage = try snapshot.toUsageSnapshot() #expect(usage.primary == nil) #expect(usage.secondary == nil) #expect(usage.extraRateWindows?.map(\.id) == ["MODEL_PLACEHOLDER_NEW"]) } @Test func `fully unused local model remains available as compact fallback`() throws { let snapshot = AntigravityStatusSnapshot( modelQuotas: [ AntigravityModelQuota( label: "Experimental Model", modelId: "MODEL_PLACEHOLDER_NEW", remainingFraction: 1, resetTime: nil, resetDescription: nil), ], accountEmail: nil, accountPlan: nil, source: .local) let usage = try snapshot.toUsageSnapshot() #expect(usage.extraRateWindows?.map(\.id) == ["antigravity-compact-fallback-MODEL_PLACEHOLDER_NEW"]) #expect(usage.extraRateWindows?.map(\.window.usedPercent) == [0]) } }