60 lines · 2.2 KB · Swift
RawDownload
import CodexBarCoreimport Foundationimport Testing /// Cross-platform tests for the OpenAI dashboard text parser.////// The dashboard renders reset countdowns like "Resets Wednesday at 3pm". The parser/// converts a textual weekday into the next occurrence of that weekday so it can be/// formatted into a concrete `Date`. These tests pin down full-weekday-name coverage/// because the underlying regex previously missed "Wednesday" and "Saturday" (their/// abbreviations were not long enough to combine with the optional "day" suffix).@Suitestruct OpenAIDashboardParserLinuxTests {    private static func fixedNow() -> Date {        var calendar = Calendar(identifier: .gregorian)        calendar.timeZone = TimeZone(secondsFromGMT: 0)!        // 2026-05-21 is a Thursday in the Gregorian calendar; using a fixed anchor keeps        // the test deterministic regardless of when it executes.        return calendar.date(from: DateComponents(year: 2026, month: 5, day: 21))!    }     private static func body(forWeekday weekday: String) -> String {        """        5h limit        50% remaining        Resets \(weekday)        """    }     @Test    func parsesResetLineForEveryFullWeekdayName() {        let now = Self.fixedNow()        for weekday in ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"] {            let result = OpenAIDashboardParser.parseRateLimits(                bodyText: Self.body(forWeekday: weekday),                now: now)            #expect(                result.primary?.resetsAt != nil,                "Expected a parsed resetsAt for weekday \(weekday)")        }    }     @Test    func parsesResetLineForLowercaseWednesday() {        let now = Self.fixedNow()        let result = OpenAIDashboardParser.parseRateLimits(            bodyText: Self.body(forWeekday: "wednesday"),            now: now)        #expect(result.primary?.resetsAt != nil)    }     @Test    func parsesResetLineForLowercaseSaturday() {        let now = Self.fixedNow()        let result = OpenAIDashboardParser.parseRateLimits(            bodyText: Self.body(forWeekday: "saturday"),            now: now)        #expect(result.primary?.resetsAt != nil)    }}