109 lines · 3.4 KB · Swift
RawDownload
import CodexBarCoreimport Foundationimport Testing@testable import CodexBar @Suitestruct UsagePaceTextTests {    @Test    func weeklyPaceText_includesEtaWhenRunningOutBeforeReset() {        let now = Date(timeIntervalSince1970: 0)        let window = RateWindow(            usedPercent: 50,            windowMinutes: 10080,            resetsAt: now.addingTimeInterval(4 * 24 * 3600),            resetDescription: nil)         let text = UsagePaceText.weekly(provider: .codex, window: window, now: now)         #expect(text == "Pace: Ahead (+7%) · Runs out in 3d")    }     @Test    func weeklyPaceText_showsResetSafeWhenPaceIsSlow() {        let now = Date(timeIntervalSince1970: 0)        let window = RateWindow(            usedPercent: 10,            windowMinutes: 10080,            resetsAt: now.addingTimeInterval(4 * 24 * 3600),            resetDescription: nil)         let text = UsagePaceText.weekly(provider: .codex, window: window, now: now)         #expect(text == "Pace: Behind (-33%) · Lasts to reset")    }     @Test    func weeklyPaceText_hidesWhenResetIsMissing() {        let now = Date(timeIntervalSince1970: 0)        let window = RateWindow(            usedPercent: 10,            windowMinutes: 10080,            resetsAt: nil,            resetDescription: nil)         let text = UsagePaceText.weekly(provider: .codex, window: window, now: now)         #expect(text == nil)    }     @Test    func weeklyPaceText_hidesWhenResetIsInPastOrTooFar() {        let now = Date(timeIntervalSince1970: 0)        let pastWindow = RateWindow(            usedPercent: 10,            windowMinutes: 10080,            resetsAt: now.addingTimeInterval(-60),            resetDescription: nil)        let farFutureWindow = RateWindow(            usedPercent: 10,            windowMinutes: 10080,            resetsAt: now.addingTimeInterval(9 * 24 * 3600),            resetDescription: nil)         #expect(UsagePaceText.weekly(provider: .codex, window: pastWindow, now: now) == nil)        #expect(UsagePaceText.weekly(provider: .codex, window: farFutureWindow, now: now) == nil)    }     @Test    func weeklyPaceText_hidesWhenNoElapsedButUsageExists() {        let now = Date(timeIntervalSince1970: 0)        let window = RateWindow(            usedPercent: 5,            windowMinutes: 10080,            resetsAt: now.addingTimeInterval(7 * 24 * 3600),            resetDescription: nil)         let text = UsagePaceText.weekly(provider: .codex, window: window, now: now)         #expect(text == nil)    }     @Test    func weeklyPaceText_hidesWhenTooEarlyInWindow() {        let now = Date(timeIntervalSince1970: 0)        let window = RateWindow(            usedPercent: 40,            windowMinutes: 10080,            resetsAt: now.addingTimeInterval((7 * 24 * 3600) - (60 * 60)),            resetDescription: nil)         let text = UsagePaceText.weekly(provider: .codex, window: window, now: now)         #expect(text == nil)    }     @Test    func weeklyPaceText_hidesWhenUsageIsDepleted() {        let now = Date(timeIntervalSince1970: 0)        let window = RateWindow(            usedPercent: 100,            windowMinutes: 10080,            resetsAt: now.addingTimeInterval(2 * 24 * 3600),            resetDescription: nil)         let text = UsagePaceText.weekly(provider: .codex, window: window, now: now)         #expect(text == nil)    }}