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

85 lines
3.4 KiB
Swift

import CodexBarCore
import Foundation
import Testing
@testable import CodexBar
@MainActor
extension CodexAccountScopedRefreshTests {
@Test
func `dashboard cannot publish an unconfirmed first weekly low`() async {
let settings = self.makeSettingsStore(
suite: "CodexDashboardWeeklyPublicationTests-first-low")
settings.refreshFrequency = .manual
settings.codexCookieSource = .auto
settings._test_liveSystemCodexAccount = self.liveAccount(
email: "dashboard-low@example.com",
identity: .providerAccount(id: "dashboard-low-owner"))
defer { settings._test_liveSystemCodexAccount = nil }
let now = Date()
let store = self.makeUsageStore(settings: settings)
await store.applyOpenAIDashboard(
OpenAIDashboardSnapshot(
signedInEmail: "dashboard-low@example.com",
codeReviewRemainingPercent: nil,
creditEvents: [],
dailyBreakdown: [],
usageBreakdown: [],
creditsPurchaseURL: nil,
primaryLimit: nil,
secondaryLimit: RateWindow(
usedPercent: 0.2,
windowMinutes: 10080,
resetsAt: now.addingTimeInterval(7 * 24 * 60 * 60),
resetDescription: nil),
creditsRemaining: nil,
accountPlan: "Pro",
updatedAt: now),
targetEmail: "dashboard-low@example.com",
allowCodexUsageBackfill: true)
#expect(store.openAIDashboard?.signedInEmail == "dashboard-low@example.com")
#expect(store.snapshots[.codex] == nil)
#expect(store.lastKnownResetSnapshots[.codex] == nil)
#expect(store.lastSourceLabels[.codex] == nil)
}
@Test
func `dashboard publishes an ordinary first weekly observation`() async {
let settings = self.makeSettingsStore(
suite: "CodexDashboardWeeklyPublicationTests-ordinary")
settings.refreshFrequency = .manual
settings.codexCookieSource = .auto
settings._test_liveSystemCodexAccount = self.liveAccount(
email: "dashboard-ordinary@example.com",
identity: .providerAccount(id: "dashboard-ordinary-owner"))
defer { settings._test_liveSystemCodexAccount = nil }
let now = Date()
let store = self.makeUsageStore(settings: settings)
await store.applyOpenAIDashboard(
OpenAIDashboardSnapshot(
signedInEmail: "dashboard-ordinary@example.com",
codeReviewRemainingPercent: nil,
creditEvents: [],
dailyBreakdown: [],
usageBreakdown: [],
creditsPurchaseURL: nil,
primaryLimit: nil,
secondaryLimit: RateWindow(
usedPercent: 28,
windowMinutes: 10080,
resetsAt: now.addingTimeInterval(7 * 24 * 60 * 60),
resetDescription: nil),
creditsRemaining: nil,
accountPlan: "Pro",
updatedAt: now),
targetEmail: "dashboard-ordinary@example.com",
allowCodexUsageBackfill: true)
#expect(store.openAIDashboard?.signedInEmail == "dashboard-ordinary@example.com")
#expect(store.snapshots[.codex]?.secondary?.usedPercent == 28)
#expect(store.lastSourceLabels[.codex] == "openai-web")
}
}